---
title: MAARS — 从一个想法到一篇论文，全自动
date: '2026-03-26'
summary: MAARS 早期研究管线的历史记录，包含任务规划、执行、写作与引擎适配设计。
lang: zh
category: AI/Agents
legacy_url: https://dozybot001.github.io/2026/03/26/2026-03-26-maars-multi-agent-research/
---

一直在想一个问题：能不能把”从想法到论文”这个过程自动化？

不是让 AI 帮你润色摘要、改改语法那种程度——而是从一个模糊的研究想法开始，自动精炼、规划任务、执行研究、写出完整论文。

于是做了 **MAARS**（Multi-Agent Automated Research System）。

---

### 四个阶段

管线是固定的四个阶段，从头到尾自动走完：

**想法 → 精炼 → 规划 → 执行 → 写作 → 论文**

| 阶段 | 做什么 |
| --- | --- |
| **精炼** | 探索 → 评估 → 结晶。把模糊想法转为结构化研究提案，3 轮迭代 |
| **规划** | 递归分解为原子任务 + 依赖 DAG（深度 3，批量并行） |
| **执行** | 拓扑排序 → 并行批次 → 验证 → 重试。结果存入文件 DB |
| **写作** | 大纲 → 逐章节写作 → 润色。每个章节只接收相关任务输出 |

精炼阶段比较关键——它决定了后续所有工作的方向。3 轮迭代把一句话的想法逐步具体化成有研究问题、方法论、预期贡献的完整提案。

规划阶段用递归 DAG 分解任务。之前写过一篇[关于 DAG 可视化的博文](/blog/2026-02-22-dag-visualization/)，就是在做 MAARS 的任务依赖图时折腾出来的。

执行阶段按拓扑排序并行跑任务，先跑无依赖的，再跑依赖被满足的，逐层推进。Agent 模式下还能自动生成代码、跑实验、存结果。

---

### 四种模式

`.env` 一行切换：

```plaintext
MAARS_LLM_MODE=mock      # 或 gemini、adk、agno
```

模式替换的是各阶段的**引擎**，不是管线逻辑。四种模式共享同一套 pipeline stages，只有 `LLMClient` 实现不同：

- **Mock** — 回放预录数据，开发调试用
- **Gemini** — 直接调 Gemini API，最简单
- **ADK** — Google ADK 框架，Agent 带工具（搜索、代码执行、DB）
- **Agno** — Agno 框架，支持 40+ 模型 provider，工具集包括 DuckDuckGo、arXiv、Wikipedia

ADK 和 Agno 是真正的 Agent 模式——执行阶段的 agent 能调用搜索引擎查文献、写代码跑实验、把结果存进 DB。不只是”让 LLM 生成文本”，而是让 agent 去做研究动作。

---

### 三层架构

架构上做了解耦：

1. **Pipeline 层**：流程逻辑（orchestrator → refine → plan → execute → write → 文件 DB）
2. **接口层**：`LLMClient.stream() → StreamEvent`，统一的流式接口
3. **适配层**：MockClient / GeminiClient / AgentClient / AgnoClient，可替换

Pipeline 只依赖接口，不关心底层用的是 Gemini 还是 Claude 还是本地模型。加一个新 provider 只需要实现 `LLMClient` 接口。

前端是纯 Vanilla JS，通过 SSE 接收推理日志和流程产出，实时展示研究进度。

---

### 产出

每次运行生成一个带时间戳的文件夹：

```plaintext
research/{timestamp}-{slug}/
├── idea.md           # 输入
├── refined_idea.md   # 精炼输出
├── plan.json         # 扁平原子任务列表
├── plan_tree.json    # 分解树
├── tasks/            # 各任务输出
├── artifacts/        # 代码脚本 + 实验产出
├── paper.md          # 最终论文
├── Dockerfile.experiment
├── run.sh
└── docker-compose.yml
```

Agent 模式下还会自动生成 Dockerfile 和运行脚本，方便复现实验。

---

### 快速开始

```bash
git clone https://github.com/dozybot001/MAARS.git && cd MAARS
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env  # 填入 API key
uvicorn backend.main:app --host 0.0.0.0 --port 8000
# 打开 http://localhost:8000
```

输入一个研究想法，选个模式，点开始，等它跑完就能拿到论文。

---

### 一个实际例子

用 Agent 模式跑了一个”ODE 数值求解器——精度、稳定性与计算效率对比”的研究，自动分解出 22 个子任务，按依赖关系并行执行，最终生成了完整的对比分析论文。

这个项目的语义历史用 [Intent](https://github.com/dozybot001/Intent) 记录，可以在 [IntHub Showcase](https://dozybot001.github.io/Intent/) 在线查看每次 session 的开发过程。

---

*把”从想法到论文”自动化，不是为了替代研究者的思考，而是把繁琐的文献检索、实验执行、论文写作交给 agent，让人专注于真正需要判断力的部分——提出好问题、评估结果、做决策。*

- GitHub: [github.com/dozybot001/MAARS](https://github.com/dozybot001/MAARS)
- MIT 协议
