- 更新 README 描述从后端壳子到 AI Core/Agent Core - 添加 ToolCall 和 ToolResult 数据结构定义 - 扩展 AgentRun 模型增加输出、错误码、工具调用结果等字段 - 添加 mock 提供商类型支持 - 实现聊天、代理运行、工具调用和提供商管理的核心路由逻辑 - 集成容器化依赖注入和错误处理机制 - 更新 API 接口契约和文档说明
50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
from dataclasses import dataclass
|
|
|
|
from app.agent import AgentRuntime, PermissionManager, PermissionPolicy, ToolRegistry
|
|
from app.agent.builtin_tools import register_builtin_tools
|
|
from app.contracts import ModelCapability, ProviderConfig, ProviderType
|
|
from app.providers import MockProvider, ProviderRegistry
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class ApplicationContainer:
|
|
providers: ProviderRegistry
|
|
tools: ToolRegistry
|
|
permissions: PermissionManager
|
|
agent: AgentRuntime
|
|
|
|
|
|
def build_container() -> ApplicationContainer:
|
|
providers = ProviderRegistry()
|
|
providers.register(
|
|
ProviderConfig(
|
|
provider_id="mock",
|
|
provider_type=ProviderType.mock,
|
|
name="Mock Provider",
|
|
default_model="mock-1",
|
|
enabled=True,
|
|
capabilities=[
|
|
ModelCapability.chat,
|
|
ModelCapability.tool_calling,
|
|
ModelCapability.streaming,
|
|
],
|
|
),
|
|
MockProvider(),
|
|
)
|
|
|
|
tools = ToolRegistry()
|
|
register_builtin_tools(tools)
|
|
|
|
policy = PermissionPolicy()
|
|
permissions = PermissionManager(policy)
|
|
agent = AgentRuntime(providers=providers, tools=tools, permissions=permissions)
|
|
return ApplicationContainer(
|
|
providers=providers,
|
|
tools=tools,
|
|
permissions=permissions,
|
|
agent=agent,
|
|
)
|
|
|
|
|
|
container = build_container()
|