这份文档是 FAROS 当前发布基线的开发手册。
它面向两类人:
- 维护 FAROS 基座框架的开发者
- 在 FAROS 之上继续优化
idea / experiment / paper / review / platform子模块的开发者
它不是产品宣传文档,也不是研究方案文档。 它的目标是回答下面这些工程问题:
- 当前仓库哪些部分属于稳定发布面,哪些属于内部实现面。
- 后续开发应该改哪里,不应该改哪里。
- FAROS 基座和具体 LLM 领域模块之间的职责边界是什么。
- 多人并行开发时,如何避免互相污染接口和运行时行为。
- 当前版本上线后,后续迭代应该遵守哪些约束。
当前发布目录是一个 FAROS RC 基线,不是最终形态的通用 AutoResearch 平台。
当前发布已经具备:
- FAROS runtime
- blueprint / profile / agent / skill / verifier / provider 抽象
- package lifecycle 基础治理
- mixed-provider 执行路径
- memory / artifact / verification / checkpoint 基础层
- 一个完整参考链路:
idea -> experiment -> paper -> review
当前发布还不代表:
- 全学科可复用的成熟平台
- 分布式 worker 系统
- 完整的 DAG 调度引擎
- 成熟的多租户平台
- 已完成效果优化的科研自动化系统
所以后续开发的原则是:
- 先保护基座,再优化模块
- 先保证接口稳定,再扩功能
- 先维护运行时一致性,再做局部效果增强
路径:backend/app/faros/
这一层是 FAROS 的核心运行时。
它负责:
- blueprint 加载与校验
- profile 加载与校验
- agent / skill / verifier / provider registry
- capability adapter 执行入口
- orchestrator 调度
- run / step 状态持久化
- event / artifact / memory / checkpoint
- verification dispatch
- package lifecycle / trust / compatibility / rollback
- FAROS API
这一层是后续平台化演进的中心。
路径:
backend/app/modules/ideabackend/app/modules/codebackend/app/modules/paperbackend/app/modules/reviewbackend/app/modules/platform
这一层提供当前 LLM 领域的实际业务实现。
职责是:
- 保留已存在的业务逻辑
- 暴露相对稳定的模块接口
- 被 FAROS capability adapter 调用
- 支撑当前前端和模块原生 API
这层不是基座调度器,不应该反向长出全局 runtime 逻辑。
路径:
backend/app/api/v1/*backend/app/services/*
当前状态:
- 仍有历史兼容价值
- 但不是新架构的首选扩展面
原则:
- 不要再往这层增加新的主业务逻辑
- 如果必须修改,应以兼容和收口为目标,而不是继续扩散
路径:frontend/src/
当前前端的角色:
- 提供模块级工作台
- 提供 Settings / Providers / Runs / Papers 等现有视图
- 逐步向 FAROS runtime console 靠拢
当前前端还不是完整的 FAROS runtime console。 因此,后续前端开发应当:
- 尽量围绕稳定 API 构建
- 减少对模块私有细节的耦合
- 逐步提升对 FAROS runtime 运行态的可视化能力
这些对象现在应被视为 FAROS 发布面的核心契约:
BlueprintProfileAgentSpecSkillSpecVerifierPackageSpecProviderDescriptorProviderHealthExecutionContextFarosRunRecordStepStateVerificationSuiteResultVerifierPackDescriptor
原则:
- 后续可以扩字段
- 不应随意更改已对外暴露字段的语义
- 如果要改语义,应先走兼容设计,而不是直接覆盖
当前可作为稳定面使用的 API 类别包括:
- FAROS health / metadata
- blueprints / profiles / providers / verifiers / artifacts 查询
- package validate / install / refresh / uninstall / rollback / trust / dependency / audit
- run create / preflight / resume / retry / skip / replay / detail
- memory query / recall
原则:
- 新能力尽量在 FAROS API 下继续长
- 不要把新平台能力继续堆回旧
api/v1路由
以下模块当前不应当被其他人当成稳定 contract:
orchestrator.pystate_store.pyevent_log.pyartifact_store.pypackage_audit.pyexternal_backend.pypackage_compatibility.pypackage_trust.py
这些模块可以继续演进,但要保证外部稳定接口不随意变化。
下面这些内容应该进入 backend/app/faros/:
- workflow 调度逻辑
- provider 绑定逻辑
- memory / artifact / verification 公共层
- package lifecycle
- runtime 状态机
- checkpoint / retry / replay / resume
- blueprint / profile / agent / skill / verifier 相关平台能力
下面这些内容不应该直接写进 faros/:
- idea 内部 prompt 细节
- paper 具体段落生成实现细节
- review 模块自己的输出格式细节
- code/experiment 内部仓库规划实现细节
这些逻辑应该留在各自领域模块中,通过 adapter 接进 FAROS。
如果 FAROS 需要复用某个模块能力:
- 实际业务逻辑留在模块内。
- 在
faros/capabilities/adapters/中封装调用。 - 输出统一的
CapabilityResult。 - 不要把模块业务逻辑复制进 FAROS runtime。
拥有:
- idea session
- candidate generation
- ranking / selection
- literature 相关结构化结果
后续适合优化:
- literature grounding
- gap extraction
- candidate traceability
- 多评审打分
- 下游 experiment 可消费的结构化输出
禁止:
- 在这里写全局 runtime 状态
- 在这里写 provider 调度策略
- 在这里管理跨模块 memory
当前语义上,LLM 领域仍然依赖 code 模块来支撑 experiment 能力。
对外描述时应优先使用 experiment,实现上仍允许复用 code。
拥有:
- code sessions
- code projects
- experiment scaffold
- repo/context 浏览能力
后续适合优化:
- 真正的 experiment design
- repo understanding
- greenfield project generation
- execution spec / run spec
- metrics / figure / artifact linkage
禁止:
- 在这里写全局 run 状态机
- 在这里写 package lifecycle
- 在这里写跨 capability provider 策略
拥有:
- paper records
- paper context linkage
- LaTeX assembly
- venue-aware PDF 生成
后续适合优化:
- stronger evidence grounding
- claim-to-evidence binding
- citation verification
- methods/experiments consistency
- richer artifact packaging
禁止:
- 在这里写通用 verification framework
- 在这里写 runtime memory 合并逻辑
拥有:
- review records
- review generation
- action item extraction
- follow-up requests
后续适合优化:
- review schema refinement
- idea/paper/experiment 分轨 review
- severity normalization
- automated improvement requests
禁止:
- 在这里写 run recovery 策略
- 在这里写 provider fallback 策略
拥有:
- shared provider settings
- runs / experiments / templates / shared storage facade
- system-level cross-module endpoints
后续适合优化:
- provider lifecycle
- shared storage normalization
- experiment/runs infrastructure
- template distribution
禁止:
- 把任何“多个模块都碰过一次”的逻辑都丢进 platform
当前 FAROS 已经支持四类 package:
blueprintagentskillverifier
这些 package 已经具备:
- validate
- install
- refresh
- uninstall
- rollback
- audit
- trust
- compatibility
后续开发原则:
- 新的扩展尽量走 package 化,而不是直接改核心代码。
- package 的 metadata、integrity、signature 要保持一致策略。
- 不要在 release 分支里引入“动态执行不受信任 Python 代码”的设计。
- package 的兼容性规则必须先设计,再增加安装入口。
当前 provider 类型:
llmtoolexecutionhuman
当前 backend 模式:
fileworkspace_filecommandqueue_fileapproval_fileapproval_queue
开发原则:
- provider contract 先扩接口,再接具体后端。
- 非 LLM provider 的真实执行路径,应优先走 provider-owned execution。
- 如果新增 worker/queue/approval 能力,先保持协议简单、可观测、可回放。
- 所有新 backend 都应该能通过 run detail / events / checkpoint 被观察到。
当前 memory 已支持:
- data
- summary
- scopes
- history
- archives
- query
- recall
后续原则:
- memory 结构必须可解释
- 不要退化回一个大字典
- archive 和 active memory 要分清
- capability 消费 memory 时优先走明确 scope
当前 artifact 已有 registry 和 contract。
后续原则:
- 所有重要跨阶段结果尽量显式 artifact 化
- 先定义 artifact schema,再接运行时生产逻辑
- 不要靠自由文本跨阶段传递关键结构
当前 verification 已支持:
- registry
- packs
- node-level plugin verifier
- verifier package lifecycle
后续原则:
- verification 先做结构化,再做智能化
- 新 verifier 优先声明式、可组合
- 不要把质量控制写成某个模块私有 prompt
后端:
backend/scripts/smoke_runtime_surface.shbackend/scripts/smoke_package_governance.shbackend/scripts/smoke_external_backends.shbackend/scripts/check_backend_launch.sh
顶层:
scripts/check_launch.shscripts/check_release.sh
原则:
- 改 FAROS runtime 的 PR,至少要能通过相关 smoke
- 改 package/provider/verification/runtime recovery 相关逻辑时,不允许跳过 targeted smoke
当前 RC 仍接受的 residual:
httpx TestClientdeprecation warning- npm dependency / audit noise
它们当前不构成上线阻塞,但必须在文档中保持可见。
推荐按下面分工:
- 基座组:
faros/runtime,faros/registry,faros/providers,faros/verification,faros/memory - idea 组:
modules/idea+ 对应 FAROS adapter - experiment 组:
modules/code/ experiment adapter / runs linkage - paper 组:
modules/paper/ latex / evidence grounding - review 组:
modules/review/ verifier policy packs - frontend 组:
frontend/src+ FAROS runtime console 能力
并行开发规则:
- 先确认修改的是稳定面还是内部面。
- 改稳定面前,先补兼容设计。
- 子模块不要直接篡改全局 runtime 语义。
- 新能力若跨越多个模块,优先先立 contract 再分工。
当前 FAROS 已进入“可上线候选”阶段。 因此开发优先级必须是:
- 保护基座稳定性
- 保证接口可持续
- 控制架构扩散
- 再做模块效果优化
一句话总结:
把 FAROS 当成运行时平台维护,而不是继续当成一个单体 LLM 科研应用去堆功能。