- 📋 本文要点
- 一、什么是AI Agent?
- 二、Agent vs Workflow:两个关键概念
- 三、主流开发框架对比
- 四、Agent开发5步法
- 第1步:明确Agent的目标与边界
- 第2步:设计工具集(Tools)
- 第3步:编写System Prompt
- 第4步:实现Agent循环
- 第5步:评估与迭代
- 五、实战案例:用LangChain构建市场调研Agent
- 完整代码
- 代码解读
- 六、常见坑点与最佳实践
- 坑点1:Agent陷入死循环
- 坑点2:工具描述不清导致误用
- 坑点3:Token爆炸
- 坑点4:评估困难
- 坑点5:忽视安全与成本
- 七、进阶方向:从单Agent到多Agent系统
- 八、总结与学习路径
- 📌 相关推荐
一、什么是AI Agent?
AI Agent(智能体)是大模型从"对话工具"走向"自主执行者"的关键形态。普通的大模型调用是一问一答——你给一个输入,模型返回一个输出,整个交互是单轮的、被动的。
而AI Agent具备三个核心能力:
- 自主规划:把复杂目标拆解为多个子任务,自主决定执行顺序
- 工具调用:能调用搜索、计算、数据库、API等外部工具,突破模型的"知识截止"和"无副作用"限制
- 循环反思:能根据工具返回的结果调整下一步行动,遇到错误能自我修正
通俗类比:普通大模型调用像"问一个无所不知但只能动嘴的专家",AI Agent像"雇一个会自己查资料、跑腿、写文档、还能复盘的助理"。
2026年AI Agent已经从实验室走向生产环境。OpenAI的Operator、Anthropic的Claude Computer Use、字节跳动的Coze、智谱的AutoGLM都是典型的Agent产品。对开发者来说,掌握Agent开发已经成为大模型应用层最重要的技能之一。
二、Agent vs Workflow:两个关键概念
在开始动手前,必须分清两个容易混淆的概念:
- Workflow(工作流):预定义了步骤和分支的LLM调用流水线,每一步做什么、什么时候切换都是写死的。比如"先搜索→再总结→再翻译"。
- Agent(智能体):只给目标,由LLM自主决定下一步动作。LLM既是"执行者"也是"决策者"。
判断标准很简单:路径是否由LLM动态决定。是,则属于Agent;否,则属于Workflow。
实践中两者常常结合使用:Workflow处理稳定流程,Agent处理需要灵活决策的环节。Anthropic在2025年发布的《Building Effective Agents》一文对此有深入论述,强烈推荐阅读。
三、主流开发框架对比
2026年AI Agent开发框架已经从"百花齐放"收敛为"四强并立"。每个框架都有自己的强项场景:
1. LangChain / LangGraph
定位:大模型应用开发的"瑞士军刀"。LangChain提供完整的LLM应用组件(模型封装、Prompt模板、Memory、Tools、Retrieval等),LangGraph在其基础上提供基于状态图的Agent编排能力,支持循环、分支、人在回路(human-in-the-loop)等复杂流程。
优势:生态最大、组件最全、文档丰富、社区活跃。LangGraph的图结构让复杂Agent的状态管理变得清晰。
劣势:API变更频繁、抽象层较重、对简单场景略显笨重。
适合:需要构建复杂、有状态、多步推理Agent的团队;企业级应用。
2. CrewAI
定位:主打"多Agent协作"。你定义多个角色(Researcher、Writer、Editor等),每个角色有专属工具和目标,CrewAI让它们按顺序或并行协作完成任务。API设计极其直观,5行代码就能跑起来一个多Agent流程。
优势:多Agent协作天然支持、API简洁、上手快、社区活跃。
劣势:对底层控制力较弱、对复杂状态管理支持有限。
适合:多角色协作场景(内容生产、研究分析、产品研发);快速原型。
3. OpenAI Agents SDK(原Swarm)
定位:OpenAI官方推出的轻量级多Agent框架。核心理念是"Agent + Handoff"——每个Agent有专属指令和工具,Agent之间通过"交接"传递控制权。极其轻量,没有复杂的抽象层。
优势:官方背书、与OpenAI模型深度集成、轻量易上手、Tracing内置。
劣势:对非OpenAI模型支持一般、功能相对精简。
适合:OpenAI生态用户、轻量级多Agent应用、教学demo。
4. AutoGPT / AutoGen
定位:AutoGen是微软推出的多Agent对话框架,强调Agent之间的"群聊式"协作。AutoGPT则是开源社区最早的自主Agent项目之一,2026年已经演进为可构建生产级自主Agent的平台。
优势:AutoGen对多Agent对话编排能力强、支持人在回路;AutoGPT自主性最强、插件生态丰富。
劣势:AutoGen API相对复杂;AutoGPT稳定性需自行把控。
适合:研究型项目、需要Agent间深度讨论的场景、追求极致自主性。
| 维度 | LangGraph | CrewAI | Agents SDK | AutoGen |
|---|---|---|---|---|
| 学习曲线 | 中 | 低 | 低 | 中高 |
| 多Agent协作 | 支持 | 核心强项 | 支持 | 核心强项 |
| 状态管理 | 图结构,强 | 简单 | 简单 | 对话历史 |
| 人在回路 | 原生支持 | 支持 | 支持 | 原生支持 |
| 模型自由度 | 任意 | 任意 | OpenAI优先 | 任意 |
| 生态规模 | 最大 | 中等 | 中等 | 较大 |
| 典型场景 | 复杂企业应用 | 多角色协作 | OpenAI生态 | 研究/复杂对话 |
⚠️ 选型建议:初学者从CrewAI或OpenAI Agents SDK起步最快;构建企业级复杂Agent选LangGraph;需要深度多Agent讨论选AutoGen。不要一上来就追求"最强框架",先把一个Agent跑通比选对框架更重要。
四、Agent开发5步法
无论用哪个框架,构建一个Agent都遵循以下5个核心步骤:
第1步:明确Agent的目标与边界
先问自己三个问题:①Agent要解决什么具体问题?②它的输入是什么、输出是什么?③哪些事它能做、哪些事它不能做?
错误示范:"做一个帮我处理工作的Agent"——太宽泛,无法落地。正确示范:"做一个市场调研Agent,输入是一个公司名,输出是一份包含公司业务、竞品、近期动态的Markdown报告"。
第2步:设计工具集(Tools)
Agent的能力边界由工具决定。常见工具包括:网络搜索(Tavily、SerpAPI)、网页抓取(Firecrawl、Jina Reader)、数据库查询、文件读写、代码执行、API调用、计算器等。
设计工具的关键原则:①每个工具职责单一、命名清晰;②工具描述(description)要写得让LLM能准确判断何时使用;③输入输出用Pydantic或JSON Schema严格定义。
第3步:编写System Prompt
System Prompt是Agent的"角色说明书"。好的System Prompt包含:①角色定位;②任务目标;③可用工具及其使用时机;④输出格式约束;⑤边界与禁止行为;⑥示例(few-shot)。
第4步:实现Agent循环
Agent的核心是"思考-行动-观察"循环(ReAct范式):LLM思考下一步该做什么→调用工具→观察返回结果→继续思考……直到LLM判断任务完成。
实现时要注意:①设置最大迭代次数防止死循环;②对工具调用做超时处理;③错误信息回传给LLM让其自我修正;④关键步骤加入"人在回路"确认。
第5步:评估与迭代
Agent开发最大的挑战是评估——同样的输入可能产生不同的执行路径。建议:①准备10-20个测试用例覆盖典型场景;②记录每次执行的完整trace用于调试;③关注"成功率""平均步数""平均token消耗""平均耗时"四个核心指标;④用LLM-as-Judge自动评分。
五、实战案例:用LangChain构建市场调研Agent
下面我们用LangChain + LangGraph构建一个简化版的市场调研Agent。它接受一个公司名作为输入,自主搜索公司信息、抓取相关网页、生成结构化报告。
完整代码
from typing import Annotated, TypedDict
from langchain_openai import ChatOpenAI
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_core.messages import HumanMessage, SystemMessage
from langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messages
from langgraph.prebuilt import ToolNode, tools_condition
# 1. 定义工具
search = TavilySearchResults(max_results=5)
tools = [search]
# 2. 定义模型并绑定工具
model = ChatOpenAI(model="gpt-4o", temperature=0)
model_with_tools = model.bind_tools(tools)
# 3. 定义状态
class State(TypedDict):
messages: Annotated[list, add_messages]
# 4. 定义Agent节点
SYSTEM_PROMPT = """你是一位资深市场调研分析师。
任务:根据用户给出的公司名,产出一份结构化的市场调研报告。
报告必须包含以下章节:
1. 公司概况(业务、规模、成立时间)
2. 核心产品与服务
3. 主要竞争对手
4. 近期重要动态
5. 简要分析
你可以使用搜索工具获取最新信息。每个章节至少基于2条搜索结果。
输出格式:Markdown。"""
def agent_node(state: State):
messages = [SystemMessage(content=SYSTEM_PROMPT)] + state["messages"]
response = model_with_tools.invoke(messages)
return {"messages": [response]}
# 5. 构建Graph
graph = StateGraph(State)
graph.add_node("agent", agent_node)
graph.add_node("tools", ToolNode(tools))
graph.add_edge(START, "agent")
graph.add_conditional_edges("agent", tools_condition)
graph.add_edge("tools", "agent")
graph.add_edge("agent", END)
# 6. 编译并运行
app = graph.compile()
result = app.invoke({"messages": [HumanMessage(content="调研一下 Anthropic 这家公司")]})
print(result["messages"][-1].content)
代码解读
- 定义工具:用Tavily搜索API作为Agent的"眼睛",让它能查最新信息。
- 绑定工具:通过bind_tools让模型知道有哪些工具可调用、何时调用。
- 定义状态:LangGraph用TypedDict管理状态,messages字段自动累加。
- 定义Agent节点:核心是System Prompt,明确角色、任务、输出格式。
- 构建Graph:START→agent→(条件分支:要调用工具则去tools节点,否则END)→tools→回到agent。这就是ReAct循环。
- 编译运行:compile()把图编译为可执行对象,invoke触发执行。
💡 扩展建议:①加上Firecrawl工具让Agent能抓取网页正文;②加上文件写入工具让Agent能把报告保存为.md文件;③加上Human-in-the-loop让Agent在关键步骤暂停确认。
六、常见坑点与最佳实践
坑点1:Agent陷入死循环
表现:Agent反复调用同一个工具、产生同样的错误、永远不收敛。解决:①设置max_iterations(建议10-20);②在System Prompt里明确"如果尝试3次仍失败,请直接给出当前已知信息并说明限制";③用LangGraph的checkpointer保存中间状态便于调试。
坑点2:工具描述不清导致误用
表现:Agent在不该调用工具时调用、或调用了错误的工具。解决:工具的name和description要写得像写给新同事看的SOP——明确"这个工具做什么""什么时候该用""什么时候不该用"。比如"search_news"应描述为"搜索最近7天的新闻,用于获取公司近期动态。当需要历史信息(早于7天)时不要使用此工具"。
坑点3:Token爆炸
表现:长任务跑着跑着上下文超出模型限制。解决:①用summarization定期压缩历史消息;②只把最近N轮对话保留为完整message,更早的压缩为摘要;③工具返回结果要精简,避免返回大段原始HTML。
坑点4:评估困难
表现:改了一个Prompt,不知道是变好还是变坏了。解决:①建立固定的测试集;②用LLM-as-Judge按维度打分(准确性、完整性、格式、可读性);③记录每次变更的trace,对比同一输入的执行差异。
坑点5:忽视安全与成本
表现:Agent自主执行了危险操作(删文件、发邮件)或烧光API预算。解决:①危险工具必须加human-in-the-loop确认;②设置每日token预算上限;③对工具调用做权限分级。
核心心法:Agent开发的难点不在"写代码",而在"调教"。把它当成培养一个新员工——清晰的指令、明确的边界、可量化的评估、持续的反馈,比追求"最强模型"更重要。
七、进阶方向:从单Agent到多Agent系统
当你能熟练构建单Agent后,下一个台阶是多Agent系统(Multi-Agent System)。核心思想是让多个专精Agent协作完成复杂任务,类似人类团队的分工。
常见的多Agent模式:
- 主管-工人模式(Orchestrator-Worker):一个主管Agent拆解任务、分发给多个工人Agent,最后汇总。适合内容生产、研究报告等场景。
- 辩论模式:多个Agent从不同立场讨论同一问题,最后由裁判Agent综合。适合决策支持、风险评估。
- 流水线模式:Agent按顺序处理——Researcher调研→Writer写作→Editor审校→Publisher发布。适合内容生产线。
CrewAI和OpenAI Agents SDK对多Agent协作有原生支持,是入门多Agent系统的推荐起点。
八、总结与学习路径
AI Agent是2026年大模型应用层最值得投入的方向。掌握Agent开发,你能构建出真正"能干活"的AI应用,而不仅仅是"会聊天"的对话框。
推荐的学习路径:
- 第1周:读Anthropic的《Building Effective Agents》和OpenAI的《Practices for Building Agents》两篇官方文档,建立概念框架。
- 第2周:用OpenAI Agents SDK或CrewAI跑通一个最简单的多Agent demo,建立直觉。
- 第3-4周:用LangGraph构建一个有状态、带工具的单Agent,跑通完整ReAct循环。
- 第2个月:选一个真实场景(比如市场调研、代码审查、客户支持)构建生产级Agent,加入评估、监控、人在回路。
- 第3个月:尝试多Agent系统,理解不同协作模式的优劣。
最后一句:Agent开发是一门"工程+艺术"的混合手艺。理论再好不如动手做一个——从今天的Hello World Agent开始,比你纠结三个月选型更有价值。