Anno for DeepSeek Harness (native)

在 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 与插件的交互遵循以下工作流:

  1. 发起审查
    Agent 调用 html_review_start_session,传入源文件的绝对路径。插件返回一个回环 URL(127.0.0.1 + 临时端口),Harness 会在浏览器中打开该 URL。

  2. 用户交互与回传
    用户在浏览器编辑器中完成审查后点击“提交给 Agent”。插件捕获发起该会话的 Agent,并准备交接数据。服务器通过 agent.followup 推送一条普通的后继回合消息,包含完整的审查内容(文本编辑、格式变更、标注等)。

  3. 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 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