Skip to content
目录

类型系统设计

Deep Agents 用 TypeScript 累积 middleware 的 state 与 tools 类型,使 createDeepAgent 返回值在启用子代理、Skills 时仍保持 invoke 输入输出可推断


1. 为何复杂

  • 每个 middleware 可能扩展 State
  • subagents 数组影响 task 工具参数联合类型。
  • 可选 responseFormat 约束最终输出。

2. 核心类型(概念)

类型作用
DeepAgentStatemessages + 各 middleware 字段合并
SubAgentConfig子代理名、描述、工具集
BackendProtocol存储操作签名
CreateDeepAgentParams工厂入参

不列举具体泛型实现;读源码从 createDeepAgent.tstypes/ 入手。


3. 类型推断流程

  1. 固定内置 middleware 基础 State。
  2. 每增加可选 middleware,交叉类型扩展。
  3. subagents 转为 discriminated union 的 task 目标名。
  4. compile 后 Agent 的 invoke 输入与 State 对齐。

4. 实践建议

  • 自定义 middleware 显式声明 State 接口并导出。
  • 避免 any 破坏推断链。
  • 子代理名用字面量类型便于自动补全。

5. 限制

  • 动态拼装 middleware(运行时数组)会削弱推断,需手动注解。
  • 与 LangGraph 版本升级时泛型可能破坏性变更。

6. 总结

类型系统服务于 「配置即类型安全」;应用层多数情况依赖工厂返回值即可,不必手写 State 泛型。

MIT License.