重生之点亮Agent技术栈--agent
来源:互联网
时间:2026-06-09 07:25:22
上一篇聊了基础概念后,这次我们深入看看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)
得到的结果:
其他
工作范式
- :思维链,要求模型先输出中间推理步骤,再给最终答案。简单来说就是在 prompt 后面加一句“让我们一步步思考”。
CoT(Chain of Thought)
提示词工程中还有两种引导策略:
1. Zero-shot:不给任何示例,直接给指令
2. Few-shot:按指定的推理模板输出,比如给 2~5 个输入-输出示例,让模型模仿。
- :边推理,边执行。核心流程是 Though → Action → Observation → Thought → ... → 完成。缺点是效率低,调用次数多。
ReAct(Reasoning + Acting)
- :先想好全盘,再一步步做。问题在于前期规划一旦出错,后面就容易一错到底。
PlanAct(Plan-and-Execute)
- :反思机制,让另一个 LLM 对生成结果进行评判和修正。
Reflection
记忆系统
- 短期记忆(上下文)
- 长期记忆(向量库)
- 用户画像(偏好)
安全机制
三层防护:
- 权限控制
- 操作确认(Human-in-the-loop)
- 沙箱执行(隔离环境)
如果把所有工具和说明一次性塞给模型,上下文窗口会迅速耗尽,注意力也会涣散。解决办法有两种:
- :先给最少量的信息,触发后再展开。
渐进式披露
- :按需给、分层给、在正确的时机给。
三给原则