← 返回编程笔记
说明:这是我的个人学习笔记,整理自 DeepSeek Harness 官方页面、GitHub 仓库与几家技术媒体的报道(文末附来源清单)。本文为 AI 辅助整理——资料归纳与初稿由 AI 工具完成,内容经本人复核编辑。dsh 目前是 developer preview,迭代很快,细节以官方文档为准。

上一篇我整理了《Unity 放出 29 个官方 Skill》的文章要点,里面反复出现一个词:harness。巧的是,2026 年 8 月 DeepSeek 把自家的 Agent Harness 开源了,名字就叫 DeepSeek Harness(命令行叫 dsh)。一边是引擎厂在给编程 Agent 喂官方技能,一边是模型厂把 harness 本身开源——把两条线索放在一起看,正好能拼出「AI 怎么开发游戏」这块图景的另一半。这篇笔记先把 dsh 本身搞懂,再琢磨它怎么和 Unity 开发搭起来。

先更正一个事实:Unity 官方的 AI Agent 插件仓库是 Unity-Technologies/unity-agent-plugin,面向 Claude Code 和 Codex 这类编程 Agent,要求 Unity 6+。首发报道时说是 29 个技能,我这次核对仓库 skills/ 目录,已经增长到 31 个——迭代速度可观,具体清单见本文第四节。

一、先搞懂概念:Agent = Model + Harness

DeepSeek 官方页面给了一个很清晰的公式:Agent = 模型 + Harness。模型是「灵魂」,负责推理和写代码;但模型本身看不见文件系统、不会执行命令、没有会话延续——让它真正干活的那个「驾驶舱」,就是 harness:感知环境、调用工具、维护会话、在沙箱里持续工作。

类比一下就明白了:Claude 是模型,Claude Code 是 harness;GPT 是模型,Codex 是 harness。DeepSeek Harness 做的就是这个「驾驶舱」,而且直接对标 Claude Code 和 Codex——不同的是,它以 MIT 协议完全开源(2026 年 8 月进入 developer preview)。开源当天几小时就收获 3 万多 GitHub 星标,目前仓库星标已经超过 20 万,是今年最热的开源项目之一。

有一个容易被误解的点要记下来:dsh 不绑定 DeepSeek 的模型。它的模型提供方目录里有 Anthropic、OpenAI、AWS Bedrock、Azure、Google Vertex、DeepSeek 官方端点,还支持任意 OpenAI 兼容网关。也就是说,它可以理解成一个「模型无关」的开源驾驶舱,装谁家的引擎都行。

二、架构速览:一切皆插件

dsh 最大的卖点是 「Everything is a Plugin」(一切皆插件)。它构建在名为 Cordis 的元框架之上(北大与 DeepSeek 研究者合著了设计论文,arXiv:2608.25512),内核只负责插件的挂载、卸载与依赖管理,能力全部长在插件上。官方文档的原话是「没有特权核心可以补丁」——连模型适配器、工具注册表、会话日志、乃至 Agent 主循环本身,都是可以替换的插件。想换掉某个能力,不用改 dsh 源码,在旁边挂一个自己的插件、用配置组合就行。

四种运行模式

模式定位要点
Standard完整编码代理文件编辑、Shell、文件/网页搜索、技能、子代理、计划模式
Code程序化执行把工具暴露成一套 TypeScript SDK,让模型直接写一段程序,把原本五轮工具调用并成一轮
Minimal基准评测只留 bash 与 str_replace_editor 两个工具,用于给模型跑分
Creator造轮子用Standard 全量能力 + 运行时检查、内存中试插件、预设(preset)编写向导

几个对我有用的设计

  • 可追溯性:一条只追加的会话日志(append-only session log),模型看到的一切——系统提示、推理、工具调用与结果、子代理调度——都必须能从日志还原。Trajectory 视图可以按来源检查记录,恢复、分叉、搜索、回放全部基于同一个事件流。
  • 沙箱:本地子进程按平台分别走 Linux Landlock、macOS Seatbelt、Windows ACL 受限令牌,agent 不会想干什么就干什么。
  • 兼容生态:内置 MCP 客户端(Model Context Protocol)、支持 Agent Client Protocol,会读取 AGENTS.md 和 CLAUDE.md;甚至提供子代理,可以把 Claude Code、Codex 当「外包」调度(默认关闭)。

