Agent Skills
返回列表
思源受管工作区

思源受管工作区

知识管理 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_0e7c6cad/siyuan-managed-workspace。

技能介绍

要解决什么问题

在 Agent 里直接操作思源笔记时,常见做法是「能搜能改、笔记本一视同仁」。一旦 token 权限较宽,模型很容易误改用户长期沉淀的只读笔记本,或在删除、搜索模式上踩到思源 API 的雷区(例如 SQL、fullTextSearchBlock 的 method=2、笔记本级变更等)。

思源受管工作区把读写边界写进技能契约:通过 SiYuan HTTP API 访问本地实例,用环境变量固定 endpoint、token 和唯一可写笔记本 SIYUAN_MANAGED_NOTEBOOK_ID;其余笔记本一律只读。

如何工作

技能只暴露一组 WorkBuddy 工具,覆盖健康检查、列笔记本、全文搜索、读块,以及在受管本内的建文档、更新/追加/前置追加/删除块;另提供 siyuan_copy_readonly_to_managed,把只读内容复制到受管本再编辑。

关键机制:

  • PermissionGuard:所有写入前调用 assertWritableTarget(id),并实时请求 /api/filetree/getPathByID 反查 notebook,不能只靠缓存;无法判定归属时 fail closed。
  • 返回标注:读取类结果必须标明 managed | readonly 或 writable | readonly。
  • 建文档:路径以 / 开头,禁止 ../ 与 //;同路径已存在则返回 existingDoc,不覆盖。
  • 删除:先读内容与路径做预览;仅当 confirm=true 才调用真实删除,默认 dry-run。
  • 搜索:固定普通全文搜索,禁止切换到危险模式。

用户若要求改只读内容,技能不能原地修改,只能给修改建议,或复制到受管本后编辑。

适用边界

  • 不能改只读笔记本;不能做文档/块移动;不能做笔记本级删除、重命名或配置变更。
  • 不能使用 SQL;token 只能从环境变量读取,不得出现在源码、文档示例、测试快照或日志中。

使用场景

  • 本地思源有多本笔记本,需要 Agent 全文搜索并读取任意本,但新建文档与改块只能写入环境变量指定的受管笔记本。
  • 用户指向只读笔记本里的块,要先复制到受管本再在受管路径内更新或追加,避免直接改动归档笔记。
  • 在受管本用以 `/` 开头的路径创建文档;同路径已存在时返回 `existingDoc`,不静默覆盖原有文档。
  • 清理受管本中的块时,删除工具先返回 dry-run 预览(内容与路径),确认后再带 `confirm=true` 执行真实删除。

适合人员

  • 自建思源 HTTP 服务、希望 Agent 能查全库但写入严格限制在单一「草稿/受管」笔记本的工程师
  • 在 WorkBuddy 中集成思源、需要写入前 PermissionGuard 实时反查 notebook 的插件或自动化维护者
  • 日常用对话维护 inbox 式受管本、个人归档本只读检索、不接受误改的历史笔记用户
  • 对删除与搜索模式有硬性要求:必须预览删除、禁止 SQL 与危险全文搜索的笔记库管理员