Skip to content

OpenNSWM-Lab/FAROS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FAROS

Foundation AutoResearch Operating System

Blueprint-driven AutoResearch runtime for the LLM domain today, extensible research workflows tomorrow.

FAROS-LLM 1.1.0-rc1 Python 3.11+ Node 18+ 10 passed LLM Research

Release Scope Β· Why FAROS Β· Workflow Β· Architecture Β· Quick Start Β· API Β· TODO


Important

FAROS is not a single hardcoded AI scientist agent. It is a research workflow runtime built around Blueprints, Capabilities, Profiles, and Providers.

This release ships the first runnable baseline: FAROS-LLM.

✨ Tagline

Define a research workflow. Bind a profile. Run an AutoResearch system.

idea -> experiment -> paper -> review

FAROS architecture overview


πŸ“¦ Release Scope

This repository is the current release candidate for the LLM-domain FAROS baseline. It is already a runnable AutoResearch runtime, but it is not yet the final cross-domain platform vision.

Included

  • FAROS runtime under backend/app/faros
  • Blueprint loading and profile loading
  • Capability and provider registries
  • File-backed run, event, artifact, and memory persistence
  • First blueprint: ml_paper
  • First profile: faros_llm
  • Complete LLM workflow: idea -> experiment -> paper -> review
  • Existing module-native APIs for idea, code, paper, review, platform
  • Venue-aware LaTeX paper generation

Not Yet Included

  • full DAG scheduling and parallel orchestration
  • generalized non-LLM provider ecosystem
  • full experiment execution and evaluation loop
  • FAROS frontend console
  • DB-backed FAROS runtime metadata
  • mature cross-domain blueprint library

πŸ€” Why FAROS

Most "AI scientist" systems are built as one fixed application with one workflow and one set of assumptions. FAROS takes a different approach: treat research automation as a runtime problem, not a single-agent prompt stack.

LayerResponsibility
BlueprintDefines the workflow graph, constraints, output contract, and validation requirements.
CapabilityImplements one executable research step such as idea refinement, experiment provisioning, paper drafting, or reviewer simulation.
ProfileBinds a blueprint to a concrete execution strategy.
ProviderSupplies the actual engine behind a capability, such as LLM, tool, API, or human review.

Note

In FAROS, LLM is only one provider class. This release ships FAROS-LLM, but the runtime is being shaped so future domains can plug in other providers without rewriting the core orchestration layer.


πŸš€ What Makes This Release Different

PrincipleHow This Release Applies It
Keep What WorksThe current `idea`, `code`, `paper`, `review`, and `platform` modules are reused through FAROS capability adapters instead of being replaced by a second parallel application.
Add a Runtime BoundaryNew orchestration logic lives under `backend/app/faros`, giving memory, verification, profiles, and providers a stable place to evolve.
Finish One Domain FirstThe first complete chain is the LLM research domain. Cross-domain abstraction comes after the first workflow is coherent and runnable.

πŸ”„ Current Workflow

The first FAROS blueprint is ml_paper.

StageCapabilityOutput
1idea_refinementIdea session, ranked candidates, selected candidate
2experimentCode project scaffold and experiment record for the LLM domain
3paper_draftingVenue-aware LaTeX project, PDF, and paper artifacts
4reviewer_simulationStructured review plus actionable follow-up items

Current Artifact Surface

Artifact TypeDescription
idea_sessionIdea generation session with ranked candidate outputs
code_projectProvisioned research code workspace for the experiment stage
experiment_recordExperiment metadata record for the LLM workflow
latex_projectPaper source bundle with venue-aware LaTeX assets
paper_pdfCompiled paper PDF or fallback rendered PDF
review_reportStructured review with action items

πŸ—οΈ Architecture

backend/app/
  faros/
    api/
    blueprints/
    capabilities/
    loaders/
    memory/
    models/
    profiles/
    providers/
    registry/
    runtime/
    verification/
  modules/
    idea/
    code/
    paper/
    review/
    platform/

Runtime Layers

AreaRole
FAROS RuntimeBlueprint loading, capability registry, profile binding, orchestrated execution, event logging, artifact persistence, research memory, and baseline verification
Domain ModulesReusable implementation surfaces for `idea`, `code`, `paper`, `review`, and `platform`

Execution Model

flowchart LR
    B[Blueprint] --> O[Orchestrator]
    P[Profile] --> O
    R[Provider Registry] --> O
    C[Capability Registry] --> O
    O --> I[idea_refinement]
    I --> E[experiment]
    E --> W[paper_drafting]
    W --> V[reviewer_simulation]
    O --> M[Research Memory]
    O --> A[Artifacts]
    O --> Q[Verification]
Loading

πŸ—‚οΈ Repository Layout