DeepSeek 官方对仓库的定位也值得一提:他们说希望大家把它当作「一个想法、一个官方展示、一个灵感来源,而不是我们的命令」。社区插件生态已经起步(GitHub 上搜 dsh-plugin 话题就能找到)。

三、十分钟跑起来

只要有 Node.js,一行命令:

npx @deepseek-ai/dsh web
# 启动 Web UI,默认开在 http://127.0.0.1:3080

想从源码构建(pnpm monorepo):

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

两个提醒:README 里用大写字母写着「THERE WILL BE COMPATIBILITY-BREAKING CHANGES」,正式用在项目里要锁版本;动手前先读一遍仓库里的 SAFETY.md——毕竟这是个会替你执行命令的东西。

四、背景板:Unity 官方插件的 31 个技能

既然要讲「怎么搭」,先把 Unity 官方那边的现状摸准。unity-agent-plugin 的安装方式(Claude Code 会话内两条命令,Codex 同理):

/plugin marketplace add Unity-Technologies/unity-agent-plugin
/plugin install unity@unity-agent-plugin
# 手动方式:clone 仓库后 symlink 进 ~/.claude/skills/unity

仓库 README 明确写着「Available for Claude Code and Codex」,面向 Unity 6+,许可证是 Unity Companion License,当前版本 0.1.0-beta,插件只含技能(skills only),不带 MCP 服务端和 CLI。我按领域把 skills/ 里的 31 个技能归了类:

领域数量技能
入门与工具4new-unity-project、unity-cli、unity-package-management、generate-editor-search-query
UI 与文本5ui、ui-uitk、ui-ugui、ui-imgui、optimize-text-mesh-pro
2D 与精灵72d-pixel-perfect、sprite-editor、sprite-segment-3x3grid、manage-sprite-atlas、tilemap-palette-create、tilemap-ruletile-createempty、tilemap-ruletile-createfromsegment
图形与渲染4urp-postprocessing、shader-graph-create-custom-node、validate-urp-render-graph-renderer-feature、migrate-birp-to-urp
音频与语音3audio-setup-mixers、optimize-audio、setup-vivox-voice-chat
场景与玩法2initialize-ai-navigation、physics-3d-collision
变现与运营3implement-in-app-purchases、levelplay-unity-integration、build-live-game
多人游戏1setup-multiplayer-services
平台与本地化2localization、optimize-web

安装后,Agent 在你描述任务时会自动调用对应技能,也可以通过斜杠命令手动触发。注意一个细节:手动安装方式就是「把技能文件夹 symlink 进技能目录」——说明这些技能本质上是纯粹的 markdown 工程知识,不带私有运行时。这一点对第四节很关键。

五、结合 Unity 开发:三条接入路径

先想清楚 Unity 项目为什么「特殊」:一个 Unity 工程 = C# 脚本 + 场景/预制体等序列化资产 + 编辑器实时状态 + 各平台构建。纯文件级的编码代理只能照顾到第一项;后三项都需要额外的通道。而 dsh 恰好把工具注册表、技能、沙箱全部做成了可插拔的口子——这就是结合点。

路径 1MCP:让 Agent 摸到 Unity 编辑器

dsh 内置 MCP 客户端,Unity 这边现成的 MCP 服务端有两类:Unity 官方 MCP Server(2025 年 8 月上线,用 unity mcp configure 注册)和社区方案(CoderGamester 的 mcp-unity、CoplayDev 的 unity-mcp)。挂上之后,agent 就能读取场景层级、获取编辑器状态、执行编辑器操作——改动走编辑器的正规通道,而不是硬啃场景文件的 YAML。注意 unity-agent-plugin 本身不带 MCP,编辑器通道要单独配。具体挂载配置随 dsh 版本变化较快,以官方文档为准。

路径 2Unity CLI:给 Agent 一个「验收回路」

agent 改完 C# 代码,必须能自己验证「真的编译过了、测试过了」。Unity 支持 headless 批处理模式,把这条命令写进任务指令的「验收命令」栏,就形成了改码 → 编译 → 测试 → 读结果的闭环:

Unity.exe -batchmode -projectPath <项目路径> `
  -runTests -testPlatform EditMode `
  -testResults Tests/editmode-results.xml -logFile -

