AITP 科研工作台
AITP Research Desk 是 DeepSeek Harness(DSH)的一个研究插件:把「一个课题」变成一个自包含的文件夹,让 Agent 在写文件前就知道东西该放哪,并给研究者一个文件管理器式的界面来浏览课题、笔记、文献、代码和计算。
它不解析 PDF、不做 RAG、不建数据库;它只约束 Markdown 目录结构与写入位置,并把已有文件原样展示出来。
English: A DeepSeek Harness plugin that turns an AITP research topic into a self-contained folder, enforces where files may be written, exposes
research.mdtools to the agent, and provides a file-manager-style topic browser. It is designed to be used together with the AITP Skills bundle.
- 仓库:https://github.com/bhjia-phys/aitp-research-desk
- 配套 Skills:https://github.com/bhjia-phys/AITP-Research-Protocol(
plugins/aitp) - 许可证:MIT
它解决什么问题
研究笔记常见的问题不是“没写”,而是:
- 同一个课题的推导、脚本、数据、论文稿散落在不同目录;
- Agent 每次都把新文件丢在课题目录根下,几个月后没人知道哪个是最终版;
- 换一个会话或换一个 Agent,就不知道这个课题做到哪了;
- 想找一个旧推导,只能靠记忆或全文搜索。
本插件把 AITP 的约定变成可执行的约束:
- 课题 = 含
research.md的目录;research.md是唯一主笔记; - 写文件前用
research_path取规范位置; - 写守卫拦截“根目录乱放脚本/数据/图片”;
research_log把进展写进 Current work;research_check做结构体检;- 面板按真实文件夹展开,不另存一份索引。
和 AITP Skills 的关系
两者是两个独立的 DSH bundle,建议一起安装:
| 负责 | 仓库 | |
|---|---|---|
| AITP Skills | 怎么研究:研究循环、笔记结构、验证、写作、领域方法 | AITP-Research-Protocol/plugins/aitp |
| AITP 科研工作台(本仓库) | 东西放哪、现在到哪了:写入守卫、research.md 工具、课题浏览面板 |
本仓库 |
共享一份放置规则。 Skills bundle 里有 assets/placement-rules.json,本插件的 placementRules 配置指向它;守卫、research_path、research_write、research_check 和系统提示都从这一份生成。若未配置或读取失败,插件使用内置副本,并在 research_status 中明确提示“正在使用内置副本”。
只装工作台也能用(内置规则 + 面板);同时安装 Skills 才能获得完整的方法论约束。
安装
要求:
- DeepSeek Harness 0.2.1-rc.2 或更高(桌面版 / web profile 均可);
- Node.js 22+(DSH 自带运行时即可)。
1. 安装 AITP Skills(推荐)
git clone https://github.com/bhjia-phys/AITP-Research-Protocol.git
dsh plugin --profile desktop add ./AITP-Research-Protocol/plugins/aitp
2. 安装本插件
git clone https://github.com/bhjia-phys/aitp-research-desk.git
dsh plugin --profile desktop add ./aitp-research-desk
也可以在 DSH 的插件管理器里用 install_bundle,target 指向本目录的绝对路径。
安装后重启 DSH(Host 半需要重新加载),页面刷新后侧边栏底部出现「科研工作台」图标。
3. 配置课题根目录
编辑本插件的 cordis.patch.yml(或在 profile 的 patch 层覆盖):
config:
roots:
- 'D:\Research'
# WSL 示例:
# - '\\wsl$\Ubuntu2204\home\you\physics\topics'
newProjectRoot: 'D:\Research'
placementRules: 'D:\AITP-Research-Protocol\plugins\aitp\assets\placement-rules.json'
roots 是扫描课题的根目录;每个根下按 maxDepth 查找 research.md。配置变更后重启 DSH。
功能
课题树(文件管理器式)
- 按方向 → 课题 → 材料目录 → 文件逐层展开,读的是真实文件夹;
- 点文件用 DSH 原生预览打开(Markdown、PDF、图片、代码);
- Markdown/TeX 行尾可「编辑」,保存时检查文件是否已被 Agent 改过;
- 展开状态、滚动位置、目录列表缓存都会保留;
- 大目录只显示前 500 项,并提示剩余数量。
规划页
编辑课题根目录的 research-plan.md,可插入指向具体课题的链接;跨盘课题写成路径文本。
编辑器
- Ctrl/Cmd+S 保存;
- 保存携带读取时的 mtime,磁盘被 Agent 改过时拒绝覆盖,提供「载入磁盘版本」;
- 未保存内容留在本机作为草稿,重新打开可恢复;
- 读取失败或超过 2 MB 时只读。
知识库
右侧栏的「知识库」页签:列出共享知识库顶层条目,可逐层浏览;支持全文搜索(后台建一次索引,之后毫秒级返回),文件在原生预览中打开。
远程主机
只允许打开 remoteAllow 中列出的 SSH 别名,并在本机终端中执行。
Agent 工具
| 工具 | 用途 |
|---|---|
research_status |
列出全部课题、状态、更新时间、材料数量、体检问题;指出当前工作目录所属课题。 |
research_path |
写文件前取规范路径(notes/references/code/calculations/manuscripts/data/project/research),必要时建目录。 |
research_init |
新建课题:research.md 模板 + README 地图 + 材料目录。 |
research_log |
把带日期的进展写进 research.md 的 Current work。 |
research_check |
结构体检:根目录散落文件、缺失 Current work、未链接材料、未说明的代码库、断链、运行目录缺说明。 |
research_write |
在课题内写文件(自动建父目录);WSL/网络盘上 write/edit 不可用时使用。 |
research_organize |
把课题目录根下放错位置的文件整理到 code/data/references/figures/manuscripts;默认 dry-run。 |
系统提示会要求:先 research_status 确认课题 → 写前 research_path → 有实质进展 research_log → 收尾 research_check。
课题目录约定
推荐骨架(可增量创建,不强制一次建全):
<课题>/
research.md # 主笔记:Opening / Current work / 科学论证 / 决策
README.md # 材料地图(位置说明,不是第二份摘要)
notes/ # 推导、概念、阅读笔记
references/ # 文献、书目、源文档
code/ # 本课题的代码库
calculations/ # 计算与实验:一次运行一个子目录(含 README:命令/输入/输出/结论)
manuscripts/ # 论文草稿与 TeX 源
data/ # 大数据(可选)
figures/ # 图(可选)
课题目录根下只允许 research.md、README.md、.tex/.bib 主稿和 .gitignore;其他文件由写守卫拒绝。已有目录可以就地采纳:把 research.md 放进现有课题文件夹即可,不必迁移。
设计取舍
- 只读文件系统 + 普通 Markdown:没有数据库、台账或隐藏状态,删掉插件不丢任何科研数据;
- 单一规则来源:
placement-rules.json驱动守卫与提示,避免“文档说一套、代码做一套”; - 不做文献管理:文献就是
references/下的文件和链接,不接 Zotero/RAG; - 面板不写文件:所有写入发生在会话里,可观察、可回滚;
- 原生预览优先:不在插件内重复实现 PDF/图片渲染。
已知限制
- 写守卫覆盖
write/edit/str_replace_editor/research_write;shell 脚本里的写入靠系统提示与收尾research_check发现; - WSL 上首次为某个课题目录打开原生预览时,需要创建/复用一个 workspace 和会话,之后复用;
- 目录特别大的 WSL 路径首次展开仍受 9P 延迟影响;
- 行内数学是轻量 LaTeX→Unicode 渲染,不是完整 TeX;
- 没有文件监听推送,面板按需刷新。
开发
node --check index.js
node --check lib/store.js
node --check client.js
node test-store.mjs
node test-client.mjs
node test-host.mjs
test-client.mjs / test-host.mjs 需要 DSH 的运行时模块;在安装本插件的 profile 目录中运行最方便。
License
MIT,见 LICENSE。
No comments yet. Be the first to write one.