- 更新 README 描述从后端壳子到 AI Core/Agent Core - 添加 ToolCall 和 ToolResult 数据结构定义 - 扩展 AgentRun 模型增加输出、错误码、工具调用结果等字段 - 添加 mock 提供商类型支持 - 实现聊天、代理运行、工具调用和提供商管理的核心路由逻辑 - 集成容器化依赖注入和错误处理机制 - 更新 API 接口契约和文档说明
47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
from pydantic import BaseModel, ConfigDict
|
|
|
|
from app.agent.tools import ToolExecutionContext, ToolRegistry
|
|
from app.contracts import ToolDefinition
|
|
|
|
|
|
class ToolArguments(BaseModel):
|
|
model_config = ConfigDict(extra="forbid")
|
|
|
|
|
|
class EchoArguments(ToolArguments):
|
|
text: str
|
|
|
|
|
|
class AddArguments(ToolArguments):
|
|
left: float
|
|
right: float
|
|
|
|
|
|
async def echo(arguments: EchoArguments, _: ToolExecutionContext) -> dict[str, str]:
|
|
return {"text": arguments.text}
|
|
|
|
|
|
async def add(arguments: AddArguments, _: ToolExecutionContext) -> dict[str, float]:
|
|
return {"value": arguments.left + arguments.right}
|
|
|
|
|
|
def register_builtin_tools(registry: ToolRegistry) -> None:
|
|
registry.register(
|
|
ToolDefinition(
|
|
name="system.echo",
|
|
description="Echo text for local Agent integration testing.",
|
|
parameters=EchoArguments.model_json_schema(),
|
|
),
|
|
EchoArguments,
|
|
echo,
|
|
)
|
|
registry.register(
|
|
ToolDefinition(
|
|
name="math.add",
|
|
description="Add two numbers without external side effects.",
|
|
parameters=AddArguments.model_json_schema(),
|
|
),
|
|
AddArguments,
|
|
add,
|
|
)
|