老金出海AI · GO GLOBAL
返回教程系列
DeepSeek Harness 架构:为什么「一切皆插件」不是海报
DeepSeek Harness进阶2026-08-13

DeepSeek Harness 架构:为什么「一切皆插件」不是海报

创作者:DeepSeek

用官方 architecture.md 把 profile、bundle、session log 和 turn/step 讲清。不复制包表,只讲你改行为时该挂哪里。

打开官方原教程
项目详情
提供方DeepSeek Harness
难度进阶
发布日期2026-08-13
官方来源DeepSeek Harness
主题#agents · #engineering · #open-source

先记一句话

官方架构文档的前提是:你知道 Cordis。不知道就先记它的作用——插件往共享上下文里注册服务、类型化事件和可逆副作用。没有一块不能换的核心:模型适配、工具注册表、会话日志、agent 循环都是插件。

profile 和 bundle

一次运行中的 dsh 是启动时组合出来的插件树。

  • profile:一套命名组合。自带模板是 webheadless。里面记它要叠哪些 bundle,以及你自己的 cordis.patch.yml
  • bundle:一层可打补丁的插件包。dsh-base 是每套 profile 的第一层(模型、工具、持久化、沙箱、凭证);dsh-web-app 加浏览器界面;dsh-headless 做一次性无服务端跑法。

叠加顺序是:各 bundle → profile 的 patch → home 级 patch → --patch。想看机器上真正启动的树:

sh dsh --profile web --dump-config

它打印的任一行都可以被你的 patch 换掉。

会话日志才是模型看到的东西

官方有一句硬规律:Model-visible means logged. 能进模型请求的东西,必须能从 session log 重建。Fork、续跑、转录、遥测都从这条流来。你要给模型看到新输入,就要加一条会话事件,不是在循环里偷塞一段文字。

turn 和 step

官方把一次模型请求加它调的工具叫 step;零个或多个 step 组成 turn。输入进一个 inbox。agent/pre-step 决定模型看到什么;监听器可以改写或拒绝。拒绝也会留一条耐久 turn,只是没花 step。

你要拦截请求、工具或 turn,挂 agent/*tools/* 事件,不要去改循环本体。

新行为挂哪

官方给了对照表。常用几条:

你想做挂哪
加模型厂商ctx.llm
加面向模型的能力ctx.tools,它的 schema 会进提示组装
加人类命令ctx.commands,不走模型 turn
加文件系统或策略ctx.fsfs/* 事件
限制进程ctx.sandbox

常见问题

dsh、profile、bundle 有什么区别?

dsh 是启动器。profile 是一套组合。bundle 是一层可打补丁的插件包。

为什么不要直接改 agent loop?

官方说新行为应挂在已文档的扩展点上。改循环本身要同步更新架构图。开发者预览阶段,贴核心循环会让你每次升级都要合并冲突。

官方来源:DeepSeek Harness architecture.md。本文只提炼决策导图,包名与事件表以仓库为准。
说明:本文是老金出海对官方教程的原创导读与工程化补充,不替代厂商文档。模型名称、SDK、价格、配额和安全政策请以官方链接为准。

📚 来源与延伸

本页内容基于以下权威来源整理,可验证、可引用。

引用规范:请注明来源为老金出海(laojinchuhai.com)并保留原文链接。

老金出品 · 用 AI 提效

AllModelsAPI一个 key,调多家大模型

AllModelsAPI 是多模型 API 中转站:一个 key 调多家模型,OpenAI 兼容接口,现有代码改个 base_url 就能迁。它不是演示品——我们自己的生产环境每天都在用。

更多老金产品:Sellenca · 365AIOrg · 365Loopa · 365 Ops · 365Skill

相关内容

按主题 / 人物 / 专区自动互通