第四幕 · 动手与资源 · 第 12 章
术语表与下一步
把十章的词收进一张表,再告诉你从哪里继续深入源码。
十章的词都收进这张表——下次跟人聊 dsh,你也可以一边点头一边蹦术语,假装资深专家了。 (放心,我们全程都用大白话解释,绝不让你露馅。)
术语速查表
(英文术语保留,中文为官方文档用词 / 本教程释义)
| 术语 | 一句话 | 章节 |
|---|---|---|
| Agent(智能体) | 会思考、会调用工具、有独立会话的执行体 | 01 |
| Harness(马具/框架) | 让模型能干活的那套装备:工具、记忆、执行环境 | 01 |
| Plugin(插件) | 功能积木:一段挂载代码,贡献服务/事件/副作用 | 02、03 |
| Context(上下文 ctx) | 服务的容器,服务按 ctx.<key> 查找 | 03 |
| inject | 声明依赖:等依赖服务就绪才启动插件 | 03 |
| Waterfall(瀑布式事件) | 接力棒语义:监听器 next() 委托或拍板短路 | 03 |
| Disposer(释放函数) | 每个注册的撤销凭证,卸载时自动清理 | 03 |
| Turn(轮次) | 排空一次已接纳输入的全过程 | 04 |
| Step(步骤) | 一次模型请求 + 其触发的工具执行 | 04 |
| Inbox(收件箱) | agent 的两列待处理消息队列(next-turn / next-step) | 04 |
| SessionEvent(会话事件) | 只追加日志里的类型化条目,13 种核心变体 | 05 |
| deriveMessages() | 从日志投影出模型历史的函数 | 05 |
| Seam(能力缝) | 接口 + 实现 + 使用方的完整可替换能力 | 06 |
| Provider(提供方) | seam 里的实现角色,可整体替换 | 06 |
| Consumer(使用方) | 注入并使用服务的插件,通常是面向模型的工具 | 06 |
| ToolSchema / execute | 工具的说明书 / 干活的手 | 07 |
| Guard(单调守卫) | 只能收窄权限、无法撤销的终审 | 07 |
| Approval(审批) | ask → allowed-once 的一次性人类放行 | 07 |
| Spill(溢出) | 结果太大时落盘,模型只见预览 + 取回指引 | 07 |
| Scope(作用域) | 按 agent 划分的注册单位,最具体者胜出 | 08 |
| Shadowing(遮蔽) | 内层同名注册遮住外层,只影响本 agent | 08 |
| Preset | 一份 agent.cordis.yml,常驻挂载按会话组装能力 | 08 |
| Subagent(子代理) | 独立上下文的委派对象,可一次或可延续 | 09 |
| Workflow(工作流) | 模型编写的 JS 编排脚本,大规模扇出子代理 | 09 |
| Job(后台任务) | 后台运行的工作,job_list/output/kill 管理 | 09 |
| Skill(技能) | 复用型指令(SOP),注入提示词而非动作 | 09 |
| Goal Round | 目标策略的一次续行周期,具体化为一个轮次 | 09 |
| Profile | 具名组装方案:决定叠放哪些组合包 | 02、10 |
| Bundle(组合包) | 带拼装说明书的 npm 包(dsh.bundle.patch) | 02、10 |
| Patch(补丁层) | 贴纸图层:insert 加行 / 按 id 整块替换 config | 02、10 |
一页源码地图
(对照仓库 README.md 里的布局,带你认路)
| 目录 | 是什么 |
|---|---|
vendor/ | vendor 引入的 Cordis 源码(插件框架本体) |
packages/core/ | 产品主干:session、system-prompt、tools、agent、agent-loop、scope |
packages/llm/ | 模型能力:Service Definition + DeepSeek 提供方 |
packages/shell/、fs/、web/、subprocess/、terminal/ | 能力缝与提供方:bash、文件、网页、进程、PTY |
packages/subagent/、workflow/、jobs/、skill/ | 委派与扩展能力 |
packages/session/ | 会话持久化、投影、标题、遥测 |
packages/bundle/ | dsh-base / web-app / headless 三个官方组合包 |
packages/boot/ | 启动组装(profile 机制) |
apps/ | CLI 等应用入口 |
examples/ | 可运行的 cordis.yml 示例(headless-agent、web-cordis……) |
docs/ | 架构、子系统、术语表、cookbook(中英双语) |
.agents/notes/ | Agent Notes:每个设计决策的「为什么」 |
官方资源
- 源码与发布:github.com/deepseek-ai/deepseek-harness
- 文档(中英双语):仓库
docs/,入口docs/architecture.md、docs/glossary.md、docs/cordis-primer.md - 反馈与讨论:GitHub Discussions
- 插件生态:给插件仓库加 dsh-plugin 话题
进阶路线(按顺序)
- 读架构:
docs/architecture.md—— 你已经有本教程的底子,这次能看懂 90%; - 查子系统:
docs/subsystems/—— 每个子系统一页,类型定义 + 语义; - 写插件:
docs/cookbook/—— adding-a-tool / adding-a-package / adding-an-llm-adapter 分步指南; - 跑示例:
examples/—— 把 headless-agent、web-cordis 都跑一遍; - 追决策:
.agents/notes/implemented/—— 每个「为什么这么设计」都有答案; - 贡献代码:读
CONTRIBUTING.md和docs/development.md,跑pnpm run test等门禁。
🎓结业:费曼学习法走完四步了吗?
① 选概念 ✅(十章主题)→ ② 用大白话讲 ✅(类比 + 图解)→ ③ 自己复述 ✅(每章费曼自查) → ④ 查漏补缺 ✅(第 11 章动手)。现在,找一个完全没读过本教程的朋友, 把 dsh 讲给他听 —— 讲得通,才算真的懂。祝你玩得开心!