内容提要
DSH与Pi是两种相反的Agent框架设计:DSH基于Cordis插件系统,支持动态装卸组件,强调可逆副作用和自修改能力;Pi则极简,仅保留核心循环和四个工具,依赖扩展。两者分别解决长任务恢复和结构重组,但验证机制仍缺失,需证明自进化真正有效。
延伸解读
设计哲学的对立:最小内核 vs 完整平台
Pi 采用激进极简主义,核心仅保留四个工具和一条短系统提示词,其余功能通过扩展添加;DSH 则基于 Cordis 插件系统,默认搭载 159 个插件,所有组件包括主循环都可替换。这种差异类似于 Vim 与 Emacs 的对比:Pi 提供最小内核让用户自行构建,DSH 提供完整平台供用户任意拼装。选择哪种取决于你是偏好轻量可控还是开箱即用。
可逆副作用:DSH 动态修改的关键
Cordis 插件系统的核心特点是可逆副作用:每个副作用都返回逆操作,卸载时按 LIFO 顺序清理。这支撑了 DSH 的“创造模式”,允许 Agent 动态挂载或卸载临时插件,实现自修改。相比之下,Pi 的扩展不支持卸载,加载顺序即优先级。因此,DSH 适合需要动态调整的场景,而 Pi 更适合稳定不变的执行环境。
长任务处理:事件溯源 vs 可恢复状态机
DSH 通过只追加的会话日志实现事件溯源,浏览器作为瘦客户端渲染轨迹,支持恢复、分叉和检索;Pi 则通过记录执行意图和结果,使 Agent 成为可恢复的持久运行时,崩溃后能安全重跑。两者都解决长任务问题,但 DSH 偏重事后复盘,Pi 偏重事前留痕。实际效果取决于具体需求:需要审计和回放选 DSH,需要崩溃恢复选 Pi。
缓存命中率与成本:工作流匹配是关键
DeepSeek 的前缀缓存命中率取决于提示词前缀的稳定性,并非架构决定。有开发者用 Pi 调用 DeepSeek V4 Flash,处理近 10 亿 Token,缓存命中率达 99.93%,成本仅 2.65 美元。这说明缓存效率是工作流与模型特性匹配的结果。DSH 的事件溯源设计为缓存复用提供基础,但不保证每次命中。因此,选择框架时需考虑其与模型工作流的契合度。
Q&A
DeepSeek Harness和Pi在架构设计上有什么根本区别?
DeepSeek Harness(DSH)采用插件派设计,基于Cordis插件系统,所有组件包括驱动循环本身都可替换,支持动态装卸;Pi则采用极简派设计,只保留核心循环和四个基础工具(read、write、edit、bash),其余功能通过扩展系统添加。
Cordis插件系统的可逆副作用机制是如何工作的?
Cordis将副作用表示为e : Γ → Γ × (Γ → Γ),即副作用改变上下文时返回一个逆操作。加载时按顺序注册,卸载时按逆序清理,工程上通过LIFO清理栈实现,确保插件卸载后不留残留。
DSH的创造模式是什么?它如何支持自修改?
DSH的创造模式允许Agent检查当前运行时插件树,动态挂载或卸载临时插件。临时插件只存在于内存,不写文件,重启即消失。通过Cordis的Context和Effect机制,确保动态插件有确定的清理路径,避免残留。
Pi如何解决长任务恢复问题?
Pi通过Harness V3规范将Agent设计为可恢复的持久运行时。在模型请求和工具调用前记录执行意图,完成后写入结果和状态。崩溃后系统可判断任务停在哪一步,哪些操作可安全重跑,哪些有副作用不能重执行,从而延续执行状态。
DSH和Pi在长任务处理上有什么不同?
DSH使用只追加的会话日志,浏览器作为事件流瘦客户端,从日志渲染轨迹,支持恢复、分叉、检索和回放;Pi则通过可恢复的持久运行时,记录执行意图和结果,崩溃后恢复状态。一个偏重事后复盘,一个偏重事前留痕。
DeepSeek的prefix cache命中率为什么不能保证100%?
前缀缓存命中率取决于提示词前缀的稳定性,而提示词前缀受系统提示词、工具定义、会话历史组合方式影响。DSH的事件溯源设计使历史派生确定,为缓存复用提供基础,但不保证每次命中。有帖子提到的100%命中率是特定运行结果,非普遍保证。
Pi与DeepSeek模型配合的缓存效果如何?
有开发者用Pi调用DeepSeek V4 Flash处理近10亿输入Token,缓存命中率达99.93%,成本仅2.65美元。Pi完成一次成功任务的平均成本约0.028美元。Pi的工作流设计天然匹配DeepSeek V4的前缀缓存机制。
插件增多对Agent系统有什么影响?
插件增多会改进任务能力,但也会增加提示词Token、工具模式、事件处理和额外步骤,增加认知负担和执行成本。DSH默认搭载159个插件,每个都贡献能力也增加成本;Pi的第三方插件质量参差不齐,维护成本上升。
DSH的benchmark机制(dsh-eval)目前处于什么状态?
dsh-eval提供在headless dsh profile上运行Agent评估的能力,但runner是当前唯一消费者,report模块负责持久化和渲染。社区已有插件实现benchmark驱动的验证循环,但概念演示是零代码级执行,验证仍是prompt层面的约定,将验证从prompt搬到代码是下一步要解决的难题。
为什么说验证机制是自进化Agent的关键缺失?
自进化Agent可以长期运行和修改自己,但如果连“进步”的定义都能被改掉,它可能优化到只通过自己出的考题。验证器、追踪器和安全边界应位于自修改循环之外。目前Pi解决了跑得久,DSH解决了改得动,但第三块拼图——测得准——仍缺失,决定进化是否真正有效。