github-v1/
  backend/
    app/
      faros/
      modules/
      llm/
      db/
      storage/
    templates/latex/
    tests/
  frontend/
    src/
  docs/
    DEVELOPER_GUIDE.md
    FAROS_TODO.md

βš™οΈ Runtime Requirements

  • Python 3.11+ or 3.12
  • Node.js 18+
  • latexmk and pdflatex for venue-style PDF compilation
  • a configured LLM provider for real execution

Tip

The development environment used during this release cycle has been the conda environment aist.


πŸš€ Quick Start

Backend

cd backend
pip install -r requirements.txt
uvicorn app.main:app --host 127.0.0.1 --port 8005 --reload

Frontend

cd frontend
npm install
npm run dev

Useful Endpoints

EndpointPurpose
GET /api/system/healthBasic backend health
GET /api/system/versionRelease metadata
GET /api/docsOpenAPI docs
GET /api/faros/healthFAROS runtime health
GET /api/faros/blueprintsAvailable FAROS blueprints
GET /api/faros/profilesAvailable FAROS profiles

If needed, set VITE_API_BASE_URL for the frontend.


πŸ” Provider Configuration

The backend supports multiple providers, including minimax.

Configuration is loaded from:

  1. environment variables defined in backend/app/core/settings.py
  2. runtime settings persisted to backend/data/provider_config.json

Do not commit real API keys.


πŸ”Œ FAROS API

EndpointPurpose
GET /api/faros/healthRuntime health and asset counts
GET /api/faros/blueprintsList available blueprints
GET /api/faros/profilesList available profiles
GET /api/faros/capabilitiesList registered capabilities and providers
GET /api/faros/runsList FAROS runs
POST /api/faros/runsCreate a FAROS run
GET /api/faros/runs/{run_id}Inspect one FAROS run
GET /api/faros/runs/{run_id}/eventsInspect run events
GET /api/faros/runs/{run_id}/artifactsInspect run artifacts

Example: Plan-Only Run

curl -X POST http://127.0.0.1:8005/api/faros/runs   -H 'Content-Type: application/json'   -d '{
    "blueprintId": "ml_paper",
    "profileId": "faros_llm",
    "executionMode": "plan",
    "inputs": {
      "seedQuery": "Improve CPU efficiency in LLM workflows",
      "paperType": "system",
      "targetVenue": "generic"
    }
  }'

πŸ“ Paper Generation

Paper generation in this release uses real venue-aware LaTeX template assets.

TemplateDescription
icmlICML-style LaTeX template path
neuripsNeurIPS-style LaTeX template path
iclrICLR-style LaTeX template path
aclACL-style LaTeX template path
genericFallback generic template

Compilation prefers latexmk. If LaTeX compilation fails, the backend falls back to simplified PDF rendering so the workflow still yields a previewable artifact.


βœ… Verification

Release Checks

bash scripts/check_release.sh
bash backend/scripts/check_backend_release.sh
bash frontend/scripts/check_frontend_release.sh

Current Validation State

  • github-v1/backend/tests in aist: 10 passed
  • FAROS runtime routes mounted
  • plan-mode FAROS run creation verified
  • LLM-domain FAROS workflow skeleton wired through idea -> experiment -> paper -> review

🧱 Stable Surface In This Release

These parts should be treated as the release baseline:

AreaStability Statement
backend/app/faros/*Primary runtime surface for future FAROS work
Blueprint/Profile loadingStable release baseline
FAROS metadata APIStable release baseline
Plan-mode FAROS run creationStable release baseline
Provider settings pathStable release baseline
Paper generation pathStable release baseline
Review generation pathStable release baseline

πŸ“Œ Important TODO

The most important next steps after this release are:

  • replace the current experiment scaffold with true code synthesis and execution for the LLM domain
  • connect experiment outputs to metrics ingestion, figure generation, and run tracking
  • replace linear graph execution with a real DAG runtime
  • add stronger verification beyond required-key checks
  • add a dedicated FAROS frontend console
  • add provider inheritance policies instead of hardcoded profile defaults

See docs/FAROS_TODO.md for the detailed backlog.


πŸ› οΈ Development Notes

Use docs/DEVELOPER_GUIDE.md for module ownership, extension boundaries, and development conventions.

Current working rule:

  • extend FAROS under backend/app/faros
  • keep domain-specific logic inside backend/app/modules/*
  • avoid adding new business logic to legacy compatibility paths unless required for release stability

πŸ“ Project Status

This repository is the first FAROS release candidate. It is already usable as a runtime baseline for LLM-domain AutoResearch workflows, but it is still the beginning of the platform transition rather than the end state.

GitHub Stars

Star History Chart

Built with care for the research community.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors