Agent开发教程:从零搭建你的第一个AI助手(2026实战指南)

6 阅读1分钟

Agent开发教程:从零搭建你的第一个AI助手(2026实战指南)

上周我帮一个朋友搭建了他的第一个 AI Agent——一个能自动回复客户咨询、查询订单状态、甚至主动推荐产品的销售助手。整个过程只用了一个下午,但他说这个 Agent 已经帮他节省了每天 2 小时的重复劳动。

这不是科幻,这是 2026 年任何会写 Python 的人都能做到的事。

这篇 Agent 开发教程 会带你从零开始,用最简单的方式搭建一个真正能干活的 AI Agent。不需要机器学习背景,不需要复杂的框架,只需要基本的编程能力和一个清晰的目标。


什么是 AI Agent?为什么你需要它?

AI Agent 不是聊天机器人。聊天机器人只会回答问题,Agent 会主动做事。

一个合格的 Agent 有三个核心能力:

  1. 感知:能读取外部信息(API、数据库、文件、网页)
  2. 决策:能根据目标选择下一步行动
  3. 执行:能调用工具完成任务(发邮件、写文件、调用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 需要记住之前的对话和操作结果,否则每次都像失忆一样重新开始。

三种记忆类型

  1. 短期记忆(Session Memory):当前对话的上下文,存在 messages 数组里
  2. 长期记忆(Long-term Memory):用户偏好、历史交互,存在数据库或向量库
  3. 工作记忆(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. 持久化与部署

  • FastAPIFlask 包装成 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 开发不是在写代码,是在设计一个能自主工作的数字员工

三个核心问题:

  1. 它需要什么能力? → 定义工具集
  2. 它怎么做决策? → 设计 prompt 和推理流程
  3. 它怎么记住上下文? → 构建记忆系统

从一个简单的订单查询 Agent 开始,逐步扩展功能,你会发现 Agent 能做的事远比你想象的多。

2026 年,会写 Agent 的人和不会写的人,生产力差距会拉到 10 倍以上。

现在开始,还不晚。


关于作者:前大厂 AI 产品架构师,现在用 AI Agent 跑自己的业务。如果这篇教程对你有帮助,欢迎分享给更多人。