Datawhale DeepSeek Harness 技术入门与架构原理 笔记4

Datawhale DeepSeek Harness 技术入门与架构原理 笔记4

Task4 合并版:拆解 DSH 的"一切皆插件"原则(下)


作业 A:概念地图

以 Harness 为中心,覆盖 11 个必含术语(Preset、Scope、Host Plane、Agent Plane、Tool Registry、Model Route、Tool Presentation、Cordis Kernel、Session、Trace、Composition),并标注 R1--R8 依赖/从属关系。所有标注均给出 Task2--4 的实测依据。

作业 B:短文《我理解的"一切皆插件"》

想象开连锁奶茶店:有的店卖全套饮品,有的店只做外卖打包,有的店是试新品的迷你档口。要是每家店都从头建一套厨房,光装修就得来好几遍。

做 AI 产品(Agent)也一样:写代码、批量处理数据、极简测试、让用户自己改 ------ 每种用法要的工具、提示词、规则都不一样。如果每种用法都单独造一套系统,就要同时维护 N 套 "长得差不多但又不完全一样" 的软件,又累又容易乱。

所以 DSH 的做法是:把 "不变的东西" 和 "会变的东西" 分开。

  • 不变:模型怎么接入、沙箱怎么隔离、运行记录怎么存 ------ 这些是地基,必须稳定。
  • 会变:工具清单、工具怎么呈现、上下文怎么处理、作用域(这个会话能用什么)------ 这些跟着需求走。

一个 Agent 最后表现成什么样 = 地基能力 + 底层规则 + 菜单(Preset 挂载)三层相加。同一套地基,换一张菜单,就能配出四种形态 ------ 我们实测模型能看到的工具数:standard 26 个、ptc 1 个(run_code,一个 "跑代码" 的入口)、minimal 1 个(pwsh,一个命令行工具)、cordis 34 个。做产品从 "改代码" 变成了 "改配置声明",成本一下子降下来。

有人会问:既然什么都是插件,系统不是散架了吗?不会 ------ 因为有一层不属于任何菜单的规则把 "怎么组合" 定死了(教材 3.8):

  1. 插件怎么装上去、怎么拆下来(挂载 / 卸载);
  2. 新插件怎么找到它依赖的旧插件(能力发现与依赖);
  3. 插件之间怎么传话(事件传递);
  4. 插件退出时怎么把资源收拾干净(资源清理)。

这四件事就是 "内核"(Cordis Kernel)的职责。就像乐高的凸点:它不决定拼什么造型,但没有它,任何造型都拼不稳。

实验也印证了:在 "创造模式" 会话里用 cordis_inspect_query 检查运行时,发现 193 条配置项和各种服务的状态,换哪张菜单都一样 ;代码注释还写着:会话的预设树是程序跑起来之后才创建的,不在装载器(Loader)的管辖里。菜单是营业时才定的,承重墙是建楼时就定死的------ 内核比菜单更底层、更稳定。

这和"多注册几个工具" 是不同的,后者只是往仓库里多放几件东西;而 "一切皆插件" 改的是整个使用体验的每一个环节:角色提示词(persona)、工具怎么呈现(tool-presentation)、上下文策略(compaction)、怎么组织执行(subagent /workflow),连网页界面上的每个面板都是插件。

最有力的证据来自 Task 3:PTC 模式没有增删任何真实能力,只把 "工具呈现方式" 换了个开关,模型看到的工具就从 26 个变成 1 个 run_code------仓库(Tool Registry)纹丝没动,能力照样能用。

所以组合的最小单位从来不是 "工具",而是 "切面"(体验的某个环节)。多注册几个工具,只是所有切面里最简单、最不用动脑的一种。正确的理解是:内核只留稳定的机制,具体能力全部交给插件和菜单去组合。

总结:① 做产品从改代码变改菜单;② 菜单营业时才定,承重墙建楼时就定死;③ 改的是体验的每个环节,不是多放几件工具。


