快速了解
它能做什么
将 DeepSeek Harness Agent 连接到 Doco 知识库,支持带引用的搜索、局部阅读、电子表格和需审批的写入。
本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。
dsh Profile
Node >=18.0.0; @deepseek-ai/cordis ^4.0.1; @deepseek-ai/dsh-tools >=0.1.0-rc.7
证据已验证
核对日期 2026/9/12 UTC 14:13
有代码证据的贡献
它为 DSH 增加什么
为 DSH 添加九个 Doco 工具,用于连接状态、知识库发现、搜索、大纲和按 Token 预算阅读,以及电子表格访问、单元格更新和草稿保存。
机制证据 ↗选择前先看
这是一个原生 DSH Bundle,会注册九个 `doco_` 工具。它可列出可访问的知识库、搜索内容、查看文档大纲、按 Token 预算读取局部正文,并处理电子表格范围;同时为兼容的同进程插件提供 Doco 服务。
适合谁
将工作知识沉淀在 Doco 中,希望让 DeepSeek Harness Agent 检索带来源的资料或准备受控更新的用户。
常见任务
- 搜索 Doco 知识库,并在回答中保留文档链接引用。
- 先查看文档大纲,再按 Token 预算精读所需区块。
- 读取电子表格结构和单元格范围,再执行受保护的单元格更新。
- 在明确审批后,将 Agent 产出保存为新的 Doco 草稿。
权限与数据
插件通过 Doco CLI 客户端连接,并可能请求基于系统浏览器的设备授权。
权限- 读取 Doco 知识库和文档的权限。
- 保存草稿或更新电子表格时需要 `documents:write` 写入 scope。
- 提交操作需要 DSH 显式审批和已启用的写入开关。
- 项目声明令牌存储在 `~/.config/doco/config.json`,文件权限为 0600。
- 项目声明令牌仅通过 POST 请求体和浏览器授权传递,不会进入工具结果、日志、错误栈或提交。
- 搜索和读取结果可能包含文档 URI 和网页 URL 作为引用。
- 配置的 Doco API 地址。
- 用于 Doco 设备登录流程的系统浏览器。
- 访问 Doco 需要 Doco 令牌或设备登录会话。
- 写入还需要写入 scope 和已启用的写入控制。
局限
- 提供的证据未显示在真实 DSH Profile 中成功安装或连接到 Doco。
- 未找到 npm Registry 中的该版本;评估此条目时应使用已验证的固定 Git 源码路径。
- 它依赖 `doco-agent-cli`,并声明与 DSH/Cordis Peer 依赖兼容。
- 搜索结果可能不完整或过期;项目说明 Agent 不应据此断言知识库中不存在信息。
- 保存草稿只会新建草稿,不会删除、移动或整篇覆盖文档。
DSHub 已核对
- 已采集包清单、DSH Bundle Patch 和固定 Git Commit,Bundle 结构校验通过。
- 清单声明 Node >=18.0.0,以及 DSH/Cordis Peer 依赖。
- 源码文档描述了九个 Doco 工具及其读写控制。
DSHub 未核对
- 未在真实 DSH Profile 中执行安装。
- 未运行测试 Doco 鉴权、API 连通性、权限执行或写入审批行为。
- 项目声称的测试套件和工具行为未被独立执行验证。
固定版本安装
安装 Doco for DeepSeek Harness
这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。
维护者原文
项目 README
doco-dsh
Doco 知识库的 DeepSeek Harness(dsh)原生插件。用 9 个工具把 Agent 接到你的 Doco 知识库上:块级寻址、按 token 预算精读、乐观并发写入草稿、来源引用,全部复用 doco-agent-cli 的 DocoClient(HTTP / ETag / Token 逻辑不复制)。
默认只读;写入走 dsh 原生审批 + scope 门禁,绝不静默提交。
能力
| 工具 | 读/写 | 说明 |
|---|---|---|
doco_status |
读 | 连接自检:当前用户、scope、API 地址、读写能力 |
doco_list_knowledge_bases |
读 | 列出可见知识库(选 knowledge_base_id) |
doco_search |
读 | Search v2 全文搜索,带完整性证明(projection.complete / freshness) |
doco_outline |
读 | 文档结构大纲(稳定 block_id + heading path),先规划再精读 |
doco_read |
读 | 按 token 预算局部读取正文(around / cursor 续读) |
doco_get_spreadsheet |
读 | 工作表结构、激活页、尺寸、格式与顶层 version |
doco_get_cells |
读 | document_id + sheet_id + range,返回原始字符串 |
doco_update_cells |
写 | document_id + sheet_id + cells + if_match,原子批量提交 |
doco_save_draft |
写 | 把 Agent 产出存成新草稿(preview → 确认 → commit) |
回答里的事实命中有来源引用(document_uri / web_url);doco_search 返回 complete=false 或 freshness=stale 时,插件会显式标注「结果不完整」,禁止 Agent 据此断言「知识库里没有」。
安装
doco-dsh 依赖:
doco-agent-cli@^0.1.3(npm 运行时依赖);@deepseek-ai/dsh-tools/@deepseek-ai/cordis(peer dep,由宿主 dsh 提供,本插件不捆绑)。
装包并自动挂载(推荐)——本包声明了 dsh.bundle.patch,dsh plugin add 装完即自动挂进 profile 层栈:
dsh plugin --profile <name> add doco-dsh
手动挂载(备选)两步:
pnpm add doco-dsh # 或 npm i doco-dsh,装到 dsh 项目里供 composition 解析
再在 dsh 的 Composition YAML(如 agent.cordis.yml)里追加一条——name 既可用 npm 包名,也可用本地相对路径:
# 挂到你的 composition(追加一条)
- id: doco
name: 'doco-dsh'
(最简形式也可只写 - name: 'doco-dsh'。挂载语法细节见 dsh 教程《07 · Into the Harness》。)
挂载完成后,apply 会:
- 解析配置(见下);
- 注册 9 个工具(命名带
doco_前缀,可配DOCO_DSH_TOOL_PREFIX覆盖); - 注入系统提示词分段(仅规则,不注入内容/Token);
- 注册
/doco命令。
配置走环境变量与
doco-agent-cli的loadConfig()(见下方「配置」),不通过 YAMLconfig:块。
若 @deepseek-ai/dsh-tools 缺失或版本不兼容,插件会在加载期抛稳定错误码 doco_dsh_incompatible(不静默降级)。
授权(设备登录流)
/doco connect # 默认 read_only
/doco connect --access read_write # 需要写入时选 read_write
命令会打开系统浏览器完成设备授权,Token 写入 ~/.config/doco/config.json(0600),并自动重载插件状态。
/doco status / disconnect / set-kb <kb_id>
Token 只走 POST 请求体与浏览器;绝不进入工具结果、日志、错误栈或提交。
配置
优先级(高 → 低):dsh 启动参数 > doco-agent-cli 的 loadConfig()(~/.config/doco/config.json + DOCO_BASE_URL/DOCO_TOKEN)> 插件级环境变量 > 内置默认。
| 环境变量 | 默认 | 说明 |
|---|---|---|
DOCO_API_BASE_URL |
https://api.doco.page/api/v1 |
API 地址(仅 http/https) |
DOCO_API_TOKEN |
— | 令牌(也可用 doco-agent-cli 登录) |
DOCO_DEFAULT_KB |
— | 默认知识库 id |
DOCO_WEB_ORIGIN |
https://doco.page |
引用链接的 Web 源 |
DOCO_READ_MAX_TOKENS |
4000 |
doco_read 默认预算(64–50000) |
DOCO_READ_CONTEXT_BEFORE / AFTER |
2 / 4 |
上下文块默认(0–100) |
DOCO_DSH_TOOL_PREFIX |
doco |
工具名前缀 |
DOCO_DSH_ALLOW_WRITES |
false |
写入总开关(仍受 scope + 用户确认双重门禁) |
写入安全(三层)
- 同步 guard:
DOCO_DSH_ALLOW_WRITES未开启时,任何commit被单调拒绝(doco_write_not_confirmed)。 - pre-execute 审批:commit 前校验
documents:writescope,随后ask用户确认(dsh 原生审批)。 - execute 防御:即使被直接顶层调用,
doco_save_draft也再校验 scope 并返回稳定错误码。
doco_save_draft 只 创建新草稿:不删除、不移动、不整篇覆盖;用唯一 Idempotency-Key,冲突即返回 doco_version_conflict,从不强覆盖。
doco 服务(供上层插件消费)
自 0.2.0 起,apply 在装配早期通过 ctx.provide('doco', createDocoService(state, { toolPrefix })) 暴露一个 doco 服务,把客户端、身份、scope、错误契约与配置以统一服务面开放给同进程的其他插件:
getConfig()/getClient()— 实时配置与DocoClient(reconfigure 后整体替换,活引用);ensureIdentity()/hasToken()/hasScope(scopes, scope)/scopes— 身份与权限面;errorValue/toErrorValue/mapApiError/DocoPluginError— 统一错误契约;toolPrefix/pluginName/version— 运行时元信息。
消费方用 Cordis 依赖注入声明 inject: ['doco'],插件会等待该服务就绪后才启动。当前消费者:
- doco-memory-dsh(peer
doco-dsh >= 0.2.0):把 Doco 知识库变成 Agent 的集中式记忆库(recall / remember / context / init,布局规范 Doco Memory Layout spec v1)。
不消费 doco 服务也完全不影响 doco-dsh 自身 9 个工具:服务是纯增量面。
与 Doco MCP 的关系
doco-agent-cli 自带一套 29 工具的 MCP server。本插件复用同一 DocoClient,并在读/搜索工具上采用同名前缀:若二者被同时加载,registerTools 检测到重名会跳过而非覆盖,避免同一个知识库以两套名字重复注册、重复消耗上下文。推荐二选一(原生插件更省一跳 RPC 且能用上 dsh 原生写入审批;MCP 更通用)。详见 docs/adr-001-native-vs-mcp.md。
错误契约
工具失败「返回而非抛出」结构化错误值 { kind:'doco_error', code, message, next_step },让模型能读到 next_step 自行纠偏。稳定错误码见 src/errors.js(如 doco_auth_required、doco_insufficient_scope、doco_rate_limited、doco_version_conflict、doco_read_cursor_stale)。
开发
pnpm install
pnpm test # 80 个测试:单测 + 真实 dsh-tools/cordis 冒烟 + 装配集成
电子表格(0.3.0)
独立 document_type=spreadsheet 必须使用专用工具,禁止通用 TipTap 写入及浏览器 click/setValue。
先 doco_get_spreadsheet 取得顶层 version 和 sheet ID(旧单页 sheet_1),再 doco_get_cells 读取目标范围。
调用 doco_update_cells,例如 cells={"C15":"10","C16":"20","C17":"=SUM(C15:C16)","C18":""},if_match 为读取的 version 或带双引号 ETag。
值必须为字符串;公式不在服务端计算,空字符串清空值且保留样式。写后 GET 回读确认。
写工具沿用 allowWrites、documents:write 和 dsh 审批门禁;一次调用仅 PATCH 一次。
失败返回 http_status、原始 code、details、request_id;版本冲突另含 current_version 与重读提示。
仅 409 document_version_conflict 在上层重读内容和版本、合并后重试,最多 3 次;其他 409(如类型不符)原样处理。
现有发布版 DocoClient.request 即可调用,无需升级 CLI 依赖或修改 doco_save_draft。
有意识地管理
安装与管理
前置条件与目标 Profile
目标: dsh Profile
交付方式: Git Bundle — songofhawk/doco-dsh#bfdd8903027eedded46569092562ba13ea0804d4。
验证、更新与移除
显示生命周期命令
dsh plugin --profile dsh list兼容性与访问范围
Node 18+; DeepSeek Harness peer packages declared: Node >=18.0.0; @deepseek-ai/cordis ^4.0.1; @deepseek-ai/dsh-tools >=0.1.0-rc.7。
风险事实
证据与编辑审查Manifest、Bundle patch、分发与新鲜度
不可变证据
审查状态与源码活动
有关令牌处理和写入保护的内容来自项目文档,并非独立安全评估。
AI 审查于 2026/9/12 UTC 14:13。GitHub 事实核对日期: 2026/9/12 UTC 14:13。
自当前证据基线以来,没有记录到重要源码变化。