F1: add reusable task backend resources and migrate task tools

This commit is contained in:
Xin Wang
2026-10-23 23:45:50 +08:00
parent e958491201
commit 529250173d
17 changed files with 741 additions and 43 deletions
+16
View File
@@ -70,6 +70,21 @@ class RuntimeKnowledgeBase(BaseModel):
description: str = ""
class RuntimeTaskBackend(BaseModel):
"""Resolved task backend, frozen server-side when a task is accepted."""
id: str
name: str = ""
type: Literal["reasoner", "opencode"]
config: dict = Field(default_factory=dict)
secrets: dict = Field(default_factory=dict)
model: RuntimeModelResource | None = None
tools: list[RuntimeTool] = Field(default_factory=list)
tool_bindings: list[RuntimeToolBinding] = Field(default_factory=list)
instruction_source: dict = Field(default_factory=lambda: {"source": "model"})
instructions: str = ""
class AssistantConfig(BaseModel):
"""运行时配置:前端可见部分(name/prompt/...) + 服务端注入部分(*_api_key/*_base_url)。"""
@@ -138,6 +153,7 @@ class AssistantConfig(BaseModel):
# and result mappings; platform built-ins are configured separately.
tools: list[RuntimeTool] = Field(default_factory=list)
tool_bindings: list[RuntimeToolBinding] = Field(default_factory=list)
task_backend: RuntimeTaskBackend | None = None
knowledge_base_id: str | None = None
knowledge_base_name: str = ""
knowledge_base_description: str = ""