@function_tool 装饰器是从普通 Python 函数到 QitOS 工具的最短路径。它会检查函数签名、类型注解和文档字符串,然后构建一个完整的 FunctionTool 实例及丰富的 ToolSpec——无需子类化。
Step 1: 基本装饰器用法
不带参数地应用装饰器。函数名即为工具名,文档字符串即为描述:FunctionTool 实例,其 spec 包含参数 schema、必填字段和描述。
Step 2: 装饰器参数
通过关键字参数覆盖默认值并控制执行策略:Step 3: 类型注解自动转换为 ToolSpec 参数
装饰器会检查函数的类型注解,并将其转换为ToolSpec.parameters 中的 JSON Schema 条目。支持的类型包括:
Args: 段中提取。
Step 4: 在 ToolRegistry 中注册函数工具
获得FunctionTool 后,将其注册到 ToolRegistry 中,以便智能体发现和调用:
Step 5: @function_tool 与类式 BaseTool 对比
QitOS 提供两种定义工具的方式,请按需选择:@function_tool — 适合简单的无状态操作:
BaseTool 子类 — 适合有状态的工具或需要复杂初始化的场景:
大多数工具都是简单函数。先从
@function_tool 开始,只有在需要构造器状态或自定义执行行为时才使用 BaseTool。
下一步
MCP 集成
将外部 MCP 服务器工具桥接到 QitOS,复用同一 FunctionTool 接口。
构建你的第一个智能体
在 AgentModule 中使用你的工具,运行真实的大模型循环。
