Atlas Drug Discovery Pipeline¶
Legacy
Atlas is a legacy caller of the Graffold KG (via the /v1/atlas/*
endpoints). The supported interface is now the biot CLI.
This page is preserved for history.
Atlas is a 22-agent autonomous drug discovery pipeline. It takes a problem statement plus customer meeting notes and ships a certified partner-portal package.
Pipeline Overview¶
Intake → Pathfinder → Anomaly → Tribunal → Sapper → Sentinel →
Forge/Vulcan (parallel) → Sentinel Sweep → Apothecary → Surveyor →
Tribunal Revision → Reaper → Board → Anvil → Reporter → Ship
Stages¶
| # | Stage | Agent | Purpose |
|---|---|---|---|
| 1 | Disease Map | Pathfinder | Map complete pathology from entry to persistence |
| 1a | Anomaly Detection | Anomaly | Identify overlooked signals and contradictions |
| 1b | Bottleneck Consensus | Tribunal | 4-frame convergence on rate-limiting barrier |
| 2 | Failure Analysis | Sapper | Why current treatments fail |
| 2b | Competitive Landscape | Sentinel | Patent/trial landscape scan |
| 3 | Target Generation | Forge + Vulcan | Parallel: literature-aware + first-principles |
| 3c | IP Sweep | Sentinel | Freedom-to-operate check per target |
| 3d | Formulation | Apothecary | Delivery and formulation design |
| 3e | Structure + Binders | Surveyor | AF3 structure prediction, antibody design |
| 3f | Target Revision | Tribunal | Merge Forge/Vulcan streams, resolve conflicts |
| 4 | Kill Decisions | Reaper | Eliminate weak/undruggable targets |
| 4b | Portfolio Ranking | Board | Rank surviving candidates |
| 5 | Evidence Gate | Anvil | Final evidence standard enforcement |
| post | Reporting | Reporter | Generate partner-facing package |
Graffold Integration Points¶
Each stage has specific integration hooks with the knowledge graph:
| Stage | Graffold Call | Purpose |
|---|---|---|
| Intake | coverage() |
Decide KG-first vs full pipeline |
| Forge | validate_targets() |
GNN validation of proposed targets |
| Forge | evidence_for_claim() |
Evidence ranking for target claims |
| Vulcan | search_drift() |
Multi-hop mechanism discovery |
| Reaper | similar_decisions() |
Learn from past kill decisions |
| Reaper | search_contradictions() |
Find conflicting evidence |
| Anvil | evidence_for_claim() |
Final evidence gate check |
| Reporter | record_decision() |
Store decision trace for learning |
| Post-run | ingest() |
Publish all discovered entities to KG |
How Atlas Calls Graffold¶
from sdk.graffold_client import AsyncGraffoldClient
async with AsyncGraffoldClient("http://graffold-api:8000", token="...") as kg:
# At Intake: should we even run Discovery?
coverage = await kg.coverage(["target-A", "target-B", "compound-X"])
if coverage["coverage"] > 0.7:
# Fast path — retrieve from KG
context = await kg.retrieve("mechanism of target-A in disease-X")
return context # Skip $5-15 full pipeline
# At Forge: validate proposed targets
validation = await kg.validate_targets([
{"id": "P04637", "name": "TP53", "type": "PROTEIN"},
])
# validation.rejected → flag as hallucination
# At Reaper: learn from past kills
past = await kg.similar_decisions("Kill KRAS G12C for PDAC?")
# past → [{query, outcome: "killed", reasoning: "..."}]
# Post-run: publish all entities discovered
await kg.ingest(
entities=all_discovered_entities,
relationships=all_discovered_relationships,
)
Pipeline Configuration¶
Atlas uses a declarative pipeline.json that defines stage ordering, required inputs/outputs, and panel configurations:
{
"program_pipeline": {
"stages": [
{
"key": "pathfinder",
"label": "1",
"agent": "pathfinder",
"required_inputs": [],
"required_outputs": ["phase-1-disease-map.md"],
"panel": {
"mode": "phase",
"prompt_block": "PHASE_1_PATHFINDER"
}
},
{
"key": "forge_vulcan",
"label": "3",
"parallel": true,
"members": ["forge", "vulcan"]
}
]
}
}
Multi-Model Panel System¶
At every phase, a 5-model external panel (Gemini Pro, GPT-5.5, Grok 4, DeepSeek R1, Qwen 2.5) independently contributes perspectives. This gives each agent 7 viewpoints (1 internal + 6 external) and catches blind spots.
Key Design Principles¶
- Multi-agent bottleneck consensus — 4 independent frames converge before any treatment is proposed
- Dual-stream bias firewall — Forge (literature) and Vulcan (first-principles) never see each other's work
- Deep target decomposition — ALL molecular intervention points identified per target
- Novel drug targets preferred — Novel molecular targets with clean IP beat feed additives
- Early termination — Tribunal can recommend closing if 3+/4 frames agree problem is unsolvable
- Quarantine enforcement — Vulcan sees ONLY the disease map; isolation walls enforced at each boundary
Running Atlas¶
bin/atlas run <program-name> \
--input "<prompt or path to meeting notes>" \
--problem-id <portal-problem-uuid> \
--modality agnostic # or: peptide, probiotic, botanical, small-molecule
Cost: $5-15 per full run (13 Discovery phases × panel calls + Audit + Argus) Time: 30-60 minutes for a complete run
Outputs¶
programs/<name>/
├── brief.md # Intake output
├── v1/
│ ├── phase-1-disease-map.md # Pathfinder
│ ├── phase-1a-anomaly-map.md # Anomaly
│ ├── phase-1b-bottleneck-consensus.md
│ ├── phase-2-failure-analysis.md # Sapper
│ ├── phase-3-targets-forge.md # Forge
│ ├── phase-3-targets-vulcan.md # Vulcan (quarantined)
│ ├── phase-4-reaper-kills.md # Kill decisions
│ ├── phase-4b-board-ranking.md # Portfolio ranking
│ ├── phase-5-anvil-gate.md # Evidence gate
│ ├── qc-report.md # Audit verdict
│ └── run-report.md # Reporter output
├── run-state.json # Resume state
└── SHIPPED # Success marker
Environment Variables¶
| Variable | Required | Description |
|---|---|---|
OPENROUTER_API_KEY |
Yes | Panel system (5-model consensus) |
claude CLI |
Yes | Agent dispatch |
GRAFFOLD_API_URL |
No | Knowledge graph integration |
GRAFFOLD_API_TOKEN |
No | KG auth token |
ATLAS_PANEL_VALIDATOR |
No | Enable panel output validation (+$3-12/run) |
NCBI_API_KEY |
No | Faster PubMed citation verification |