<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>架构分析 on AI博士 万戈</title>
        <link>https://www.yesmiracle.net/tags/%E6%9E%B6%E6%9E%84%E5%88%86%E6%9E%90/</link>
        <description>AI博士万戈的技术博客，聚焦 Agentic AI、AI Infra 与 Agent Security，分享 AI 基础设施与工程落地实践。</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <managingEditor>admin@yesmiracle.net (万戈)</managingEditor>
        <webMaster>admin@yesmiracle.net (万戈)</webMaster>
        <lastBuildDate>Wed, 02 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.yesmiracle.net/tags/%E6%9E%B6%E6%9E%84%E5%88%86%E6%9E%90/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>DeepSeek Harness 深度源码解析：当「万物皆插件」遇上形式化理论！</title>
        <link>https://www.yesmiracle.net/post/20260902-deepseek-harness-plugin-architecture/</link>
        <pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate>
        <author>admin@yesmiracle.net (万戈)</author>
        <guid>https://www.yesmiracle.net/post/20260902-deepseek-harness-plugin-architecture/</guid>
        <description>&lt;img src="https://www.yesmiracle.net/post/20260902-deepseek-harness-plugin-architecture/cover.svg" alt="Featured image of post DeepSeek Harness 深度源码解析：当「万物皆插件」遇上形式化理论！" /&gt;&lt;h2 id=&#34;引言破纪录的-agent-运行时&#34;&gt;引言：破纪录的 Agent 运行时&lt;/h2&gt;
