如何为Open Science Desktop编写自定义科研技能:SKILL.md五步开发实战
发布时间:2026/10/11 13:21:04 锦皓数字建站

【免费下载链接】open-scienceOpen Science Desktop — local-first, model-agnostic AI research workbench for macOS, Windows Linux. Open-source Claude Science desktop alternative built on Tauri MCP agent skills.项目地址https://gitcode.com/gh_mirrors/ope/open-science点击查看免费下载Open Science Desktop 是一款本地优先、模型无关的 AI 科研工作台其最易扩展的能力正是自定义技能Skills系统。本教程带你从零编写属于自己的科研技能SKILL.md讲清 frontmatter 格式、description 写法、辅助脚本挂载以及三种安装验证方式无需深厚编程背景也能上手。上图展示了一个典型的科研会话左侧边栏中的Skills入口就是所有技能的管理页技能被触发后会自动出现在会话步骤中如loaded 3 skills。一、先搞懂SKILL.md 技能到底是什么在 Open Science Desktop 中一个技能就是一个文件夹 一份说明书。Agent 在执行任务前会扫描所有已安装技能阅读每份SKILL.md的description判断当前任务是否该用这个技能命中后才加载正文执行。技能分为三层定义在 runtime/skills/README.md 中层级位置说明coreruntime/skills/core/官方自研技能随安装包内置external由 scripts/dev/fetch-skills.sh 拉取第三方技能包如 ai4s-skills打包进安装器user用户自行编写本文重点存放在运行时工作区或全局技能目录 唯一硬性规则每个技能目录里必须有一份SKILL.md没有它的目录会被直接跳过。二、五步写出你的第一个科研技能第 1 步创建技能文件夹文件夹名即技能名建议用短横线连接的英文小写my-skill/ ├── SKILL.md # 必需技能说明书 └── check_helper.py # 可选辅助脚本、样式文件等官方技能如 runtime/skills/core/large-file/ 就包含SKILL.md 一个探测大文件的large_file_probe.py脚本两者并排放置。第 2 步写好 frontmatter最关键的一步SKILL.md开头的 YAML 头只有两个字段但description决定了技能会不会被 Agent 选中--- name: my-skill description: Use when the user asks to …。说明适用场景、覆盖范围、以及何时不该用。 ---从官方技能 runtime/skills/core/domain-check/SKILL.md 可以看到黄金写法✅以 Use when… 开头明确触发条件如 Use when the user asks to run a job on a remote machine over SSH✅写清能力边界覆盖哪些学科、哪些文件类型✅反向声明什么时候不该触发domain-check 就强调 Never run it unprompted避免打扰用户 description 写得越精确Agent 误触发率越低。它是技能与模型的契约。第 3 步正文 一份给 Agent 的操作手册正文用 Markdown 撰写建议包含以下模块参考 runtime/skills/core/modal-run/SKILL.md 的成熟结构何时运行 / 何时不运行When to run执行步骤按编号分步给出可直接复制的命令输出约定结果如何返回、以什么格式呈现失败处理遇到某类错误时该做什么如不要重试、要报告什么写作技巧把规则写成命令式Never…、MUST…Agent 对明确禁令的遵守度远高于模糊建议。第 4 步挂载辅助脚本可选如果技能需要确定性检查而不是靠模型回忆规则就在同一目录放一个脚本并在 SKILL.md 中写明调用方式python $XDG_CONFIG_HOME/opencode/skills/my-skill/check_helper.py 目标文件技能部署后脚本会与 SKILL.md 位于同一目录。这是 runtime/skills/core/stats-integrity/SKILL.md 和 runtime/skills/core/traceability-review/SKILL.md 的共同模式模型负责编排脚本负责确定性判断。第 5 步安装并验证有三种安装路径对应三种作用域安装方式作用域适合场景技能页一键粘贴全局用户级最快打开Skills页面点安装技能直接粘贴整份 SKILL.md 内容即可见 apps/desktop/src/app/routes/SkillsPage.tsx 中的 InstallSkill 组件放入工作区.opencode/skills/当前工作区只给某个科研项目用的技能放入全局用户技能目录xdg-config/opencode/skills/user/全局所有工作区通用官方内置技能的部署链路为fetch-skills.sh固定版本下载 → tauri.conf.json 打包为应用资源 → 每次启动时由deploy_bundled_skillscrates/osd-core/src/runtime.rs同步到 OpenCode 的全局技能目录。自建技能粘贴安装后应用会自动重启 sidecar 使其立即生效。装好后回到Skills页面你的技能会出现在列表中并带有来源标签内置 / 项目 / 用户直接对话即可测试触发效果。三、让技能会汇报review 块输出约定一个进阶技巧如果你的技能是审查类校对引用、检查统计完整性等可以让它在回复末尾输出一个 review 代码块应用会把它渲染成可折叠的评审卡片。如上图所示会话中触发了 literature-survey 与 citation-reviewer 技能每条引用核查结果都以 Reviewer 卡片呈现。这正是 runtime/skills/core/traceability-review/SKILL.md 定义的输出契约{findings:[{level:warn,check:number,title:无来源数字,evidence:第3节 p0.03 未找到对应输出}],note:仅核查了可追踪项无发现不代表无误。}⚠️ 官方技能都强调同一句原则只报告追踪到了什么绝不宣称内容无误——你的审查类技能请保留这个底线。四、技能成果如何融入工作台技能产出的文件图表、结果、日志会自动进入工作区的溯源记录在右侧检查器中可看到图 ↔ 生成代码的对应关系这意味着你编写的技能只要遵守把结果写入工作区的原则就能免费获得完整可追溯性——这正是 runtime/skills/core/publication-figures/SKILL.md 要求的最后一步Saved to the workspace and referenced by path。五、常见问题Qdescription 写多长合适一两句话讲清触发条件 能力范围即可官方技能会稍长枚举学科/格式但核心是精确而非详尽。Q技能名和内置技能冲突了会怎样粘贴安装时应用会检查重名名称已被内置技能占用会直接报错换一个name即可。Q技能脚本依赖第三方库怎么办参考 large-file 的写法缺库时优雅降级并给出安装提示绝不把原始字节倒进上下文。Q如何让技能只在特定项目生效把技能目录放进该工作区的.opencode/skills/它就以项目来源显示离开该项目不会被扫描到。小结步骤要点1️⃣ 建目录文件夹名 技能名2️⃣ 写 frontmatterdescription 以 Use when… 开头写清边界3️⃣ 写正文触发条件 → 编号步骤 → 输出约定 → 失败处理4️⃣ 加脚本确定性检查交给脚本模型负责编排5️⃣ 安装验证Skills 页粘贴安装最快检查来源标签并实测触发从复制一份官方 SKILL.md 改写开始是你最低成本的起点——runtime/skills/core/ 下的 domain-check、large-file、remote-compute 都是结构清晰的范本。祝你写出第一个被 Agent 稳定触发的自定义科研技能赞分享【免费下载链接】open-scienceOpen Science Desktop — local-first, model-agnostic AI research workbench for macOS, Windows Linux. Open-source Claude Science desktop alternative built on Tauri MCP agent skills.项目地址https://gitcode.com/gh_mirrors/ope/open-science点击查看免费下载相关推荐如何为 Jan Agent 编写 SKILL.md 可复用技能如何为 Jan Agent 编写 SKILL.md 可复用技能 如果你在 Jan Agent 里反复粘贴同一段流程说明——比如怎么打 release怎么人工智能AI 应用大模型本地部署桌面应用交互助手AI AgentOpen Science Desktop的7大杀手级功能为什么科学家开始用它做AI科研Open Science Desktop的7大杀手级功能为什么科学家开始用它做AI科研 Open Science Desktop 是一款本地优先、模型无关的开Notepad3插件开发入门如何为Notepad3编写自定义功能Notepad3插件开发入门如何为Notepad3编写自定义功能 Notepad3是一款基于Scintilla引擎的轻量级文本编辑器它不仅提供了强大的代码编桌面应用开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。