上一篇笔记说首条指令要写清五件事,其中「验收命令」在 Unity 语境下就是这条。

路径 3技能复用:把官方 31 个技能喂给 dsh

unity-agent-plugin 只声明支持 Claude Code 和 Codex,但它的技能就是 markdown 文件夹(手动安装靠 symlink 就是证据),而 dsh 的技能同样是一等插件,且会读仓库里的 AGENTS.md / CLAUDE.md。所以有两条现成的搬运思路:其一,把 skills/ 里的 SKILL.md 内容按 dsh 的技能格式包一层插件;其二,把项目级约束直接写进 AGENTS.md——UI 框架选型(UI Toolkit / uGUI)、目标平台、禁碰目录、验收命令、输出格式,一次写好,每个会话都生效。技能是「领域知识」,harness 是「执行通道」,两者本来就不该绑死。

dsh 的几个特性,放到 Unity 场景里刚好加分

  • Code Mode:「导入贴图 → 建 Sprite Atlas → 改材质引用 → 重新构建」这类资产流水线,传统工具调用要来回好几轮;Code Mode 让模型写成一段 TypeScript 程序一次执行完,中间环节不容易掉链子。
  • 会话 fork / replay:同一个工程上下文,fork 出「方案 A / 方案 B」分别试;出了问题回放轨迹,看 agent 到底动了哪一步——排查 AI 改动比排查人改还需要这个。
  • 沙箱:Windows 上走 ACL 受限令牌,可以把可写范围收紧,Assets/ 之外的目录一概不让碰。

六、坑与备忘(写给自己)

  1. 场景和预制体不是普通文本。它们是带 GUID 的序列化资产,让 agent 当纯文本盲改,轻则引用丢失、重则场景报废;优先走 MCP 让编辑器自己改,Git 合并 YAML 冲突的痛苦谁试谁知道。
  2. 检索范围要圈死。Library/Temp/Logs/obj/ 这些目录又大又没营养,不排除就是纯烧上下文。
  3. C# 改动必须有编译验证。「看起来能编译」不算数,batchmode 跑一遍才算。
  4. dsh 还在 developer preview。锁版本、别拿生产工程直接试,跟踪 CHANGELOG 防破坏性变更。
  5. 首条指令写清五件事(接上篇):UI 框架、目标平台、禁碰目录、验收命令、输出格式。

七、我的最小试点计划

沿用上一篇的思路:选一个可回滚的小项目、开临时分支、第一轮只做只读检查。三步走:

  1. npx @deepseek-ai/dsh web 跑起来,配好模型,确认沙箱行为符合预期;
  2. 挂上 Unity MCP,只让 agent 做「读场景层级 + 汇报结构」的只读任务,观察它的 Trajectory 视图;
  3. 挑一个官方技能(比如 manage-sprite-atlas)的知识内容搬进 dsh,用 Code Mode 写一条小资产流水线,跑通「计划 → 实际改动 → 编译 → 运行截图 → 人工结论」五个观察节点。

如果第 3 步能稳定跑通,「Agent 参与日常 Unity 开发」这件事对我来说就算真正落地了。

八、一点个人体会

上一篇笔记的结论是:Agent 时代稀缺的不是「会生成代码」,而是可信的领域知识 + 确定性的执行。这篇补上下半句:领域知识靠技能(Skill)沉淀——Unity 用 31 个官方技能把工程经验 markdown 化;确定性执行靠的正是 harness——工具通道、沙箱边界、可回放的轨迹,缺一个都不敢让它碰真实工程。Unity 把知识做成了跨 Agent 的官方插件,DeepSeek 把执行框架做成了开源插件系统,两边在 MCP 这个协议上会师。对开发者来说,这大概是入场最好的时候。

来源清单: DeepSeek Harness 官方页面 · GitHub 仓库(MIT) · The New Stack 报道 · InfoQ 报道 · DataCamp 教程 · Unity-Technologies/unity-agent-plugin · Unity 官方博客:MCP Servers in Game Development · CoderGamester/mcp-unity。 信息采集于 2026-09-18:dsh 处于 developer preview、unity-agent-plugin 处于 0.1.0-beta,本文细节可能与最新版本有出入,以官方文档为准。
← 返回编程笔记