&lt;p&gt;2026 年 8 月 13 日，DeepSeek AI 做了一件它从未做过的事——开源了不是模型，而是模型周围的基建。&lt;strong&gt;DeepSeek Harness&lt;/strong&gt;（CLI 名 &lt;code&gt;dsh&lt;/code&gt;）以 MIT 许可证发布，两天内收割 95,000 星，四天内突破 140,000，刷新了 GitHub 星数增长速度的历史纪录。截至今天，该仓库拥有 &lt;strong&gt;208,000 颗星&lt;/strong&gt;和 &lt;strong&gt;24,200 个 Fork&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;为什么一个 Agent 运行时框架能引起如此大的轰动？答案藏在它的副标题里：&lt;strong&gt;「Everything is a Plugin」&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;这&lt;strong&gt;不是&lt;/strong&gt;一个营销口号。DeepSeek Harness 背后有一套完整的、拥有形式化证明的插件理论——Cordis。这篇文章将从源码架构的视角，拆解这个系统究竟做了什么，以及它为什么可能改变 Agent 基建的格局。&lt;/p&gt;
&lt;h2 id=&#34;什么是-agent-harness为什么需要它&#34;&gt;什么是 Agent Harness？为什么需要它？&lt;/h2&gt;
&lt;p&gt;在讨论 DeepSeek Harness 之前，先厘清一个关键区别：&lt;strong&gt;Agent Harness ≠ Agent Framework&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Agent Framework&lt;/strong&gt;（如 LangChain、CrewAI）提供编排原语——链、路由、多 Agent 拓扑，偏重组织逻辑。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent Harness&lt;/strong&gt; 提供运行时——模型适配、工具注册、会话管理、权限策略、沙箱、持久化。它负责让 Agent 活着并安全地与世界交互。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DeepSeek Harness 属于后者。它是将 LLM 连接到真实世界的中间层：文件系统、终端、网络、编辑器、数据库，以及权限边界。它的设计目标是忽&lt;strong&gt;可替换、可组合、可热插拔&lt;/strong&gt;，而这一切的基础是&lt;strong&gt;Cordis&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;我们此前拆解过 &lt;a class=&#34;link&#34; href=&#34;https://www.yesmiracle.net/post/20260826-lasso-mcp-gateway-analysis/&#34; &gt;Lasso MCP Gateway 的三层插件体系&lt;/a&gt;，也深入过 &lt;a class=&#34;link&#34; href=&#34;https://www.yesmiracle.net/post/20260831-agentsight-ebpf-observability/&#34; &gt;AgentSight 的 eBPF 观测框架&lt;/a&gt;，但 DeepSeek Harness 的插件体系的野心比所有这些都大一个量级——它不是在一个产品的某个层面做插件化，而是&lt;strong&gt;整个运行时本身就是插件组合的结果&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id=&#34;cordis藏在-agent-底下的形式化插件理论&#34;&gt;Cordis：藏在 Agent 底下的形式化插件理论&lt;/h2&gt;
&lt;p&gt;理解 DeepSeek Harness 的关键在于理解 &lt;strong&gt;Cordis&lt;/strong&gt;。这不是一个临时搭起来的插件管理器——它是一个有独立 GitHub 仓库、有多年生产验证、有 arXiv 论文的元框架。&lt;/p&gt;
&lt;h3 id=&#34;论文背景&#34;&gt;论文背景&lt;/h3&gt;
&lt;p&gt;Cordis 的设计文档是《&lt;strong&gt;A Programming Paradigm for Spatiotemporal Composability&lt;/strong&gt;》（arXiv:2608.25512），88 页，由三位作者联合署名：&lt;strong&gt;Shi Yifan&lt;/strong&gt;（北京大学 &amp;amp; DeepSeek-AI）、&lt;strong&gt;Wei Zhang&lt;/strong&gt;（北京大学）、&lt;strong&gt;Tianyi Cui&lt;/strong&gt;（DeepSeek-AI）。&lt;/p&gt;
&lt;p&gt;这是一篇&lt;strong&gt;编程语言论文&lt;/strong&gt;，产自 AI 实验室内部。它回答的问题非常底层：&lt;strong&gt;如何组合一个运行时还在变化（动态组装）的软件系统？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;论文证明了五个定理，涵盖效应复合的可交换性、卸载的原子性、依赖图的循环死锁避免等。&lt;strong&gt;这是 Agent 领域罕见的、拥有形式化证明的基建层工作。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;时空分离effect--coeffect&#34;&gt;时空分离：Effect + Coeffect&lt;/h3&gt;
&lt;p&gt;论文将动态组合拆解为两个正交维度：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;时间维度：可逆效应（Revertible Effects）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;插件加载时做的一切——注册命令、挂载事件、打开连接——都是对共享上下文（Context）的&lt;strong&gt;效应（Effect）&lt;/strong&gt;。Cordis 要求每个效应携带自己的逆操作。当插件卸载时，运行时会自动执行逆操作链，回滚所有效应。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;没有残留的监听器，没有悬挂的连接，没有幽灵命令。&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;回滚不再依赖手写的 &lt;code&gt;cleanup()&lt;/code&gt; 函数，而是成为运行时语义的一部分。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;空间维度：反应式共效应（Reactive Coeffects）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果说 Effect 是插件对系统做了什么，那么 Coeffect 是&lt;strong&gt;插件需要系统提供什么&lt;/strong&gt;——数据库、模型、服务。Cordis 允许插件声明这些依赖，运行时管理生命周期：依赖未就绪时&lt;strong&gt;不激活&lt;/strong&gt;，依赖变化时&lt;strong&gt;自动停用或重构&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;论文的核心理念是将两者统一到同一个上下文机制中，使得 Effects 和 Coeffects 被同一套引擎追踪。&lt;/p&gt;
&lt;h3 id=&#34;cordis-在生产中的实践&#34;&gt;Cordis 在生产中的实践&lt;/h3&gt;
&lt;p&gt;Cordis 并非为 DeepSeek Harness 而生。它是一个独立项目，在 Agent 领域之外已有多年生产经验。DeepSeek Harness 将其作为依赖引入，在其之上构建了完整的 Agent 运行时。&lt;/p&gt;
&lt;p&gt;Cordis 的核心 API 包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Context&lt;/strong&gt; — 共享上下文，所有插件注册的载体&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Events&lt;/strong&gt; — 类型化事件系统，插件间通信的管道&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Service&lt;/strong&gt; — 服务声明与发现机制&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fiber&lt;/strong&gt; — 轻量级执行单元，管理异步生命周期&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plugin Registry&lt;/strong&gt; — 插件注册表，管理安装、激活、卸载&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;架构详解从-profile-到-bundle-到-subsystem&#34;&gt;架构详解：从 Profile 到 Bundle 到 Subsystem&lt;/h2&gt;
&lt;h3 id=&#34;profiles-与-bundles&#34;&gt;Profiles 与 Bundles&lt;/h3&gt;
&lt;p&gt;DSH 的启动是一个&lt;strong&gt;插件树&lt;/strong&gt;的组装过程。结构如下：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[空配置层 []]
  → Bundle 1（dsh-base）
  → Bundle 2（dsh-web-app / dsh-headless / dsh-sdk-app / dsh-acp-app）
  → cordis.patch.yml（用户级配置覆盖）
  → --patch（运行时 overlay）
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;每个 &lt;strong&gt;Profile&lt;/strong&gt; 是一个命名的组合配置。DSH 预置了 5 个 Profile 模板：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Profile&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
          &lt;th&gt;启动命令&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;web&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;全功能 Web UI，默认端口 3080&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;npx @deepseek-ai/dsh web&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;headless&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;无服务器单次运行器&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;dsh --profile headless&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;sdk&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;JSON-RPC 服务模式&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;dsh --profile sdk&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;sdk-minimal&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;最小化 SDK（不使用 dsh-base）&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;dsh --profile sdk-minimal&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;acp&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;自动化 ACP 服务器&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;dsh --profile acp&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;每个 &lt;strong&gt;Bundle&lt;/strong&gt; 是 Cordis 配置行 + 对应代码的发布格式。&lt;code&gt;dsh-base&lt;/code&gt; 是所有核心 Profile 共享的第一层：模型适配器、工具、持久化、沙箱、审批策略、设置、凭据、遥测。&lt;/p&gt;
