前言¶
在 DeepSeek Harness(DSH)里让智能体读写「得到大脑」(GetNote)笔记,常见做法是装官方 DSH 插件,由 Host 暴露一组结构化工具。开发 GetNote Toolbox 时,官方 @getnote/dsh-plugin 尚未支持 DSH Desktop,而 Desktop 又是很多人的日常入口。leether 维护的 @leether/getnote-toolbox 是一个原生 DSH Host bundle:不直接调得到大脑 API,而是把本机已登录的 getnote CLI 封装成 15 个工具,并附带 Config schema 与内置引导 Skill。若官方插件已覆盖你的环境与需求,应优先用官方版本;本插件不是要替代它。
这是什么¶
- 名称:GetNote Toolbox(npm:
@leether/getnote-toolbox,GitHub:leether/getnote-toolbox) - 维护者:leether
- 分类:记忆(社区目录 SkillHub 归类)
- 许可:MIT(资料记载当前版本
1.2.1) - 定位:将本地
getnote命令行变成 DSH 可调用的笔记、标签、知识库工具集;认证与 API Key 由本机 CLI 管理,插件不读取、不回显凭证。
核心功能¶
插件注册 15 个 getnote_* 工具,并内置 Skill getnote-toolbox,用于引导 Agent 优先使用原生工具,并在写操作、标签覆盖、删除确认和登录提示上遵循统一规则。
| 工具名 | 作用 |
|---|---|
getnote_auth_status |
检查本机 GetNote 登录状态 |
getnote_search |
语义搜索笔记,可限定知识库 |
getnote_save |
保存文字、网页链接或本地图片,可设标题和标签 |
getnote_recent_notes |
列出最近笔记 |
getnote_note |
按 ID 读取笔记详情与正文 |
getnote_update_note |
更新标题、正文或标签 |
getnote_delete_note |
移入回收站(须显式 confirm: true) |
getnote_tag |
查看 / 添加 / 按标签 ID 删除标签 |
getnote_list_knowledge_bases |
列出自有或订阅的知识库 |
getnote_kb_notes |
列出某个知识库内的笔记 |
getnote_create_kb |
创建个人知识库 |
getnote_add_notes_to_kb |
把一条或多条笔记加入知识库 |
getnote_remove_notes_from_kb |
从知识库移除笔记(不删除笔记本身) |
getnote_task |
查询保存任务的异步进度 |
getnote_quota |
查看 API 读写配额 |
运行环境要求 Node.js >= 20;仓库说明在 getnote 1.1.1 与 1.8.0 上验证,建议使用 1.5.3+。
前置条件¶
下面三步是安装插件之前应满足的依赖。
- DeepSeek Harness Desktop / Host,且支持本地 bundle。
- Node.js >= 20。
- 本机已安装并登录 GetNote CLI:
getnote auth status
getnote auth login # 未登录时
安装与启用¶
已发布为 npm bundle,优先在 DSH Plugin Manager 中安装,包名为:
@leether/getnote-toolbox
安装后确认 profile 加载了插件自带的 cordis.patch.yml(bundle 默认会带上)。
与官方插件冲突:本插件与官方 @getnote/dsh-plugin 使用相同的 getnote_* 工具名。不要在同一 profile 里同时安装两者,否则后注册者会产生工具名冲突。
插件按以下顺序查找 getnote 可执行文件:
- Config 的
binaryPath - 环境变量
GETNOTE_BIN PATH中的getnote- 常见安装目录
npx --yes --package @getnote/cli@latest -- getnote兜底
若 PATH 中存在多个 getnote,建议在配置里显式设置 binaryPath,避免版本错位。
配置¶
可在 profile 的 cordis.patch.yml 中覆盖插件 Config,例如:
- id: getnote-toolbox
config:
binaryPath: /opt/homebrew/bin/getnote
apiUrl: http://127.0.0.1:8080
timeoutMs: 120000
maxOutputBytes: 16777216
| 字段 | 默认 | 说明 |
|---|---|---|
binaryPath |
自动发现 | getnote 绝对路径,优先于 GETNOTE_BIN 和 PATH |
apiUrl |
CLI 默认 | 设置 GETNOTE_API_URL,用于联调或私有环境 |
timeoutMs |
120000 |
单次命令超时(最小 1000) |
maxOutputBytes |
16777216 |
单次命令输出上限(最小 1024) |
覆盖某个 entry 的 config 会替换整份配置,需保留的字段要一并写上。环境变量 GETNOTE_BIN、GETNOTE_TIMEOUT_MS、GETNOTE_MAX_OUTPUT_BYTES 可作为兜底。
典型用法¶
智能体通过上述工具完成常见工作流,无需你手写 shell;典型场景包括:
- 确认登录:调用
getnote_auth_status,未登录时按 CLI 提示执行getnote auth login。 - 检索与阅读:用
getnote_search做语义搜索(可限定知识库),再用getnote_note按 ID 拉正文。 - 写入与整理:
getnote_save保存文字、链接或本地图片(本地图建议绝对路径);getnote_update_note改标题、正文或标签;getnote_tag管理标签。 - 知识库:
getnote_list_knowledge_bases列出库,getnote_kb_notes看库内笔记,getnote_create_kb/getnote_add_notes_to_kb/getnote_remove_notes_from_kb组织内容。 - 异步与配额:保存可走异步,用
getnote_task查进度;getnote_quota查看读写配额。
删除笔记时,工具要求显式 confirm: true,避免误删。
适用场景与注意¶
适合谁:主要在 DSH Desktop 或本地 Host 上使用得到大脑、且希望 Agent 以结构化工具操作笔记、标签和知识库的开发者;尤其在意 Desktop 的 locale/icon、CLI 发现与 Plugin Manager 可见性时,可参考本 bundle 的做法。
安全与权限:
- 插件以当前 DSH Host 进程权限运行子进程;安装前应阅读源码与 MIT 许可证,并理解它将 Host 环境传给
getnote。 - 参数经数组传给
spawn,不经 Shell;无任意命令入口。 npx兜底会拉取@getnote/cli@latest;若在意供应链风险,请用binaryPath固定本地 CLI 版本。
已知限制(摘自仓库说明):与官方插件不能同 profile;旧 CLI 上列表 limit 行为可能不同;CLI 无公开笔记链接字段,插件不拼链接;内置 Skill 仅在 Harness 提供 skills 服务时注册。
DSH 生态强调「一切皆插件」;社区目录(如 SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系。
延伸阅读与链接¶
- 社区目录:https://www.skillhub.cn/plugins/leether/getnote-toolbox
- 仓库与 README:https://github.com/leether/getnote-toolbox
- npm:https://www.npmjs.com/package/@leether/getnote-toolbox
- 设计说明:https://github.com/leether/getnote-toolbox/blob/main/docs/DESIGN.md
- 书稿案例(制作过程):https://leether.github.io/dsh-book/ch09.html
若你已在 Desktop 上登录 getnote,在 Plugin Manager 安装 @leether/getnote-toolbox 并避免与官方 @getnote/dsh-plugin 混装,即可让智能体通过 15 个原生工具管理得到大脑里的笔记与知识库。