通用 AI Agent 开发步骤

第一阶段:确定 Agent 的定位

第 1 步:定义能力边界

先搞清楚 Agent 要做什么、不做什么。比如:

  • 它能不能访问外部数据?(数据库、文件、API)
  • 它能不能执行写操作?(下单、发邮件、改配置)
  • 它需要什么专业知识?(行业文档、产品手册)

这一步输出一张工具清单,每个工具一行:工具名、功能、入参、出参、触发条件。


第二阶段:选型与技术栈搭建

第 2 步:选大模型

三种路线:

路线 适合场景 例子
闭源 API 追求效果,有预算 GPT-4o、Claude、通义千问
本地开源模型 数据敏感,延迟敏感 Qwen2.5、LLaMA 3
OpenAI 兼容代理 灵活切换 vLLM、Ollama 起的服务

关键:一开始就把模型接入层抽象出来(工厂模式),后面换模型不改业务代码。

第 3 步:选 Agent 框架

  • LangChain + LangGraph --- 功能最全,生态最大,但 API 变来变去
  • Semantic Kernel(微软)--- .NET/Java/Python 统一,企业级
  • AutoGen(微软)--- 多 Agent 对话场景
  • 手写 --- 一个 while 循环就能跑 ReAct,控制力最强

选框架的原则:看文档质量和社区活跃度,不要被 demo 吸引。

第 4 步:选技术组件

组件 选项 选型依据
向量数据库 Chroma / Pinecone / Milvus / Weaviate 数据量小的原型用 Chroma,生产用 Milvus
嵌入模型 text-embedding-3-small / bge-large / text-embedding-v4 和 LLM 同生态最好
文档加载 LangChain Document Loaders PDF、HTML、数据库、GitHub 都有人写过
文本分块 RecursiveCharacterTextSplitter / Semantic Splitter 简单用按字符,高质量用按语义
配置管理 YAML / .env YAML 管业务参数,.env 管密钥
日志 Python logging 记录每个工具调用和模型输出

第三阶段:核心开发

第 5 步:写 Prompt(最重要的一步)

一个 Agent 的 Prompt 通常包含这几块:

复制代码
1. 角色定义 --- 你是谁、能做什么
2. 思维链规则 --- 怎么思考、什么时候调工具
3. 工具说明 --- 每个工具什么时候用、怎么传参
4. 输出约束 --- 格式要求、禁区
5. 边界说明 --- 不知道就说不知道

写好 Prompt 的判断标准:删掉所有示例后,模型还能稳定执行正确的工具调用。依赖示例才能跑的 Prompt 换个场景就崩。

第 6 步:注册工具

每个工具三件事:

  • 写函数体(逻辑要简单)
  • 写 description(模型靠这个决定什么时候调你)
  • 定义参数(类型、格式约束)

工具设计的经验:每个工具只做一件事,把多个步骤串起来的逻辑交给 Agent 自己规划,不要在工具内部写 if-else。

第 7 步:实现 Agent 循环

标准 ReAct 循环:

复制代码
循环开始:
  1. 系统 Prompt + 对话历史 → 模型
  2. 模型输出:
     a. 如果输出"思考" → 决定调什么工具
     b. 如果输出工具调用 → 执行工具 → 观察结果 → 回到 1
     c. 如果输出最终回答 → 返回给用户
  3. 达到最大轮数或遇到错误 → 兜底回复

第 8 步:加入中间件(可选)

中间件是在 Agent 执行流程中插入的自定义逻辑,典型用途:

  • 每次调工具前记录日志
  • 每次调模型前检查上下文
  • 根据场景动态切换 Prompt
  • 超时控制、错误重试

中间件的好处是不污染核心循环代码。


第四阶段:RAG(检索增强生成)

第 9 步:搭建知识库管线

复制代码
知识库文件 → 加载 → 分块 → 向量化 → 存入向量库
                     ↓
用户问题 → 向量检索 → 获取相关文档 → 拼入 Prompt → 模型回答

容易踩的坑:

  • 分块太大 :模型上下文窗口不够;太小:信息碎片化。一般 200-500 token 起步。
  • 只用向量检索不够:关键文档可以用 BM25(关键词搜索)+ 向量检索混合,取交集。
  • 检索结果不做排序:top-k 里可能混进无关内容,需要重排序(reranker)。

第五阶段:UI 与部署

第 10 步:搭界面

别在界面上花太多时间。原型阶段的目标是能看能聊,不是好看。

  • 个人用:Streamlit / Gradio --- 几行代码出对话界面
  • 生产用:React + FastAPI 后端

第 11 步:流式输出

必须做。用户等不了模型想完再看到全部文字。流式输出把"正在打字"的效果给用户,体验好得多。


第四阶段(实际是迭代过程):Prompt 迭代

贯穿始终:写 Prompt → 跑测试 → 发现问题 → 改 Prompt 或工具描述 → 再跑。

常见问题和解法:

现象 原因 修法
模型不调工具 工具描述不够具体 明确写"什么时候调、传什么参"
模型乱调工具 工具描述有歧义 缩小 scope,或者加约束
模型编造答案 检索内容不够 加大 k 值,或者改 Prompt 强调"不知道就说不知道"
模型忘记之前调过什么 对话历史被截断 增大上下文窗口,或者用摘要压缩历史

相关推荐
深蓝AI36 分钟前
无头浏览器不必从 Chrome 改:Lightpanda 用 Zig 从零造,100 个页面只占 123MB 内存
人工智能·程序员
奈落243 小时前
AI辅助的另一面:从2026年国际AI安全报告的“故障”清单到国内专家的可靠性短板,自主行动的Agent为什么更难及时干预
人工智能·安全·agent·本地部署·ai 办公
火山引擎开发者社区4 小时前
eMudhra 证书失陷:容器用户最容易忽略的镜像信任链漏洞
人工智能
LabVIEW开发5 小时前
LabVIEW 机载 DIAL:每秒万次甲烷测量
人工智能·labview·labview知识·labview功能·labview程序
飞猫的边缘AI6 小时前
英特尔量子生意
人工智能·量子计算·边缘ai
深蓝AI6 小时前
桌面 Agent 缺的不是视觉:Vercel 开源 agent-desktop,用无障碍树 ref 替代截图坐标
人工智能·程序员
镜子AI6 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
向哆哆7 小时前
羊行为目标检测数据集:4类别、2,000张图像 | 目标检测
人工智能·yolo·目标检测·目标跟踪
如若1237 小时前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
赛博守夜人8 小时前
AI安全攻防与治理之十六:对抗样本、恶意文件与多模态攻击,AI 内容安全检测的真实盲区
人工智能·安全