Agent由大模型、工具调用、记忆与规划组成,其执行流程为用户输入经LLM推理,判断是否调用工具并反馈结果,循环至任务完成。RAG通过检索内部资料库增强生成,弥补模型未知数据。工作范式包括思维链、ReAct、PlanAct及反思机制,并配有记忆系统与安全机制。
Agent技术栈从零点亮指南
作者:技术拾光
时间:2026-07-04
浏览:528
文章目录
继上一篇基础概念后,本文深入解析Agent。那些复杂定义容易让人困惑,核心其实只有几个模块。
Agent到底是什么?
Agent的公式非常简洁:大模型(LLM)+ 工具/MCP调用 + 记忆(Memory)+ 规划(Planning/Workflow)。另一种表达是 Agent = LLM + Harness,大模型负责思考、推理和决策,Harness 则确保整个过程稳定、不跑偏、可持久、可恢复。
一个Agent的完整执行流程如下:
用户输入(需求) ↓
LLM 推理(解析需求、判断下一步) ↓
是否调用工具?(分支判断) ↓
执行工具(调用脚本/接口/浏览器) ↓
结果反馈给 LLM(上下文更新) ↓
继续推理(循环,直到完成任务)
下面是大佬给出的学习建议:
RAG
RAG是什么?
检索增强生成,即 RAG = 检索(Retrieval)+ 增强生成(Augmented Generation)。简单来说,先把用户问题拿去查资料库,找到相关文档,再交给大模型结合这些资料生成答案。核心流程走一遍就清楚了。
为什么需要RAG?
大模型基于公网内容训练,公司内部数据或资料它无法直接获取。此时需要 RAG 补上短板。例如字节的 Coze 支持本地文档、自定义数据、在线数据等,示意图如下:
怎么处理的?
用户提问 ↓
用户输入 → 文本切分 → 向量嵌入 → 向量数据库 → 检索相关文档 ↓
大模型生成
创建第一个Agent(基于 LangChain)
client = create_agent(
model=llm,
system_prompt="你是一个会使用工具解决问题的助手。",
)
response = client.invoke({
"messages": [{"role": "user", "content": "用100个字介绍一下agent"}]
})
print(response)
得到的结果:
再添加一些代码,做一个有记忆的 Agent:
@dataclass
class Context:
"""自定义运行时上下文模式。"""
user_id: str
@tool
def getWeather(city: str) -> str:
"""查询城市天气的本地示例工具。"""
weather_map = {
"北京": "晴,25摄氏度",
"上海": "多云,27摄氏度",
"广州": "小雨,29摄氏度"
}
return weather_map.get(city, "暂未查询到该城市天气")
@tool
def getUserLocation(runtime: ToolRuntime[Context]) -> str:
"""根据用户ID获取用户位置"""
user_id = runtime.context.user_id
user_info = runtime.store.get(("users",), user_id)
if user_info:
return user_info.value.get("location", "unknown")
return "unknown"
agent = create_agent(
model=llm,
tools=[getWeather, getUserLocation],
system_prompt="你是一个会使用工具解决问题的助手。",
checkpointer=checkpointer,
store=store,
context_schema=Context
)
result = agent.invoke(
{
"messages": [{"role": "user", "content": "帮我看一下外面的天气"}]
},
config={"configurable": {"thread_id": "1"}},
context=Context(user_id="1")
)
res = result["messages"]
print(res[-1].content)
得到的结果:
其他
工作范式
- CoT(Chain of Thought):思维链,要求模型先输出中间推理步骤,再给最终答案。简单来说就是在 prompt 后面加一句“让我们一步步思考”。
提示词工程中还有两种引导策略:
1. Zero-shot:不给任何示例,直接给指令
2. Few-shot:按指定的推理模板输出,比如给 2~5 个输入-输出示例,让模型模仿。
- ReAct(Reasoning + Acting):边推理,边执行。核心流程是 Thought → Action → Observation → Thought → ... → 完成。缺点是效率低,调用次数多。
- PlanAct(Plan-and-Execute):先想好全盘,再一步步做。问题在于前期规划一旦出错,后面就容易一错到底。
- Reflection:反思机制,让另一个 LLM 对生成结果进行评判和修正。
记忆系统
- 短期记忆(上下文)
- 长期记忆(向量库)
- 用户画像(偏好)
安全机制
三层防护:
- 权限控制
- 操作确认(Human-in-the-loop)
- 沙箱执行(隔离环境)
如果把所有工具和说明一次性塞给模型,上下文窗口会迅速耗尽,注意力也会涣散。解决办法有两种:
- 渐进式披露:先给最少量的信息,触发后再展开。
- 三给原则:按需给、分层给、在正确的时机给。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。