Deep Agents 工程教学

从 skills、memory、backend、middleware 到多 Agent、HITL、前端和 A2A 的 Deep Agents 实践。

全部集合
阅读提示本站只展示教学文档和静态源码。不会执行示例、启动服务、访问模型、数据库或其他外部系统。
Skills8 篇
Memory / 记忆7 篇
Context Engineering7 篇
Backends / 后端8 篇
Subagents / 子 Agent8 篇
Human-in-the-loop / 人机回路9 篇
Frontend / 前端23 篇
Profiles / 模型配置6 篇
Advanced / 高级能力9 篇
01

Deep Agents 高级能力教学

这个目录继续学习 Deep Agents 里更靠近生产的能力。每章只做一个核心概念,代码放在 deepagentsrc/advancedteach/,讲义放在 deepagentsrc/advancedteach/docs/。

02

01 Interpreter 与 PTC

Interpreter 是 Deep Agents 的一个轻量代码执行层:模型不只发普通工具调用,还可以写一段 JavaScript 让运行时执行。PTC 是 Programmatic Tool Calling,它把允许的工具暴露到 Interpreter 的 tools 命名空间里,让代码循环、分支、并行调用工具。它

03

02 Sandbox 生命周期

Sandbox 是 Deep Agents 的执行环境后端:它让 Agent 不只读写文件,还能通过 execute 跑命令。生命周期问题解决的是“这个环境什么时候创建、什么时候复用、什么时候销毁”。生产里最常见的是 threadscoped:每个 conversation 一个 sandbox,同一个 threadi

04

第三章:Event Streaming

Event Streaming 是把一次 Agent 运行拆成连续事件:模型消息、工具开始/结束、状态快照和最终输出都会按运行过程吐出来。它解决的是前端不能只等最终答案的问题,IDE、聊天窗口、工具执行面板都需要边跑边更新。Deep Agents 继承 LangGraph 的流式协议,并额外提供面向子代理的 subag

05

第四章:Fault Tolerance

Fault Tolerance 是让 Agent 在真实生产错误里继续可靠工作的能力。它不是把所有异常吞掉,而是按错误类型分流:临时网络错误自动重试,可由模型修正的工具错误转成 ToolMessage,需要人判断的操作交给 HITL,无法处理的未知异常直接暴露给开发者。

06

第五章:Going to Production

生产 Deep Agent 的核心不是“把本地 agent 变量直接部署出去”,而是让每个 run 带着稳定的 threadid 和本次请求的 context。当后端资源依赖 threadid,例如 threadscoped sandbox 时,导出的 Agent 应该是 async graph factory:平台每

07

第六章:Rubric 与 Evaluation

Rubric 是把“做好”写成可判断标准,避免只凭感觉说 Agent 输出不错。RubricMiddleware 在一次 Deep Agent 运行内做 runtime LLMasajudge:工作 Agent 输出后,独立 grader 依据 rubric 给出 satisfied、needsrevision 或 f

08

第七章:Multimodal

Deep Agents 的内置 readfile 不只读文本。对受支持的图片、PDF、音视频文件,它会返回标准多模态 content blocks,让支持对应模态的模型直接检查文件内容,而不是把二进制转成乱码塞进 prompt。

09

第八章:模型能力注册表与运行时模型路由

模型名称不是能力声明。前端可以提交 modelid,但服务端必须用受控注册表确认它确实允许使用,并且满足本轮任务的能力要求;不能把任意 provider/model 字符串直接透传给 initchatmodel。

Middleware / 中间件7 篇
01

Middleware 学习路线

这组小章节专门补 Deep Agents / LangChain / LangGraph 里的 middleware。代码放在 deepagentsrc/middlewareteach/,讲义放在 deepagentsrc/middlewareteach/docs/。

02

第一章:生命周期钩子 `before_model` / `after_model`

这两个 hook 是最基础的 middleware 入口:beforemodel 在每次模型调用前执行,aftermodel 在模型返回后执行。它们适合做日志、限流标记、状态统计、轻量校验;不适合改写整个模型调用流程,那是 wrapmodelcall 的活。

03

第二章:`wrap_model_call`

wrapmodelcall 是包住模型调用的 middleware:你可以选择调用 handler(request),也可以不调用它直接返回。它解决的是模型层控制问题,比如改模型请求、统计调用、fallback、缓存命中、短路返回。

04

第三章:`wrap_tool_call`

wraptoolcall 是包住工具执行的 middleware:它拿到模型发出的 tool call,调用 handler(request) 后工具才会真正执行。它解决的是工具层控制问题,例如审计、重试、错误转译、结果改写和敏感信息过滤。

05

第四章:Deep Agents 默认 middleware 栈

Deep Agents 不是另起炉灶的 Agent runtime,它是把 LangChain agent loop 和一组默认 middleware 打包成 harness。createdeepagent(..., middleware=[...]) 里的自定义 middleware 会插入 Deep Agents

06

第五章:综合案例

本章把 wrapmodelcall、wraptoolcall 和 createdeepagent 放到同一条真实流程里。wrapmodelcall 观察模型层调用,并对临时上游错误做最小重试;wraptoolcall 观察并改写工具结果;Deep Agent 负责真实调用模型并决定工具调用。

07

06 类中间件与 `state_schema`

AgentMiddleware 类写法适合把多个 hook 和它们共享的配置放在一起。stateschema 用来扩展 agent state,让 middleware 能把计数、标记、审计结果这类运行时信息写回最终 state。它不是全局变量,也不是系统提示词,作用域是这次 agent run 的状态。

A2A / 远程 Agent5 篇