内容
# 深度学习自动研究
`deep_learning_auto_research` 是一个可选的MCP工作流,适用于Codex。它将Markdown系统计划转化为可追踪的实现块,为每个块附加研究论文,提取块特定的证据,创建实现规格,并将编码限制在批准的上下文中。
这不是一个终端CLI。你需要运行MCP服务器,然后使用以下提示要求Codex使用它:
```text
使用 deep_learning_auto_research。<工作流操作>
```
Codex负责推理、研究、提取和实现工作。MCP服务器存储工作流状态和Markdown工件。

## 视觉概览

## 它创建的内容
对于每个计划项目,该工具创建一个基于Markdown的结构:
```text
<项目路径>/
.planner/
state.json
graph.json
audit-log.jsonl
blocks/
B-001-.../
block.md
papers.md
extracted-research.md
spec.md
implementation.md
papers/
graph.md
system-plan.md
```
每个块都是源计划的实际部分,而不是基础或部署等通用阶段。
## 安装
先决条件:
- Node.js
- npm
- 支持MCP服务器的Codex
安装依赖项并构建服务器:
```bash
npm install
npm run build
```
MCP服务器入口点是:
```bash
node dist/src/index.js
```
## Codex MCP 配置
将构建的服务器添加到Codex MCP配置中。使用下划线键,以便工作流以`deep_learning_auto_research`公开:
```json
{
"mcpServers": {
"deep_learning_auto_research": {
"command": "node",
"args": ["<绝对路径到仓库>/dist/src/index.js"]
}
}
}
```
编辑MCP配置后,重启Codex。现有会话可能会在重启前保留旧工具模式。
## 推荐的Codex指令
仅在全局`AGENTS.md`中添加选择加入规则:
```md
[工具]
deep_learning_auto_research 仅限选择加入。
仅当我明确要求时,使用 deep_learning_auto_research MCP 服务器,并以“使用 deep_learning_auto_research”或“使用 deep_learning_auto_research MCP 工作流”开头或明确包含这些内容。
不要在正常编码、调试、编辑、解释、重构、终端或研究任务中自动使用 deep_learning_auto_research。
当 deep_learning_auto_research 被调用时,请严格按照请求的MCP阶段进行,除非我要求,否则不要进入另一个阶段。
```
## 工作流
1. 创建计划项目。
2. 导入Markdown系统计划。
3. 将计划分解为语义实现块。
4. 审查和批准建议的块。
5. 设置实现目标,例如`Python`和`PyTorch`。
6. 为块准备研究上下文。
7. 搜索在线或附加用户提供的文件。
8. 提取仅块特定的研究。
9. 批准提取的研究。
10. 从`block.md`、`papers.md`和`extracted-research.md`创建`spec.md`。
11. 批准`spec.md`。
12. 准备严格的实现上下文。
13. 让Codex仅实现该块。
14. 记录实现。
15. 验证块。
16. 在所有块实现或验证后准备最终代码合成上下文。
严格的实现上下文是防止Codex过早实现的代码门控。
## 提示模板
替换`<项目路径>`、`<计划Markdown路径>`、`<块ID>`、`<语言>`和`<框架>`等占位符。
### 项目设置
```text
使用 deep_learning_auto_research。在 <项目路径> 处创建计划项目。
```
```text
使用 deep_learning_auto_research。将 <计划Markdown路径> 导入到项目 <项目路径> 中作为 <计划文件名>。
```
```text
使用 deep_learning_auto_research。阅读项目 <项目路径> 中的计划。不要直接使用自动分解。推理 <计划文件名> 并提出不超过 <最大块数> 个语义实现块。在编写之前向我展示建议的块。
```
```text
使用 deep_learning_auto_research。通过调用 planner.decompose_plan 将批准的建议块写入项目 <项目路径>。
```
```text
使用 deep_learning_auto_research。列出项目 <项目路径> 中的所有块。
```
### 实现目标
在规格或实现之前设置此目标,以便Codex不会从MCP仓库本身猜测语言/框架。
```text
使用 deep_learning_auto_research。为项目 <项目路径> 设置实现目标为语言 <语言> 和框架 <框架>。不要实现。
```
```text
使用 deep_learning_auto_research。读取项目 <项目路径> 的实现目标。
```
### 研究
要求Codex在线搜索主要来源:
```text
使用 deep_learning_auto_research。为项目 <项目路径> 中的 <块ID> 准备在线研究上下文。搜索相关的主要论文,将有用的论文作为论文引用,然后仅提取 <块ID> 特有的研究。不要实现。
```
附加您自己的论文:
```text
使用 deep_learning_auto_research。将我的论文 <论文路径> 附加到项目 <项目路径> 中的 <块ID>,标题为“<论文标题>”,引用为“<论文引用>”。不要实现。
```
审查块包:
```text
使用 deep_learning_auto_research。阅读项目 <项目路径> 中的块 <块ID>,以便我可以审查 block.md、papers.md 和 extracted-research.md。不要实现。
```
批准提取的研究:
```text
使用 deep_learning_auto_research。以审查者 <审查者姓名> 的身份批准项目 <项目路径> 中 <块ID> 的提取研究。
```
### 规格
```text
使用 deep_learning_auto_research。根据 block.md、papers.md、extracted-research.md 和批准的实现目标,为项目 <项目路径> 中的 <块ID> 创建 spec.md。不要实现。
```
```text
使用 deep_learning_auto_research。阅读项目 <项目路径> 中的块 <块ID>,以便我可以审查 spec.md。不要实现。
```
```text
使用 deep_learning_auto_research。以审查者 <审查者姓名> 的身份批准项目 <项目路径> 中 <块ID> 的 spec.md。
```
### 实现
```text
使用 deep_learning_auto_research。列出项目 <项目路径> 中已准备好的块。
```
```text
使用 deep_learning_auto_research。为项目 <项目路径> 中的 <块ID> 准备严格的实现上下文,然后仅实现 <块ID> 从批准的规范中。不要实施。
```
仅当您明确要重做已经`实现`或`验证`的块时,才使用重新实现模式:
```text
使用 deep_learning_auto_research。为项目 <项目路径> 中的 <块ID> 准备严格的实现上下文,模式为 reimplement,然后仅从批准的规范中重新实现 <块ID>。
```
在Codex完成编码后记录实现:
```text
使用 deep_learning_auto_research。以摘要“<实现摘要>”和更改文件 <更改文件> 记录项目 <项目路径> 中 <块ID> 的实现。
```
验证块:
```text
使用 deep_learning_auto_research。以验证者 <验证者姓名> 和证据“<测试或构建证据>”验证项目 <项目路径> 中的 <块ID>。
```
### 最终代码合成
```text
使用 deep_learning_auto_research。在所有块实现或验证后,以严格模式为项目 <项目路径> 准备最终代码上下文。
```
## 规则和保证
- 工作流是选择加入的。Codex 仅在您明确要求时才使用它。
- 块应源自实际计划,而不是通用实现阶段。
- 研究提取应特定于块,而不是广泛的论文摘要。
- 规范仅在研究批准后创建。
- 实现仅在严格实现上下文成功后发生。
- 依赖项必须实现或验证后,依赖块才能实现。
- `mode reimplement` 允许重做已实现或验证的块,但它不会绕过严格的门控。
- 实现目标必须明确:语言加框架。
## 故障排除
- 如果Codex看不到`deep_learning_auto_research`,请重建服务器并重启Codex。
- 如果新的工具参数未出现,请重启Codex以刷新MCP模式。
- 如果块未准备好实现,请检查研究批准、规格批准和依赖状态。
- 如果严格实现上下文显示`spec.md`缺少实现目标,请重新创建规格或添加目标部分。
- 在Windows上,请使用空格括住路径。
- 使用项目目录作为`<项目路径>`,而不是计划文件路径。
Windows路径示例:
```text
"C:\Users\<您>\New folder (3)\my_project"
```
## MNIST 工作示例

