CORDISDSH 的心脏附录 · 术语表全书目录术语表读论文原文 ↗
附录 · 术语表

术语表

全书出现的词,一句话一个,按它第一次被讲透的章节排。正文里带虚线下划线的词,指上去也能看到同样的解释。

约 3 分钟 · 上一章 10 边界

01 由来

Agent harnessagent harness
包在 AI 模型外面的那层骨架:装工具、管权限和沙箱、记会话。可以理解成 AI 用的工具箱加操作系统。
dshdeepseek-harness
DeepSeek 2026 年 8 月开源的 agent harness,口号「一切皆插件」。
Cordis
论文的开源实现,一个 TypeScript 元框架。Koishi 和 dsh 都建在它上面。
Koishi
2019 年开源的跨平台聊天机器人框架。Cordis 就是从它的内核里拆出来的。

04 思想一 · 回执

效应effect
程序对外部世界留下的改动。开端口、注册命令、挂一个定时任务,都算。
撤销办法inverse
每个效应执行时当场交出的一个函数,调用它就能把这件事撤回去。由运行时保管,不靠作者记得。
回执串accumulator
运行时把一个组件的所有撤销办法按顺序串成一个总函数。卸载时调用一次,从最后一张倒着全部执行。论文叫它累加器。

05 思想二 · 插座

反效应coeffect
效应的镜像。效应说「我对世界做了什么」,反效应说「世界得先给我什么」。说白了就是依赖清单。
响应式reactive
依赖是活的。环境每变一次,运行时拿每份依赖清单对照:从缺到齐就激活,从齐到缺就停用,其余不理。
依赖声明inject
Cordis 里组件声明依赖的写法,比如 inject: ['database']。依赖没就绪,组件就不启动,也不报错。
永不复用的编号uid
每个提供者上岗时领一个新编号,用过不再发。系统认编号不认内容:换了人,哪怕给的东西一样,下游也要重新接。
隔离isolate
同一个名字,在不同的子环境里各指向一份私有的值。多租户、测试、多 agent 都靠它分开。
拦截intercept
在「读依赖」这个动作外面叠一层规则,比如限流、审计。双方代码都不用改,改规则也不用重启。

06 思想三 · 一扇门

语境context
全系统共用的一本总账:当前状态、所有撤销办法、所有依赖登记都在上面。组件和环境的每一次交互都要经过它。
键key
语境里一个带名字的格子,配一组合法操作,比如 database、tools。组件只能通过这些操作碰格子里的东西。
观察等价observational equivalence
两个状态算「一样」,指用任何合法操作去试都看不出区别。不要求逐字节相同。
可交换commutative
两个操作谁先谁后,结果看不出区别。可交换的操作可以随便乱序,也能各自单独撤销。

07 思想四 · 一生

组件component
一份岗位说明书:我需要什么、我提供什么、我上岗后做什么。Koishi 和 dsh 里叫插件。
fiber
组件的一次具体上岗。说明书是职位,fiber 是某天入职的那个人,随身带着自己的回执串。
生命周期lifecycle
组件从装上到拆下的固定阶段:空闲、激活中、在岗、停用中。怎么流转由规则决定,不由人手动推。
汇聚confluence
不管中间怎么装了拆、拆了装,系统停下来的状态只由最终配置决定,和过程无关。
热重载HMR
改了源码不重启,原地换掉对应的组件。Cordis 的做法是拆掉旧的、装上新的,失败就整体回滚。
声明式配置declarative config
你只写「系统应该长什么样」,加载器负责把现实改成那样,而且只动有差别的那几处。

08 思想五 · 落地

能力接缝capability seam
dsh 的说法:一个能力 = 接口 + 提供者 + 消费者。接口不变,提供者随便换,消费者整体跟着走。

10 边界

系统边界system boundary
系统能独占修改、也能还原的地方在界内。写出去的文件、发出去的网络包在界外,撤不回来。