实验记录(rc.2 实测)

实验 1:Runtime Inspection(创造模式的"观察"实证)
  1. 实验条件:在创造模式(cordis 预设)下,仅执行查询、不修改系统;
  2. 核心实测数据:一共查到 193 条 Config 配置项,包含两套插件清单;
  3. 核心论点:"禁用"≠"不可用";27 条被禁用项里,23 条只是把能力交给会话预设动态挂载,并没有彻底关闭功能。
实验 2:动态挂载实证(否定性结果,价值更大)

尝试下达指令:用cordis_mount装上临时工具echo_greeting,调用测试完成后再把它卸载。

Agent 做了三轮只读检查,全程没有改动系统:

  1. 当前这个创造模式会话一共 34 个可用工具,里面找不到cordis_mount,也没有cordis_define、cordis_run、cordis_stop、cordis_undefine这些增删插件的工具。
  2. 在系统已安装的官方软件包内检索cordis_mount,没有找到匹配内容。
  3. 查看cordis_inspect_query的功能说明,它明确规定:不能调用业务服务、不能修改运行时环境。

事实真相:这套版本本身自带动态插件机制,依靠cordis_define + cordis_run / cordis_stop / cordis_undefine实现,由dsh-cordis-host-runner提供底层支持,也叫 "模型挂载双半包"。但是 rc.2 的网页端创造模式预设,只给模型开放了查看信息的只读工具,没有开放修改系统的入口。

得出结论:教材 3.6 写cordis_mount可以在运行时挂载、卸载插件,但 rc.2 实际版本只开放 "观察" 功能,不允许修改系统。这是我们发现的第二处版本差异(第一处是 Task3:教材写mode:code,实际是mode:ptc),两处变化趋势相同:rc.2 把创造模式的权限限制,设置得比教材描述更严格。Agent 没有编造虚假的执行结果,如实告知本次实验无法完成;这件事本身,也证明 Agent 的输出是可信的。


作业 C:学习目标对照 + 自测作答

学习目标 5 条逐条对照

# 课程页学习目标 自评 依据
1 Creative 的"创造" = Agent 在授权范围内观察、修改 Runtime 本身 达成(含修正) exp1 实证"观察";exp2 修正:rc.2 未开放"修改"入口
2 Creative 为什么是高信任能力、风险边界在哪 达成 教材 3.6"信任边界而非安全沙箱";inspect 工具描述自带只读红线
3 用 4 套 Preset 反证"一切皆插件" 达成 Task2/3 数据 + B 短文第三节 + 自测第 4 题
4 "一切皆插件" ≠ 没有内核(Kernel 四职责) 达成 B 短文第二节 + exp1 旁证
5 前 3 章综合输出,为第 4 章写 Skill/Tool/Hook 做准备 部分达成 已梳理插件声明结构;动手写插件留待第 4 章

自测 4 题作答

Q1:cordis_mount 做了什么?为什么说 Creative 让 Runtime 本身成为可操作对象?

教材 3.6 里写:cordis_mount 可以运行 AI 写出的 TypeScript 代码,在**正在工作的 Runtime(运行环境)**里安装、卸载插件。也就是说,Agent 不光能调用工具,还能改动承载它自身的插件组合。

但我们在 rc.2 版本实测后发现:这个版本里根本没有cordis_mount这个工具名,全盘检索都找不到。真正用来动态增删插件的是cordis_define + cordis_run/stop/undefine这套接口,由 host-runner 提供底层支持,叫做动态双半包。

而且网页端的创造模式预设,只开放了只读查询工具cordis_inspect_*。

"Runtime 能被操作" 这句话的真正含义:插件组合不再是出厂就固定死的配置,而是 Agent 在会话里可以处理的工作内容。rc.2 底层已经做好了修改的底层机制,但只开放读取权限,修改的入口没有对外开放。

