在 DeepSeek Harness 的生态中,本地 HTML 文件的审查、编辑与标注通常需要通过 MCP 桥接或启动额外的服务进程来实现。@philmingdao/anno-dsh-native 提供了一种原生方案,它将 Anno 的核心能力直接集成到 Harness 进程中,去除了中间层和子进程开销,实现了更轻量的架构。
这是一个为 Anno 提供的原生 DeepSeek Harness 插件,包含 HTML 审查服务器、持久化会话存储以及六种模型工具,无需 MCP 介接。
核心功能¶
进程内运行
插件运行在 Harness 进程内部。HTTP 审查服务器、磁盘会话存储以及 html_review_* 工具的注册逻辑都在同一个进程内完成。这避免了 MCP 桥接的额外开销,也没有独立的子 npx 进程需要管理。
会话持久化
审查会话默认持久化存储在 $ANNO_DATA_DIR/sessions(默认为 ~/.anno/sessions)。源文件不会被覆盖,生成的输出文件会进行版本控制(如 -reviewed.html、-reviewed-v2.html)。
模型工具
插件注册了六个原生模型工具,Agent 可以直接调用:
- html_review_start_session
- html_review_get_session
- html_review_claim_handoff
- html_review_mark_handoff_sent
- html_review_list_sessions
- html_review_register_final
系统提示集成
插件包含一个 tool:anno 系统提示词章节,明确教导 Agent 如何遵循“开始 -> 审查 -> 接收 -> 解决”的工作流。
安装与配置¶
安装该插件需要使用 DSH 的 profile 机制。
dsh plugin --profile web add @philmingdao/anno-dsh-native
安装完成后,插件会应用 cordis.patch.yml,将 anno-native 行插入到 profile 的主机平面中。启动 Harness 正常运行:
dsh web
所有处于该 profile 下的 Agent 共享同一个审查服务器和会话存储。
配置项
anno-native 行支持以下配置:
| 字段 | 默认值 | 含义 |
|---|---|---|
host |
dsh |
会话记录中标记的主机类型。 |
dataDir |
$ANNO_DATA_DIR 或 ~/.anno |
持久化会话的根目录。 |
assetsDir |
package assets/ |
存放 editor.html 和 handoff.html 的目录。 |
典型用法¶
Agent 与插件的交互遵循以下工作流:
-
发起审查
Agent 调用html_review_start_session,传入源文件的绝对路径。插件返回一个回环 URL(127.0.0.1+ 临时端口),Harness 会在浏览器中打开该 URL。 -
用户交互与回传
用户在浏览器编辑器中完成审查后点击“提交给 Agent”。插件捕获发起该会话的 Agent,并准备交接数据。服务器通过agent.followup推送一条普通的后继回合消息,包含完整的审查内容(文本编辑、格式变更、标注等)。 -
Agent 解决
收到消息后,Agent 的提示词会指示其按顺序执行:
-html_review_claim_handoff(持久化接收确认)
-html_review_get_session(重载完整会话)
-html_review_register_final(将修改应用到草稿 HTML 并生成最终文件)
由于是进程内推送,Agent 可以立即解决交接问题,无需手动轮询。
架构与依赖¶
插件采用 Cordis 插件架构,核心分为两部分:
lib/anno-core.js:负责 HTTP 服务器、磁盘存储和交接钩子。该模块刻意移除了对 DSH 的依赖,可以直接进行单元测试。lib/index.js:作为 Cordis 绑定层,注册工具、注入系统提示词、启动服务器,并处理 Agent 的调用上下文。
该包保持零外部依赖,使用 Node.js 原生的 node:crypto 模块构建消息,不依赖 @deepseek-ai/dsh-tools。
注意事项¶
版本要求
- DeepSeek Harness 版本需在 >=0.1.0-rc.6 <0.2.0 之间。
- Node.js 版本需为 22 或更新。
卸载行为
执行卸载命令后,数据目录下的现有审查会话会保留。如果源头 Agent 已经离线,交接数据仍会持久化在磁盘上,Agent 可以通过普通的 html_review_* 工具列表进行查看和接管。
许可证
插件采用 MIT 许可证。编辑器 UI 使用的字体遵循 SIL Open Font License,详情请参考主 Anno 仓库。