跳到主要内容

2 篇博文 含有标签「工具调用」

查看所有标签

手写 Agent 第 2 课:工具调用

第 2 课: 工具调用​

第 1 课的三个工具是写死的. 本课把它改成注册表加统一执行器: 新增工具只写一个函数, 主循环一行不改; 工具报错不再让程序崩, 而是变成模型能读到的一条结果.

代码见 code/02-tools/tools.py, 参考教程见 NamiAgent 第 2 课, 上一课见 最小循环.

📌 本课代码是单个文件, 工具定义和主循环都在 tools.py 里. 参考教程拆成 tools.py 和 agent.py 两个文件, 差异见文末.

下文代码块均为节选, 省略了函数注释和部分类型标注; 字符串和标点与源文件一致, 完整代码以 code/02-tools/tools.py 为准.

手写 Agent 第 1 课:最小循环

第 1 课:最小循环​

本课已完成手写与断点调试。核心是:模型提出工具调用请求,Python 执行工具,把结果追加到 messages,再请求模型;没有工具调用请求时结束,达到轮数上限时强制停止。

自己的实现见 code/01-minimal-loop.py,环境配置见 环境准备,参考教程见 NamiAgent 第 1 课。本文按当前代码整理,重点记录返回结构和消息流转。