【免费下载链接】luxas
An autonomous research colleague — from a question to a compiled manuscript, while you sleep.
Luxas 是一个开源的多智能体自主科研系统:给它一个研究问题,14 个智能体分工协作——检索文献、跑实验、画图、写 LaTeX、对抗式审查,最终编译出一份带真实引用和自生成图表的科研论文 PDF。整个过程可以无人值守地跑数小时。这篇文章带你完整看懂 brain 主脑 + 13 个子代理的分工逻辑。
一、Luxas 是什么:从问题到论文的完整流水线
一句话概括:Luxas 是一个"harness"(框架),不是模型本身。智力来自 Claude(Opus/Sonnet/Haiku 分角色使用)和 OpenAI o3(数学推导),框架负责给智能体一个"持久工作区":
- 文件即记忆——所有状态都存在文件里,崩溃后可从
log.jsonl重放恢复 - 独立作者模式——写代码的不能写测试、审论文的没参与写作,从结构上杜绝"自问自答"
- 确定性完成门禁——
finish工具不满足条件就拒绝放行,提示词骗不过去
核心流程是一条五段式流水线:
RESEARCH.md(研究问题)→ 文献综述 → 实验设计与执行 → LaTeX 报告 → 对抗式审查 → 编译 PDF
二、14 个智能体全家福:一张表看懂分工
Luxas 共有 14 类智能体,全部定义在 src/agents/definitions/ 目录下,每个智能体就是一个带 YAML frontmatter 的.md文件。按职责可分为 5 组:
| 智能体 | 模型 | 一句话角色 |
|---|---|---|
| brain | Opus (high) | 总指挥:拆解任务、编排流程、写报告、回应 PI 反馈 |
| search | Sonnet | 文献侦察兵:OpenAlex/arXiv/CrossRef/引文链/付费墙浏览器 |
| reader | Haiku | 单篇论文精读:抽取成notes/literature.d/<paper>.md片段 |
| worker | Sonnet | 轻量并行工人:批量下载、文件操作 |
| experiment | Opus (high) | 实验编排者:三阶段 Design → Impl+Review → Integrate,自己不写代码 |
| tool_impl | Sonnet | 只写实现脚本,看不到测试 |
| tool_review | Sonnet | 只写 pytest 测试,看不到实现,且每个工具至少 1 条对抗性测试 |
| experiment_reviewer | Opus (medium) | 实验完成后自动触发的对抗式复盘,投票satisfied/revise |
| math | OpenAI o3 | 符号推导与解析验证,可调用 Wolfram Engine |
| illustrator | Sonnet (high) | 图表内部审查 + 混合管线(Gemini 图像 + TikZ)重生成 |
| illustrator_write | Sonnet (medium) | 领域感知的绘图脚本初稿作者 |
| typesetter | Sonnet (medium) | 文档级版式审查:逐页栅格化 PDF 检查浮动、溢出、缺图红框 |
| reviewer | Opus (medium) | 对抗式 PI( Principal Investigator),任何stop之前必须先跑图表终结循环 |
| fixer | Haiku (low) | LaTeX 编译报错机械修复工:单次编辑 + 重编译循环 |
💡 补充:src/agents/definitions/ 里还有figure_auditor、prior_art_auditor、contradiction_auditor、ledger_writer、replicator、report_writer等扩展质检角色,属于 claims-first 流程的"终审专家",按需被自动派生。
三、核心主线:brain 如何调度 5 类工作
brain 是唯一的"主循环",它自己不做具体事务,而是通过spawn_agent工具派生子代理。三种执行模式(见 src/tools/spawn-agent.ts):
- foreground(前台):阻塞等待,拿到结果
- parallel(并行):
tasks: [...]同时跑 N 个实例,比如一篇论文一个 reader - background(后台):脱离主进程异步跑,brain 继续干活,完成后回收结果
几个关键设计:
- 派生深度封顶 2(
MAX_SPAWN_DEPTH,定义在 src/agents/spawn.ts),防止智能体无限套娃 - 启动时做环检测:
validateSpawnGraph在 src/agents/registry.ts 中对allowedTypes边做 DFS,声明出环直接抛错 - 安全域按文件声明:每个
.md的safety字段(allowedReadRoots、allowedWriteRoots、writeOnExistingPolicy)被编译成运行时工具守卫,提示词里怎么求情都没用
四、实验流水线:盲写代码 + 对抗测试的"独立作者模式"
这是 Luxas 最精巧的部分。experiment智能体接到任务后分三阶段:
- Design——列出每个需要的工具:名称、用途、输入/输出形状
- Impl + Review——对每个工具,并行派生
tool_impl(写scripts/<tool>.py)和tool_review(写tests/test_<tool>.py),两者都只看描述、互相看不到对方的代码。pytest 是唯一裁判;失败信息回传tool_impl修复(上限 3 轮) - Integrate——跑通的工具产出落到
data/experiments/<EXP_ID>/runs/run_N/results.json,并追加到notes/experiments.md
为什么要"致盲"?因为存在一种真实的失效模式:实现和测试一起写时,实现会悄悄重定义字段语义让自己的自检值通过断言(Luxas 开发中实际观测到:max_pair_distance_um被重定义为"移动后距离 = 0",测试全绿,工具却是错的)。盲写切断了这条自圆其说路径。
实验返回后,harness 自动再派生experiment_reviewer做事后对抗审计——它读 L2 段落、results.json和被引文献,投票satisfied或revise并给出具体修改意见。
五、三层质检 + PI 终审:论文为什么敢"交付"
写完报告不等于能结束。finish之前要过三道正交审查:
| 审查层 | 执行者 | 看什么 |
|---|---|---|
| 内容层 | reviewer(PI) | 像组会上的资深教授一样质疑结论,产出continue/steer/stop裁决到reviews/pi_feedback.md |
| 图内层 | illustrator | 单张 PNG 对照 12 项风格清单:可读性、遮挡、配色、裁切 |
| 版式层 | typesetter | 用pdftoppm逐页栅格化 PDF:图浮动距离、题注完整性、栏溢出、缺图红框 |
reviewer在给出任何stop之前必须跑完<figure_finalize_loop>:枚举report.tex里所有\includegraphics,逐个图派 illustrator 按report/figures/style_guide.md重生成,再派 typesetter 做全局版式审查,直到两份 notes 都报all-clear才放行。
上面两页截图就来自一次真实运行——图表由illustrator_write生成、版式由typesetter逐页审查,成品存放在 fixtures/claims-ppss/ 的报告目录中。
此外还有兜底机制:src/pi-agent.ts 的 PI 监控器会每 50 轮自动触发一次 reviewer 审查(防止 brain 忘了主动要审查);notes/plan.md中的每个### E_N实验承诺必须对应experiments.md里Status: Complete的 L2 记录,否则finish直接拒绝。
六、智能体即文件:改一个 .md 就是加一个智能体
新增智能体不需要改 TypeScript。往 src/agents/definitions/ 丢一个新.md,声明好字段即可:
name: tool_impl model: sonnet thinkingLevel: medium toolSets: [coding] templates: [PROJECT_DIR, EXPERIMENT_ID, TOOL_NAME] spawn: { enabled: false } safety: presets: [research_brief, report_surface, notes_ledger] allowedReadRoots: ["data/experiments/{{EXPERIMENT_ID}}"] writeOnExistingPolicy: block启动时validateSpawnGraph会自动校验派生图无环,新智能体立即对spawn_agent可见。模型也能整体切换:一个环境变量即可把 Claude 家族重定向到 DeepSeek-v4(约 10 倍便宜)或 Kimi,详见 README.md 的 "Switching Models" 一节。
七、新手上手:从安装到第一次 run
前置依赖:Node.js 22+、LaTeX(pdflatex+bibtex)、poppler、Python 3.10+(matplotlib/numpy)、tmux,以及ANTHROPIC_API_KEY。
git clone https://gitcode.com/gh_mirrors/lu/luxas.git && cd luxas npm install && npm link export ANTHROPIC_API_KEY="..." luxas init ~/research/x --prompt "Survey LLM chain-of-thought reasoning" luxas run ~/research/x --model opus luxas status ~/research/x一次完整运行约 $20–80(全 Claude 档)或 $2–10(--profile dual:DeepSeek 文本 + Kimi 视觉),实际消耗记录在项目目录下.agent/usage.log。
八、写在最后:为什么是 14 个而不是 1 个
Luxas 的回答很直白:让 brain 问自己"我做完了吗"是没用的。所以每个容易自欺欺安的环节都拆成了一个独立视角的代理——盲写实现、盲写测试、逐页看图的 typesetter、不见推理链只见产出的 PI。14 个智能体本质上是一套用结构对抗自圆其说的科研质检体系。
如果你想深入某个环节,可以从这些文件读起:
- 智能体注册与派生图校验:src/agents/registry.ts
- 模型路由与后台派生:src/agents/spawn.ts
- PI 审查监控:src/pi-agent.ts
- 安全预设:src/agents/safety-presets.ts
- 技能体系(搜索/绘图/版式/综述方法):skills/
【免费下载链接】luxas
An autonomous research colleague — from a question to a compiled manuscript, while you sleep.
相关推荐
AgentRT多智能体协作:一个主智能体如何编排多个子智能体并行拆分工作
AgentRT多智能体协作:一个主智能体如何编排多个子智能体并行拆分工作 AgentRT (极境智能体运行底座)是 Airymax 平台的 AI Agent R
人工智能AI Agent后端革命性AI科研智能体AutoSci:读论文、做实验、写论文的全生命周期自动化,一篇看懂
革命性AI科研智能体AutoSci:读论文、做实验、写论文的全生命周期自动化,一篇看懂 AutoSci 是一个由 Claude Code 驱动的 全生命周期 A
人工智能AI 技能/插件深度研究知识图谱MCP 服务OpenHarmony GitNext学术论文:科研论文的协作撰写
OpenHarmony GitNext学术论文:科研论文的协作撰写 痛点:学术协作的版本管理困境 你是否还在为科研论文的版本混乱而头疼?多人协作时,Word文档
开发工具版本控制CLI桌面应用OpenHarmony
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考