Agent开发教程:从零搭建你的第一个AI助手(2026实战指南)
上周我帮一个朋友搭建了他的第一个 AI Agent——一个能自动回复客户咨询、查询订单状态、甚至主动推荐产品的销售助手。整个过程只用了一个下午,但他说这个 Agent 已经帮他节省了每天 2 小时的重复劳动。
这不是科幻,这是 2026 年任何会写 Python 的人都能做到的事。
这篇 Agent 开发教程 会带你从零开始,用最简单的方式搭建一个真正能干活的 AI Agent。不需要机器学习背景,不需要复杂的框架,只需要基本的编程能力和一个清晰的目标。
什么是 AI Agent?为什么你需要它?
AI Agent 不是聊天机器人。聊天机器人只会回答问题,Agent 会主动做事。
一个合格的 Agent 有三个核心能力:
- 感知:能读取外部信息(API、数据库、文件、网页)
- 决策:能根据目标选择下一步行动
- 执行:能调用工具完成任务(发邮件、写文件、调用API)
举个例子:
- 聊天机器人:"今天天气怎么样?" → "我不知道,我没有联网。"
- AI Agent:"今天天气怎么样?" → 调用天气API → "北京今天多云,15-22°C,建议带件外套。"
Agent 的价值在于自主性。你给它一个目标("帮我整理这周的会议纪要"),它会自己拆解任务、调用工具、完成工作,而不是等你一步步指挥。
Agent 开发的三大核心模块
1. 大脑:LLM 推理引擎
Agent 的"大脑"是大语言模型(LLM),负责理解任务、规划步骤、生成回复。
推荐选择:
- OpenAI GPT-4:最强推理能力,适合复杂任务
- Claude 3.5 Sonnet:长上下文(200K tokens),适合处理大量文档
- 本地模型(Llama 3.1):隐私敏感场景,成本可控
核心代码(以 OpenAI 为例):
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
def agent_think(user_input, context):
response = client.chat.completions.create(
model="gpt-4-turbo",
messages=[
{"role": "system", "content": "你是一个销售助手,帮助用户查询订单和推荐产品。"},
{"role": "user", "content": user_input}
],
tools=[ # 告诉模型可以调用哪些工具
{
"type": "function",
"function": {
"name": "query_order",
"description": "查询订单状态",
"parameters": {
"type": "object",
"properties": {
"order_id": {"type": "string"}
}
}
}
}
]
)
return response
关键点:
tools参数让模型知道它能做什么- 模型会返回"我需要调用 query_order 工具",而不是直接编造答案
- 你的代码负责真正执行工具调用
2. 手脚:工具集成(Tool Calling)
Agent 的"手脚"是各种工具函数,让它能与外部世界交互。
常见工具类型:
- 数据查询:数据库查询、API 调用、文件读取
- 内容生成:写邮件、生成报告、创建图片
- 自动化操作:发送消息、更新表格、触发工作流
实战示例:订单查询工具
def query_order(order_id):
# 实际场景中这里会调用数据库或 API
orders = {
"12345": {"status": "已发货", "tracking": "SF1234567890"},
"67890": {"status": "处理中", "eta": "2026-03-18"}
}
return orders.get(order_id, {"status": "订单不存在"})
# Agent 调用流程
user_input = "我的订单 12345 到哪了?"
response = agent_think(user_input, context={})
# 如果模型决定调用工具
if response.choices[0].message.tool_calls:
tool_call = response.choices[0].message.tool_calls[0]
if tool_call.function.name == "query_order":
args = json.loads(tool_call.function.arguments)
result = query_order(args["order_id"])
# 把结果返回给模型,让它生成最终回复
final_response = client.chat.completions.create(
model="gpt-4-turbo",
messages=[
{"role": "user", "content": user_input},
{"role": "assistant", "content": None, "tool_calls": [tool_call]},
{"role": "tool", "content": json.dumps(result), "tool_call_id": tool_call.id}
]
)
print(final_response.choices[0].message.content)
# 输出:"您的订单 12345 已发货,快递单号 SF1234567890。"
工具设计原则:
- 单一职责:一个工具只做一件事
- 清晰描述:
description要让模型明白什么时候该用这个工具 - 错误处理:工具调用失败时返回明确的错误信息,而不是崩溃
3. 记忆:上下文管理
Agent 需要记住之前的对话和操作结果,否则每次都像失忆一样重新开始。
三种记忆类型:
- 短期记忆(Session Memory):当前对话的上下文,存在
messages数组里 - 长期记忆(Long-term Memory):用户偏好、历史交互,存在数据库或向量库
- 工作记忆(Working Memory):当前任务的中间状态("我正在查第3个订单")
实战代码:
class AgentMemory:
def __init__(self):
self.messages = [] # 短期记忆
self.user_profile = {} # 长期记忆
def add_message(self, role, content):
self.messages.append({"role": role, "content": content})
# 限制上下文长度,避免超出 token 限制
if len(self.messages) > 20:
self.messages = self.messages[-20:]
def get_context(self):
return self.messages
memory = AgentMemory()
memory.add_message("user", "我的订单 12345 到哪了?")
memory.add_message("assistant", "您的订单已发货,快递单号 SF1234567890。")
进阶技巧:
- 用 向量数据库(如 Pinecone、Weaviate)存储长期记忆,支持语义搜索
- 用 摘要技术 压缩历史对话,保留关键信息但减少 token 消耗
- 用 结构化存储(JSON/数据库)记录用户偏好和任务状态
完整示例:30 分钟搭建销售助手 Agent
把上面三个模块组合起来,一个完整的 Agent 就出来了:
import json
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
# 工具定义
def query_order(order_id):
orders = {"12345": {"status": "已发货", "tracking": "SF1234567890"}}
return orders.get(order_id, {"status": "订单不存在"})
def recommend_product(category):
products = {
"电子产品": ["iPhone 15", "AirPods Pro"],
"图书": ["《AI Agent 实战》", "《Python 自动化》"]
}
return products.get(category, [])
# Agent 主循环
class SalesAgent:
def __init__(self):
self.memory = []
def chat(self, user_input):
self.memory.append({"role": "user", "content": user_input})
response = client.chat.completions.create(
model="gpt-4-turbo",
messages=self.memory,
tools=[
{"type": "function", "function": {
"name": "query_order",
"description": "查询订单状态",
"parameters": {"type": "object", "properties": {"order_id": {"type": "string"}}}
}},
{"type": "function", "function": {
"name": "recommend_product",
"description": "推荐产品",
"parameters": {"type": "object", "properties": {"category": {"type": "string"}}}
}}
]
)
# 处理工具调用
if response.choices[0].message.tool_calls:
for tool_call in response.choices[0].message.tool_calls:
if tool_call.function.name == "query_order":
args = json.loads(tool_call.function.arguments)
result = query_order(args["order_id"])
elif tool_call.function.name == "recommend_product":
args = json.loads(tool_call.function.arguments)
result = recommend_product(args["category"])
self.memory.append({"role": "tool", "content": json.dumps(result), "tool_call_id": tool_call.id})
# 让模型生成最终回复
final_response = client.chat.completions.create(model="gpt-4-turbo", messages=self.memory)
reply = final_response.choices[0].message.content
else:
reply = response.choices[0].message.content
self.memory.append({"role": "assistant", "content": reply})
return reply
# 使用
agent = SalesAgent()
print(agent.chat("我的订单 12345 到哪了?"))
print(agent.chat("推荐一些电子产品"))
运行结果:
您的订单 12345 已发货,快递单号 SF1234567890。
为您推荐:iPhone 15、AirPods Pro。
Agent 开发的 5 个常见坑
1. 工具描述不清晰
❌ "description": "查询数据"
✅ "description": "根据订单号查询订单状态和物流信息"
模型需要精确的描述才能判断什么时候该用这个工具。
2. 没有错误处理
工具调用可能失败(API 超时、数据库连接断开),Agent 需要优雅降级:
try:
result = query_order(order_id)
except Exception as e:
result = {"error": "订单查询失败,请稍后重试"}
3. 上下文爆炸
对话越长,token 消耗越大。解决方案:
- 定期清理不重要的历史消息
- 用摘要替代完整对话历史
- 只保留最近 N 轮对话
4. 工具调用死循环
模型可能反复调用同一个工具。解决方案:
- 限制单次对话的工具调用次数(如最多 5 次)
- 检测重复调用,强制返回结果
5. ��本失控
GPT-4 很贵($0.03/1K tokens)。优化方法:
- 用 GPT-3.5 处理简单任务
- 缓存常见问题的答案
- 用本地模型处理隐私敏感数据
进阶方向:从玩具到生产级 Agent
1. 多 Agent 协作
复杂任务可以拆分给多个专业 Agent:
- 路由 Agent:判断用户意图,分发给专业 Agent
- 销售 Agent:处理订单查询和推荐
- 客服 Agent:处理退换货和投诉
- 数据 Agent:生成报表和分析
2. 持久化与部署
- 用 FastAPI 或 Flask 包装成 Web API
- 用 Redis 存储会话状态
- 用 Docker 容器化部署
- 用 Kubernetes 实现高可用
3. 监控与优化
- 记录每次工具调用的耗时和成功率
- 追踪用户满意度("这个回答有帮助吗?")
- A/B 测试不同的 prompt 和工具配置
实战资源推荐
如果你想快速上手 Agent 开发,这些资源能帮你节省 80% 的摸索时间:
🎁 免费下载:AI Agent Starter Pack — 包含 Agent 架构模板、常用工具库、Prompt 示例
💰 完整工具包:AI Agent Tools Bundle — 500+ Prompts + 50+ n8n 工作流 + 安全检查清单,省 70%
🚀 腾讯云 AI 服务:新用户专享优惠 — GPU 服务器、向量数据库、模型托管一站式解决方案
总结:Agent 开发的本质
Agent 开发不是在写代码,是在设计一个能自主工作的数字员工。
三个核心问题:
- 它需要什么能力? → 定义工具集
- 它怎么做决策? → 设计 prompt 和推理流程
- 它怎么记住上下文? → 构建记忆系统
从一个简单的订单查询 Agent 开始,逐步扩展功能,你会发现 Agent 能做的事远比你想象的多。
2026 年,会写 Agent 的人和不会写的人,生产力差距会拉到 10 倍以上。
现在开始,还不晚。
关于作者:前大厂 AI 产品架构师,现在用 AI Agent 跑自己的业务。如果这篇教程对你有帮助,欢迎分享给更多人。