☰
Luxas 14个智能体全解析:brain加13个子代理如何分工协作写出一篇科研论文
2026/10/14 17:47:00 网站建设 项目流程

【免费下载链接】luxas

An autonomous research colleague — from a question to a compiled manuscript, while you sleep.

项目地址:https://gitcode.com/gh_mirrors/lu/luxas
点击查看免费下载

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 组:

智能体模型一句话角色
brainOpus (high)总指挥:拆解任务、编排流程、写报告、回应 PI 反馈
searchSonnet文献侦察兵:OpenAlex/arXiv/CrossRef/引文链/付费墙浏览器
readerHaiku单篇论文精读:抽取成notes/literature.d/<paper>.md片段
workerSonnet轻量并行工人:批量下载、文件操作
experimentOpus (high)实验编排者:三阶段 Design → Impl+Review → Integrate,自己不写代码
tool_implSonnet只写实现脚本,看不到测试
tool_reviewSonnet只写 pytest 测试,看不到实现,且每个工具至少 1 条对抗性测试
experiment_reviewerOpus (medium)实验完成后自动触发的对抗式复盘,投票satisfied/revise
mathOpenAI o3符号推导与解析验证,可调用 Wolfram Engine
illustratorSonnet (high)图表内部审查 + 混合管线(Gemini 图像 + TikZ)重生成
illustrator_writeSonnet (medium)领域感知的绘图脚本初稿作者
typesetterSonnet (medium)文档级版式审查:逐页栅格化 PDF 检查浮动、溢出、缺图红框
reviewerOpus (medium)对抗式 PI( Principal Investigator),任何stop之前必须先跑图表终结循环
fixerHaiku (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 继续干活,完成后回收结果

几个关键设计:

  1. 派生深度封顶 2(MAX_SPAWN_DEPTH,定义在 src/agents/spawn.ts),防止智能体无限套娃
  2. 启动时做环检测:validateSpawnGraph在 src/agents/registry.ts 中对allowedTypes边做 DFS,声明出环直接抛错
  3. 安全域按文件声明:每个.md的safety字段(allowedReadRoots、allowedWriteRoots、writeOnExistingPolicy)被编译成运行时工具守卫,提示词里怎么求情都没用

四、实验流水线:盲写代码 + 对抗测试的"独立作者模式"

这是 Luxas 最精巧的部分。experiment智能体接到任务后分三阶段:

  1. Design——列出每个需要的工具:名称、用途、输入/输出形状
  2. Impl + Review——对每个工具,并行派生tool_impl(写scripts/<tool>.py)和tool_review(写tests/test_<tool>.py),两者都只看描述、互相看不到对方的代码。pytest 是唯一裁判;失败信息回传tool_impl修复(上限 3 轮)
  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.

项目地址:https://gitcode.com/gh_mirrors/lu/luxas
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询