为什么开始系统学 Agent

 课程视频:https://pan.quark.cn/s/6013c24aa8bf

之前用大模型基本就是 prompt 调调、接接 API,感觉能用,但做不成什么真正的东西。后来有个需求——想让模型自动完成一个多步骤的任务(搜索 → 判断 → 写结果),单次调用根本搞不定,才意识到自己对 Agent 架构这块是完全空白的。

花了一段时间跟着资料系统过了一遍,从架构理解到跑通实战,记录一下路径和踩过的坑。

第一步卡住的地方:Agent 到底在做什么

刚开始最困惑的是:Agent 和"普通调用模型"有什么本质区别?后来理解了一个核心点——Agent 是在做循环推理,不是一次性出答案:

# Agent 的基本运行逻辑(ReAct 范式)
while not_done():
    thought = llm.think(observation)   # 模型推理当前状态
    action  = llm.decide(thought)      # 决定下一步动作
    result  = tool.run(action)         # 调用工具执行
    observation = result               # 把结果喂回去继续

这个循环如果不限制 max_iterations,模型很容易陷入死循环或者重复调同一个工具。调试阶段建议先把步数锁死在 5 步以内,看清楚每步在干什么再放开。

框架选型:AutoGen / LangChain / MetaGPT 怎么选

这三个框架定位其实不太一样,混用容易乱:

# LangChain:工具链组装,适合单 Agent + RAG 场景
agent = initialize_agent(
    tools=[search_tool, calc_tool],
    llm=ChatOpenAI(model="gpt-4"),
    agent="zero-shot-react-description"
)

# AutoGen:多 Agent 对话协作,适合任务分工场景
# MetaGPT:角色扮演式多 Agent,偏软件工程任务

我个人先从 LangChain 入手,把单 Agent + 工具调用跑通之后,再去看 AutoGen 的多智能体对话逻辑,顺序下来理解成本低很多。MetaGPT 目前只是跑了官方 Demo,还没深入用。

RAG 是这套体系里含金量最高的部分

做企业级应用几乎绕不开 RAG(检索增强生成)。之前以为就是"把文档塞给模型",实际做下来才发现坑在检索质量上,不是喂数据那么简单:

# 简化的 RAG 流程
query = "用户问题"

# 1. 向量检索相关文档片段
chunks = vectorstore.similarity_search(query, k=5)

# 2. 把检索结果塞进 prompt
context = "\n".join([c.page_content for c in chunks])
prompt  = f"根据以下内容回答:\n{context}\n\n问题:{query}"

# 3. 模型生成答案
answer = llm.invoke(prompt)

实际工程里 chunk 切分策略、embedding 模型选择、重排序(rerank)这些都会显著影响效果,后面单独写一篇记录。

学习模块进度

模块 实用度 状态
Agent 架构 / ReAct 原理 ★★★★★ 已完成
LangChain 工具链搭建 ★★★★★ 已完成
RAG 检索增强生成 ★★★★★ 进行中
AutoGen 多 Agent 协作 ★★★★☆ 进行中
MetaGPT / AI 小镇拆解 ★★★☆☆ 待学习
LoRA 微调 / 任务训练 ★★★★☆ 待学习

目前跑通的东西

基于 LangChain + GPT-4 搭了个简单的"自动调研助手":输入一个主题 → Agent 自动搜索 → 提炼关键信息 → 输出结构化摘要。链路不复杂,但从"能跑 Demo"到"稳定出结果"中间还是填了不少坑,主要在 prompt 设计和工具调用的错误处理上。

LoRA 微调那块还没动,等 RAG 这条线收尾了再开。有做垂直场景应用的同学欢迎评论区交流,踩过的坑多聊聊。

课程视频:https://pan.quark.cn/s/6013c24aa8bf

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