&lt;p&gt;查看当前机器启动的完整插件树：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dsh --profile web --dump-config
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输出的每一行都可以通过你自己写的 patch 替换。这是整个系统的核心哲学——&lt;strong&gt;没有特权核心&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;核心子系统一览&#34;&gt;核心子系统一览&lt;/h3&gt;
&lt;p&gt;DSH 采用 Monorepo 结构，核心包划分清晰：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;core/session&lt;/strong&gt; — 仅追加（append-only）的 SessionEvent 日志 + 内存存储&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;core/system-prompt&lt;/strong&gt; — Prompt 段组装 + 工具 Schema 组合&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;core/tools&lt;/strong&gt; — 带作用域的工具注册 + 守卫执行管道&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;core/agent&lt;/strong&gt; — Agent 接口、实时注册表、&lt;code&gt;agent/*&lt;/code&gt; 事件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;core/agent-loop&lt;/strong&gt; — 默认的 Agent 驱动实现&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;llm/llm&lt;/strong&gt; — 消息/流词汇表 + 适配器层接口&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;webhook/webhook&lt;/strong&gt; — 认证投递调度 + Workspace Session 创建&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每个核心子系统对应一个 &lt;code&gt;ctx&lt;/code&gt; 键，实现了完整的依赖注入和生命周期管理。&lt;/p&gt;
&lt;h3 id=&#34;turn-flowstep-与-turn-的精确划分&#34;&gt;Turn Flow：Step 与 Turn 的精确划分&lt;/h3&gt;
&lt;p&gt;DSH 在 Agent 执行模型上做出了一个重要的区分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step（步骤）&lt;/strong&gt; — 一次模型请求 + 该请求调用的工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Turn（轮次）&lt;/strong&gt; — 零次或多次 Step，从接收输入开始，到没有欠任何响应时结束&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;执行流如下：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;turn/start
  认领输入
  组装 Prompt + 工具 Schema
  → agent/pre-step
    step/start
    追加用户消息
    推导模型历史
    agent/request → llm/stream → assistant/chunk* → assistant/message
    tool/call* → tools/pre-execute → tools/execute → tools/post-execute
    step/end
    （工具要求继续 或 新输入到达 → 下一个 step）
  → agent/turn-stopping
turn/end
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;关键设计点：&lt;code&gt;turn/*&lt;/code&gt;、&lt;code&gt;step/*&lt;/code&gt;、&lt;code&gt;assistant/*&lt;/code&gt;、&lt;code&gt;tool/*&lt;/code&gt; 是&lt;strong&gt;持久化会话事件&lt;/strong&gt;，记录在仅追加日志中。&lt;code&gt;agent/pre-step&lt;/code&gt;、&lt;code&gt;agent/request&lt;/code&gt; 等是&lt;strong&gt;实时扩展点&lt;/strong&gt;，采用瀑布式调用（listener 必须调用 &lt;code&gt;next()&lt;/code&gt; 才能继续传递）。&lt;code&gt;agent/turn-stopping&lt;/code&gt; 是串行的且没有 &lt;code&gt;next()&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;会话日志模型可见即日志&#34;&gt;会话日志：模型可见即日志&lt;/h3&gt;
&lt;p&gt;DSH 有一条严格的不变式：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;模型看到的任何内容，必须可从会话日志中重建。&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;deriveMessages()&lt;/code&gt; 从日志投影出模型历史。原始 &lt;code&gt;assistant/chunk&lt;/code&gt; 事件保留回放和 UI 保真度。Fork、恢复、转录、遥测、持久化都从这条流推导。&lt;/p&gt;
&lt;p&gt;这意味着：如果需要添加一个新的模型可见的输入，就必须扩展 &lt;code&gt;SessionEventMap&lt;/code&gt; 并实现从日志渲染的逻辑。&lt;strong&gt;没有悄悄绕过日志的路径。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;capability-seams可替换能力的三层结构&#34;&gt;Capability Seams：可替换能力的三层结构&lt;/h3&gt;
&lt;p&gt;DSH 定义了 &lt;strong&gt;Capability Seam（能力缝）&lt;/strong&gt; 的概念——可替换的能力单元，由三个角色组成：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Service Definition&lt;/strong&gt; — 声明接口&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Service Provider&lt;/strong&gt; — 实现接口&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consumer&lt;/strong&gt; — 使用接口（通常是模型面的工具）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一个包可能组合多个角色，但单一角色本身不是 Seam。真正的替换需要设计全部三个角色。&lt;/p&gt;
&lt;p&gt;这就是为什么切换一个 Provider 就能改变整个产品的行为。Filesystem 和 Subprocess Provider 共享同一个执行世界——将它们指向远程沙箱，Bash、PTY、LSP 都会被一起迁移，不需要为每个单独创建分支。&lt;/p&gt;
&lt;p&gt;Capability Seam 的设计思想与 MCPZERO 中的 Provider 抽象有异曲同工之处——都通过接口层将底层实现与上层策略解耦，使得安全策略的替换不需要修改工具调用本身。&lt;/p&gt;
&lt;h3 id=&#34;事件即扩展点&#34;&gt;事件即扩展点&lt;/h3&gt;
&lt;p&gt;DSH 的事件系统分为三个领域：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Session 事件&lt;/strong&gt; — 持久化事实，追加到日志并通过 &lt;code&gt;session/event&lt;/code&gt; 广播&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent 事件&lt;/strong&gt;（&lt;code&gt;agent/*&lt;/code&gt;）— 携带实时 Agent Handle，用于观察或拦截飞行中的工作&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;能力事件&lt;/strong&gt; — 在 seam 上挂载策略和适配器（&lt;code&gt;fs/*&lt;/code&gt;、&lt;code&gt;tools/*&lt;/code&gt;、&lt;code&gt;telemetry/*&lt;/code&gt;），不侵入 Loop&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;四种运行模式&#34;&gt;四种运行模式&lt;/h3&gt;
&lt;p&gt;DSH 支持四种运行模式，覆盖从开发者个人工具到 CI/CD 管道的各种场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Web UI&lt;/strong&gt;（&lt;code&gt;dsh web&lt;/code&gt;）— 全功能浏览器界面，默认端口 3080&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Headless&lt;/strong&gt;（&lt;code&gt;dsh --profile headless&lt;/code&gt;）— 单次运行，无服务器进程&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SDK&lt;/strong&gt;（&lt;code&gt;dsh --profile sdk&lt;/code&gt;）— JSON-RPC 服务模式，支持 Python SDK&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ACP&lt;/strong&gt;（&lt;code&gt;dsh --profile acp&lt;/code&gt;）— 自动化协议服务器模式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;同一套代码，同一个 CLI，支撑从开发者本地调试到 CI/CD 自动化到多 Agent 分布式系统的各种用例。&lt;/p&gt;
&lt;h2 id=&#34;横向对比与同类系统的差异&#34;&gt;横向对比：与同类系统的差异&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;维度&lt;/th&gt;
          &lt;th&gt;LangChain&lt;/th&gt;
          &lt;th&gt;Anthropic MCP&lt;/th&gt;
          &lt;th&gt;DeepSeek Harness&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;核心范式&lt;/td&gt;
          &lt;td&gt;链式编排&lt;/td&gt;
          &lt;td&gt;工具发现协议&lt;/td&gt;
          &lt;td&gt;插件化运行时&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;热插拔&lt;/td&gt;
          &lt;td&gt;ẑ 需重启&lt;/td&gt;
          &lt;td&gt;N/A（协议层）&lt;/td&gt;
          &lt;td&gt;✅ 实时重载&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;形式化基础&lt;/td&gt;
          &lt;td&gt;❌&lt;/td&gt;
          &lt;td&gt;❌&lt;/td&gt;
          &lt;td&gt;✅ Cordis 定理&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;会话日志&lt;/td&gt;
          &lt;td&gt;可变&lt;/td&gt;
          &lt;td&gt;可变&lt;/td&gt;
          &lt;td&gt;✅ 仅追加（append-only）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;能力替换方式&lt;/td&gt;
          &lt;td&gt;复写类&lt;/td&gt;
          &lt;td&gt;切换 Server&lt;/td&gt;
          &lt;td&gt;✅ Patch 配置层&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;运行时安全&lt;/td&gt;
          &lt;td&gt;依赖外部&lt;/td&gt;
          &lt;td&gt;依赖 Host&lt;/td&gt;
          &lt;td&gt;✅ 内置沙箱 + 审批策略&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;DSH 与其说是一个框架，不如说是一个 &lt;strong&gt;Agent 操作系统内核&lt;/strong&gt;——它不规定你怎么写 Agent 的业务逻辑，而是提供了装载、运行、监控、替换这些逻辑的运行时基础设施。&lt;/p&gt;
&lt;h2 id=&#34;从源码看设计哲学&#34;&gt;从源码看设计哲学&lt;/h2&gt;
&lt;p&gt;深入源码 &lt;code&gt;docs/architecture.md&lt;/code&gt;，可以感受到 DSH 的设计文档写得极其严谨。整个架构文档被组织为 40+ 个子系统和参考文件，每处事件接口、每个 seam 定义都有精确的说明。对比很多开源项目「README 即一切」的做法，DSH 的文档质量本身就是一种工程信号。&lt;/p&gt;
&lt;p&gt;几个让我印象深刻的源码设计细节：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;app-boot&lt;/code&gt; 的 Profile 组装逻辑&lt;/strong&gt; — 代码清晰地展示了空配置列表如何被各层 bundle patch 逐步充实。每个 patch 定位到具体 row 的 id，不是模糊的「加载顺序」。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;session-projection&lt;/code&gt; 的设计&lt;/strong&gt; — 这是一个「必选 seam」。想读取会话状态的人必须注册这个服务，不存在「悄悄跳过」的路径。这种强制执行在 Agent 框架中极为罕见。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;dsh-sdk-minimal&lt;/code&gt; 的独立性&lt;/strong&gt; — 它故意不继承 &lt;code&gt;dsh-base&lt;/code&gt;，实现了完全独立的 SDK 插件树。这展示了 Cordis 插件模型的可组合性极限——你可以构建自己的 bundle stack 而不依赖任何预置层。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;局限与风险&#34;&gt;局限与风险&lt;/h2&gt;
&lt;p&gt;客观来看，DSH 仍是 &lt;strong&gt;Developer Preview&lt;/strong&gt; 阶段，README 明确标注了「&lt;strong&gt;THERE WILL BE COMPATIBILITY-BREAKING CHANGES&lt;/strong&gt;」：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Node.js 生态依赖&lt;/strong&gt; — 整个系统基于 pnpm/Monorepo，Python SDK 通过包装器调用底层 CLI。对于 Python-first 团队，这不是原生体验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;学习曲线陡峭&lt;/strong&gt; — Cordis 的时空组合模型不是主流编程范式。开发者需要理解 Effect/Coeffect、Fiber、Patch 层等概念才能有效扩展。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文档仍在建设中&lt;/strong&gt; — 虽然有详尽的架构文档和子系统参考（40+ 个参考文档），但实际使用中社区插件仍较少——毕竟上线不到三周。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek 品牌依赖&lt;/strong&gt; — 项目虽开源 MIT，但核心维护方是 DeepSeek AI。社区治理模式、外部贡献流程有待观察。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;写在最后&#34;&gt;写在最后&lt;/h2&gt;
&lt;p&gt;DeepSeek Harness 的开源不仅是 DeepSeek 公司的一次策略转变——从闭源模型公司走向开源基建提供方——更重要的是，它引入了一种 &lt;strong&gt;有形式化理论支撑的 Agent 运行时架构&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;「Everything is a Plugin」之所以不是空话，是因为底部有 Cordis 的五个定理保证插件的可逆加载、安全卸载、依赖驱动生命周期。这种严格性在 Agent 基建领域极为罕见。大多数 Agent 框架仍停留在「框架作者写了什么就怎么运行」的阶段，而 DSH 尝试回答：&lt;strong&gt;我如何证明一个新插件不会破坏正在运行的系统？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;对于 Agent 基建创业者、AI 安全研究者、以及关心下一代 Agent 架构的人来说，研究 DeepSeek Harness 的源码（14,874 次提交，208K 星）可能是理解 Agent 运行时下一步演化方向的最佳起点。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;资源链接：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub 仓库：https://github.com/deepseek-ai/deepseek-harness&lt;/li&gt;
&lt;li&gt;官方文档：https://deepseek-harness.github.io/deepseek-harness/&lt;/li&gt;
&lt;li&gt;Cordis 论文：https://arxiv.org/abs/2608.25512&lt;/li&gt;
&lt;li&gt;Cordis 仓库：https://github.com/cordiverse/cordis&lt;/li&gt;
&lt;li&gt;DeepSeek Harness Discord：https://discord.gg/Ycq5dCaS4&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
