智能体开发入门:用 Python 写出你的第一个 AI Agent
AI Agent 入门不应该从“做一个全能助手”开始,而应该从一个可控的小循环开始:用户给目标,模型判断是否调用工具,工具返回结果,模型再生成最终回答。
导读:你可以把这篇当成第一个 AI Agent 的实现流程来用。本文用 Python 写一个最小 Agent,不追求复杂框架,而是先把工具调用、错误处理和验证闭环跑通。
先定义第一个 Agent 的边界
第一个 Agent 应该满足:
| 条件 | 合格标准 |
|---|---|
| 任务单一 | 只解决一个小问题 |
| 工具少 | 先接 1 个只读工具 |
| 风险低 | 不写生产数据、不发外部消息 |
| 可验证 | 能用固定输入看到固定输出 |
| 可停止 | 工具失败时不无限重试 |
不要一开始做“自动订票、自动发邮件、自动改数据库”。第一个 Agent 的目标是理解机制,不是追求自动化炫技。
官方来源与核验规则
优先参考:
核验规则:模型 API、tool use 参数、消息格式和 SDK 方法可能更新,实际代码要以官方文档为准。本文示例强调结构,不保证每个模型 SDK 的最新参数完全一致。
初始化项目
1 | mkdir my-first-agent |
建议把 API Key 放进环境变量:
1 | export ANTHROPIC_API_KEY="sk-ant-..." |
不要把 Key 写进源码或截图。
Step 1:定义一个只读工具
先写一个可预测的工具。这里用模拟天气,避免一开始被第三方 API Key、网络和限流干扰。
1 | def get_weather(city: str) -> str: |
好工具有三个特点:输入清楚、输出稳定、失败可解释。
Step 2:写工具 schema
1 | tools = [ |
工具描述不要写得太泛。如果 description 只写“查询信息”,模型会不知道什么时候该调用。
Step 3:实现 Agent 调用循环
最小逻辑是:先问模型,模型如果要求 tool_use,就执行工具,再把工具结果交回模型。
1 | import os |
Step 4:验证工具调用
测试输入:
1 | print(run_agent("北京今天热吗?")) |
成功标准:
| 输入 | 预期 |
|---|---|
| 天气问题 | 调用 get_weather |
| 普通问候 | 不调用工具 |
| 未知城市 | 返回可理解的失败信息 |
Step 5:加错误处理
第一个版本不要追求复杂,但至少要防止工具异常让整个程序崩掉:
1 | def safe_get_weather(city: str) -> str: |
生产 Agent 还需要超时、重试上限、日志和人工接管。
分步骤流程
- 先选择一个只读、低风险任务。
- 再写一个输入输出稳定的 Python 工具函数。
- 然后把工具描述成 JSON schema。
- 接着让模型判断是否需要调用工具。
- 工具执行后,把 tool result 送回模型。
- 最后用固定输入验证:普通问题不调工具,工具问题正确调用。
入门 checklist
- Agent 只做一个任务;
- 工具是只读的;
- 工具有 schema;
- 工具失败能返回错误;
- 有固定测试输入;
- 不保存真实 API Key;
- 不接高风险写操作。
FAQ
第一个 Agent 要不要用 LangChain?
不一定。先用原始 API 理解工具调用循环,再上框架会更清楚。
能不能直接让 Agent 执行 shell 命令?
不建议。第一个 Agent 先做只读工具。shell 命令属于高风险工具,必须加白名单和人工确认。
为什么不用真实天气 API?
真实 API 会引入 Key、网络、限流和格式变化。入门阶段先用模拟工具更容易理解 Agent 机制。
总结
第一个 AI Agent 的目标不是“全自动”,而是跑通 模型判断 → 工具调用 → 工具结果 → 最终回答 的闭环。等这个最小循环稳定后,再逐步加入真实 API、状态管理、日志和权限控制。

