这是《DeepSeek Harness 架构拆解》系列第一篇。
这一篇暂时不按源码目录逐包讲解,而是先建立一张贯穿整个系列的系统地图:系统如何分层,插件如何组合,一条用户消息如何经过 Agent、LLM 和 Tool,Session 如何保存运行事实,Web 客户端如何获得实时状态,以及新增能力应该从哪个扩展点接入。
视频会回答六个问题:
DeepSeek Harness 的整体分层、插件化组织方式和主要交付形态。重点区分入口、Composition、Agent Runtime、Capability、Session/Event Data 与 Client,并说明 Web、Headless、ACP、SDK 如何共享同一个运行核心。
Cordis 微内核、Capability Seam、Bundle 与 Profile 的组合关系。Cordis 管理插件生命周期与依赖;Capability Seam 拆开服务定义、服务提供者和消费者;Bundle 负责能力组合;Profile 决定实例最终加载哪套产品配置。
一条用户消息的主要运行流程。消息进入 Agent Inbox 后,由 Agent Loop 推动 Turn / Step;LLM 返回文本或工具调用;Tool 经过参数解析、策略检查和实际执行后,把结果送回下一步;关键运行事实同时进入 Session。
事件日志、模型历史重建、工具策略链和多智能体编排的设计。模型可见信息必须能够从 Session Event Log 重建;工具治理跟随真实副作用路径;Subagent 与 Workflow 通过能力和工具接入,而不是把特例塞进 Agent Loop。
Web Host/Client、RPC、Projection 与插件化 UI 如何组成完整产品。Host 持有运行时,RPC 承载命令和事件,Projection 把事件转换成可读取状态,UI 插件负责最终呈现和交互。
新能力应该放在哪一层、通过什么扩展点接入。视频最后给出一套判断顺序,帮助你在 Plugin、Provider、Consumer、Bundle、Projection、UI 与 Policy 之间做选择。
这期的目标不是记住所有包名,而是建立三种判断能力:看见一个模块时知道它属于哪一层;看见一条事件时知道它为什么需要持久化;准备增加能力时知道应该接入哪个扩展点。