该仓库包含一个完整的示例,位于 [`mnist_folder`](mnist_folder)。它演示了Python/PyTorch MNIST分类器的完整工作流。
最终项目路径:
```text
C:\Users\ayode\New folder (3)\mnist_folder
```
如果您重命名了父文件夹,请使用当前文件夹路径,并在末尾保留`\mnist_folder`。
### 示例阶段映射
MNIST项目生成了这些块:
- [`B-001 数据管道和预处理`](mnist_folder/blocks/B-001-data-pipeline-and-preprocessing/block.md)
- [`B-002 CNN模型训练`](mnist_folder/blocks/B-002-cnn-model-training/block.md)
- [`B-003 评估、推理和运行说明`](mnist_folder/blocks/B-003-evaluation-inference-and-run-instructions/block.md)
研究和规格:
- [`B-001 papers.md`](mnist_folder/blocks/B-001-data-pipeline-and-preprocessing/papers.md)
- [`B-001 extracted-research.md`](mnist_folder/blocks/B-001-data-pipeline-and-preprocessing/extracted-research.md)
- [`B-001 spec.md`](mnist_folder/blocks/B-001-data-pipeline-and-preprocessing/spec.md)
- [`B-002 papers.md`](mnist_folder/blocks/B-002-cnn-model-training/papers.md)
- [`B-002 extracted-research.md`](mnist_folder/blocks/B-002-cnn-model-training/extracted-research.md)
- [`B-002 spec.md`](mnist_folder/blocks/B-002-cnn-model-training/spec.md)
- [`B-003 papers.md`](mnist_folder/blocks/B-003-evaluation-inference-and-run-instructions/papers.md)
- [`B-003 extracted-research.md`](mnist_folder/blocks/B-003-evaluation-inference-and-run-instructions/extracted-research.md)
- [`B-003 spec.md`](mnist_folder/blocks/B-003-evaluation-inference-and-run-instructions/spec.md)
实现文件:
- [`mnist_pipeline/data.py`](mnist_folder/mnist_pipeline/data.py)
- [`mnist_pipeline/model.py`](mnist_folder/mnist_pipeline/model.py)
- [`mnist_pipeline/evaluation.py`](mnist_folder/mnist_pipeline/evaluation.py)
- [`mnist_pipeline/RUN_INSTRUCTIONS.md`](mnist_folder/mnist_pipeline/RUN_INSTRUCTIONS.md)
- [`tests/test_mnist_pipeline.py`](mnist_folder/tests/test_mnist_pipeline.py)
- [`tests/test_mnist_model.py`](mnist_folder/tests/test_mnist_model.py)
- [`tests/test_mnist_evaluation.py`](mnist_folder/tests/test_mnist_evaluation.py)
### 使用的主要提示
创建和导入:
```text
使用 deep_learning_auto_research。在“C:\Users\ayode\New folder (3)”处创建计划项目
```
```text
使用 deep_learning_auto_research。将 C:\Users\ayode\New folder (3)\mnist.md 导入到项目 C:\Users\ayode\New folder (3) 中作为 mnist。
```
分解:
```text
使用 deep_learning_auto_research。阅读项目 C:\Users\ayode\New folder (3) 中的计划。不要直接使用自动分解。推理 mnist.md 并提出不超过 3 个语义实现块。在编写之前向我展示建议的块。
```
```text
使用 deep_learning_auto_research。通过调用 planner.decompose_plan 将批准的建议块写入项目 C:\Users\ayode\New folder (3)。
```
设置实现目标:
```text
使用 deep_learning_auto_research。为项目 C:\Users\ayode\New folder (3) 设置实现目标为语言 Python 和框架 PyTorch。不要实现。
```
研究每个块:
```text
使用 deep_learning_auto_research。为项目 C:\Users\ayode\New folder (3) 中的 B-001 准备在线研究上下文。搜索相关的主要论文,将有用的论文作为论文引用,然后仅提取 B-001 特有的研究。不要实现。
```
```text
使用 deep_learning_auto_research。为项目 C:\Users\ayode\New folder (3) 中的 B-002 准备在线研究上下文。搜索相关的主要论文,将有用的论文作为论文引用,然后仅提取 B-002 特有的研究。不要实现。
```
```text
使用 deep_learning_auto_research。为项目 C:\Users\ayode\New folder (3) 中的 B-003 准备在线研究上下文。搜索相关的主要论文,将有用的论文作为论文引用,然后仅提取 B-003 特有的研究。不要实现。
```
批准研究和规格:
```text
使用 deep_learning_auto_research。以审查者 fikayo 的身份批准项目 C:\Users\ayode\New folder (3) 中 <块ID> 的提取研究。
```
```text
使用 deep_learning_auto_research。根据 block.md、papers.md 和 extracted-research.md,为项目 C:\Users\ayode\New folder (3) 中的 <块ID> 创建 spec.md。不要实现。
```
```text
使用 deep_learning_auto_research。以审查者 fikayo 的身份批准项目 C:\Users\ayode\New folder (3) 中 <块ID> 的 spec.md。
```
实现块:
```text
使用 deep_learning_auto_research。为项目 C:\Users\ayode\New folder (3) 中的 B-001 准备严格的实现上下文,模式为 reimplement,然后仅重新实现 B-001 从批准的规范中。
```
```text
使用 deep_learning_auto_research。为项目 C:\Users\ayode\New folder (3) 中的 B-002 准备严格的实现上下文,模式为 reimplement,然后仅重新实现 B-002 从批准的规范中。
```
```text
使用 deep_learning_auto_research。为项目 C:\Users\ayode\New folder (3) 中的 B-003 准备严格的实现上下文,模式为 reimplement,然后仅重新实现 B-003 从批准的规范中。
```
将完成的项目移动到自己的文件夹中:
```text
我想你把整个mnist pipline,包括块等和实现,移动到同一个父文件夹中名为mnist_folder的文件夹中
```
在移动后,请为未来的MCP提示使用此项目路径:
```text
<仓库路径>\mnist_folder
```
验证示例:
```bash
python -m unittest discover -s mnist_folder\tests -t mnist_folder -p "test_*.py"
npm run build
npm test
```