AI Agent 开发入门:从工具调用到可测试的执行循环
第一次开发 Agent,建议先做一个只能查询、最多执行 4 轮的小程序。你需要看清模型提出什么动作、程序是否允许执行,以及失败时如何停止,再增加记忆和多智能体协作。
本手册从 Python 工具调用实验开始,随后连接 MCP、RAG 与评测。公开教程可以直接阅读;课程的学习权限以具体课程页面为准。
#AI Agent 与普通聊天有什么区别?
聊天模型输出文本。工具调用 Agent 还会提出一个结构化动作,例如 lookup_order({"order_id":"DEMO-1001"})。应用检查工具名和参数,执行查询,把结果交回模型,由模型决定回答还是继续调用工具。
模型提出动作,程序掌握执行权。 工具调用参数不是可直接执行的代码,不能交给 eval() 或 shell。
text用户问题 → 模型提出工具调用 → 工具白名单与参数校验 ↓ 最终回答 ← 模型读取工具结果 ← 查询结果 / 明确错误 ↓ 未完成则继续,达到轮次上限就停止
#第一个实验:查询一条模拟订单
打开完整的 Python 工具调用实验。示例只使用 Python 标准库,默认不连接模型、不消耗 API 额度。它用脚本化模型替身验证执行循环,订单数据明确标记为 synthetic_fixture。
下载 tool_agent.py↗ 和 test_tool_agent.py↗,放在同一个文件夹,运行:
bashpython3 tool_agent.py python3 -m unittest -v test_tool_agent.py
默认运行输出:
json{"mode": "fixture", "answer": "DEMO-1001: shipped (synthetic_fixture)", "steps": 2}
这证明了“请求工具 → 返回结果 → 结束”的程序流程,不代表真实模型的准确率或生产可用性。实验页也提供真实模型接入步骤及验证边界。
#先决定:工作流、RAG,还是 Agent?
| 任务 | 先采用 | 原因 |
|---|---|---|
| 输入格式和步骤固定,如校验表单后生成文件 | 普通程序或固定工作流 | 无需让模型重新决定执行顺序 |
| 根据指定资料回答问题并给出出处 | RAG | 主要问题是找准证据,而非自主执行 |
| 根据中间结果选择不同工具、补充信息 | 有边界的 Agent | 下一步依赖实际观察结果 |
| 多个独立专业角色确实需要协作 | 验证单 Agent 后再考虑多 Agent | 需要额外处理交接、重试和结果冲突 |
这是工程选型建议。不要为了使用 Agent,把已经稳定的固定流程改成不可预测的循环。
#四个必须能解释的边界
- 工具权限:这个实验只读模拟订单;退款、发邮件和修改数据库不在工具列表里。
- 数据来源:查询失败返回
order_not_found,不能生成一个看似合理的物流状态。 - 运行上限:每轮最多 1 次工具调用,最多 4 轮;真实模型请求另设 20 秒超时。
- 验证范围:离线测试覆盖程序行为;接入模型后还要验证模型选择、回答正确性和成本。
#MCP 在哪一层?
MCP 连接 AI 应用与提供工具或上下文的服务。它不规定你必须使用哪个模型,也不自动处理你业务里的权限和正确性判断。先理解工具执行,再学习 MCP 协议与接入,更容易分清应用、客户端、服务端的责任。MCP 官方架构说明↗
#接下来学什么?
- 现在动手:完成工具调用实验,再故意输入一个不存在的订单。
- 扩展知识检索:RAG 知识库实验,检查答案能否对应到原文。
- 验证可靠性:评估与测试,将失败案例保留为回归用例。
- 系统学习:查看 AI Engineer Bootcamp 的课程安排与试学信息,再判断项目内容和先修要求是否适合自己。
技术依据:OpenAI 工具调用流程↗、MCP 架构↗。本轮内容核验:2026-09-07;离线脚本与 9 项测试已运行,真实模型模式未作为本轮验证结果。