Skip to main content

S02 Tool Use - 工具分发流程图

本文档描述 s02_tool_use.py 的工具分发机制和执行流程。


1. 系统架构概览

加载中...

2. 工具分发流程 (Dispatch Pattern)

加载中...

3. 工具执行流程

加载中...

4. 代理主循环流程(集成分发)

加载中...

5. 完整时序图

加载中...

6. 数据结构

TOOL_HANDLERS 分发映射

TOOL_HANDLERS = {
"bash": lambda **kw: run_bash(kw["command"]),
"read_file": lambda **kw: run_read(kw["path"], kw.get("limit")),
"write_file": lambda **kw: run_write(kw["path"], kw["content"]),
"edit_file": lambda **kw: run_edit(kw["path"], kw["old_text"], kw["new_text"]),
}

TOOLS 工具定义

TOOLS = [
{
"name": "bash",
"description": "Run a shell command.",
"input_schema": {
"type": "object",
"properties": {"command": {"type": "string"}},
"required": ["command"]
}
},
# ... 其他工具
]

tool_use 块结构

ContentBlock(
type="tool_use",
id="toolu_xxx",
name="read_file", # 工具名称
input={"path": "file.txt"} # 输入参数
)

tool_result 对象结构

{
"type": "tool_result",
"tool_use_id": "toolu_xxx",
"content": "文件内容或错误消息"
}

7. 状态转换图

加载中...

8. Lambda 函数语法说明

加载中...

Lambda 各部分说明

部分说明示例
lambda匿名函数关键字定义一个无名函数
**kw接收任意关键字参数将参数打包成字典
:分隔符分隔参数和函数体
fn(kw['arg'])函数体调用实际处理函数

9. 关键特性总结

特性说明
解耦架构工具定义与处理逻辑通过字典映射分离
可扩展性添加新工具只需在字典中添加条目
类型安全通过 input_schema 定义参数结构
错误处理未知工具返回友好的错误消息
Lambda 匿名函数使用 lambda 函数简化分发逻辑
安全路径检查所有文件操作都经过 safe_path 验证