Q2:Cordis Kernel 负责哪些"不属于任何 Preset"的规则?

教材 3.8 把底层规则分成四条核心机制:①插件的安装与卸载;②插件能力怎么被发现、互相依赖;③消息事件怎么在插件之间传递;④插件停止运行时,如何自动清理占用的资源。

这四条是运行环境(Runtime)的底层基础规则。四种预设配置都不会改写这套规则,只会直接调用使用它。正是因为内核规则固定不变,插件才能自由增减、启停替换,整个系统始终稳定不乱。

我们的实验也印证了这一点:在四种不同预设下,巡检查到的配置状态、服务列表完全一致。而且会话里的预设组合,是程序运行之后临时生成的,不在系统初始加载目录之内。这足以说明:内核(Kernel)是更深层、更稳定的底层,预设只是上层可变的配置。

Q3:"DSH 就是微内核操作系统"的类比哪里对、哪里不对?

这个设计思路和微内核很像:内核只保留最核心的极简规则,具体功能全部做成插件,按需搭配使用。二者都认同:稳定的交互规则,远比堆很多功能更重要。

但二者不能直接划等号,有三处关键差别:

  1. DSH 不是计算机操作系统,它不管理硬件,没有进程、内存、硬件驱动这类底层硬件管理能力。
  2. 插件的有效期跟着单次对话(会话)走:每套预设在对话创建时加载好,之后就固定不变。不像操作系统服务,启动后就一直常驻后台。
  3. 教材本身也特意说明:它不是传统操作系统那种微内核,只是设计思路相近。

所以可以拿来类比方便理解,但不能认为它们完全是一回事。

Q4:Task 2 观察到的 4 套 Preset 差异,现在能用 Task 3/4 概念解释吗?

Preset Task2 实测 Task3/4 解释
standard 26 工具、5958 字符系统提示词 完整 Agent composition:Agent Plane 的默认切面
ptc 1 工具 run_code、28.9KB 系统 JSON 同一 Tool Registry + Tool Presentation(mode=ptc):呈现分离,能力不增不减
minimal 1 工具 pwsh、46 字符提示词、技能零注入 Preset 决定"组合哪些",也能决定"几乎不组合"(Scope 裁到最小)
cordis 34 工具(Task4 重测) 在 standard 之上多挂 Runtime 自观察插件;Creative 的差异是"多挂哪类插件",不是新物种

一句话总结:四套 Preset = 同一个 Kernel、同一个 Tool Registry 上的四个 Composition 切面(图 3-8)。

相关推荐
Mininglamp_27187 小时前
接口调用 vs 屏幕理解:两种 GUI 自动化架构的技术取舍
运维·架构·自动化
excel8 小时前
IndexNow:让搜索引擎更快发现网站更新的主动通知协议
前端·后端·架构
吴建旭 智宅焕8 小时前
智能家居交付边界的系统化设计:方案设计与合作公约的规则架构
架构·智能家居
Raymond16889 小时前
AI配音工具长文本合成架构技术解析:全局音色锚定与声学状态跟踪
人工智能·架构·实时互动·视觉检测·音视频·语音识别
林伽一10 小时前
推理链路与资本成本同时收紧,AI 工程进入算细账阶段|2026年10月21日
人工智能·科技·ai·架构
天远API10 小时前
零信任架构实战:基于天远运营商二要素V即时版构建自动化分时租赁出行会员身份一致性审核网关
运维·人工智能·架构·自动化
海边捡石子11 小时前
从零设计一个通用智能电话平台:FreeSWITCH + ESL + AI 实战架构
人工智能·架构·webrtc
这个DBA有点耶12 小时前
期货 CTP 系统 Oracle RAC 迁移国产库实战:读写分离架构设计与性能对标
数据库·架构·dba
果壳science12 小时前
张祥前实验如何获取正电荷
笔记·科技·嵌入式硬件·硬件工程·制造