知识集合
LangChain v1 Agent 学习路线
围绕 LangChain v1 的 create_agent、消息、工具、记忆、中间件和子 Agent 学习。
第 1 章:构造 `create_agent`
目标
第 1 章:Prompt 与消息模板
学习目标
第 2 章:LCEL 与 Runnable
学习目标
第 2 章:消息、Prompt、工具与结构化输出
消息协议
第 3 章:标准 Agent 与 Middleware
学习目标
第 3 章:短期记忆
短期记忆是同一对话 thread 的 Agent state 持久化,不是模型自己的记忆。给 createagent 传 checkpointer=InMemorySaver(),每次调用传相同 config={"configurable": {"threadid": "..."}},第二轮就会恢复第一轮写入的 mes
第 4 章:文档、切分、Embedding 与 Retriever
学习目标
第 4 章:长期记忆与 Store
长期记忆是跨 thread 的受控数据。Store 挂在编译 Agent 上,工具通过 ToolRuntime.store 读取;namespace 必须包含已认证用户 id,避免 A 用户读到 B 用户的偏好。
第 5 章:RAG 检索 Agent
学习目标
第 5 章:流式输出与观测
ainvoke 适合只要最终 state;astream 适合 UI 或实时日志;astreamevents(version="v2") 适合查看 Runnable/Agent 的嵌套生命周期。三者都执行真实工作,不要为了“流式”重复调用 Agent。
第 6 章:预制 Middleware
Middleware 在模型或工具节点前后执行,解决横切问题,不承担业务状态机。按顺序传入 middleware=[...];顺序会影响谁先观察和修改请求。
第 6 章:Runnable 观测与生产边界
学习目标
第 7 章:自定义 `AgentMiddleware`
只在预制 middleware 无法表达需求时自定义。常用钩子:beforeagent/afteragent 观察整次运行,beforemodel/aftermodel 修改或检查 state,wrapmodelcall 动态选择模型,wraptoolcall 拦截单次工具。
第 8 章:人在回路(HITL)
对有外部副作用的工具使用 HumanInTheLoopMiddleware。它在模型提出匹配工具调用后生成 LangGraph interrupt;调用方展示 action,再以 Command(resume={"decisions": [...]}) 恢复。必须配 checkpointer,否则没有可恢复状态。
第 9 章:Context engineering
Context engineering 是把有限、可信、任务相关的信息在正确时机交给模型,不是把所有数据拼进 system prompt。一个可审查顺序是:稳定规则 最近消息 已验证工具结果 当前任务所需的最小长期记忆 模型调用。
第 10 章:子 Agent 与结构化交接
子 Agent 的目的不是把任何函数都拆成 Agent,而是隔离专业工具、上下文和失败边界。父 Agent 只传任务契约,子 Agent 只返结果契约,禁止把完整父对话、认证信息或所有 Store 内容直接转发。
第 11 章:综合 Agent
[16integratedagent.py](examples/16integratedagent.py) 组合标准 Agent 的必要部件: