Agentora is a local-first, private-by-default, memory-aware agent operating studio for chat, team orchestration, safe actions, and workflows.
- Local runtime: Streamlit + FastAPI with SQLite persistence.
- Memory-aware execution: retrieval, contexts, lineage, duplicates/conflicts, maintenance visibility.
- Team-capable orchestration: plans, subgoals, handoffs, collaboration traces.
- Safe action system: approval-gated desktop/browser actions with policy/allowlist guardrails.
- Workflow + Operator Mode: run, replay, pause/resume/advance/retry/skip.
- Optional worker assist: offload path with graceful fallback when worker is unavailable.
- Copy
.env.exampleto.env. - Keep mock defaults for first launch (
AGENTORA_USE_MOCK_OLLAMA=true). - Start Agentora:
- Windows:
launch_agentora.batorlaunch_agentora.ps1 - macOS/Linux: manual commands below
- Windows:
- Open Streamlit and verify
System Version+System Doctorpanels.
python -m pip install -r requirements.txt
uvicorn app.main:app --app-dir server --host 127.0.0.1 --port 8088Second terminal:
AGENTORA_STREAMLIT_MODE=http AGENTORA_API_URL=http://127.0.0.1:8088 streamlit run app.py- One PC (recommended): local API + local Streamlit.
- Two PC (optional): add worker-assist node for distributed execution. See docs/two-pc-setup.md.
- Core run lifecycle
- Memory inspector + retrieval endpoints
- Team planning/handoffs/collaboration traces
- Action approvals/history
- Workflow run/replay
- Operator run control APIs
- Cosmos / Open Cosmos / Garden / World Garden remain optional and labeled accordingly.
system: health/version/doctor/bootstrapruns: run lifecycle, traces, team/collaboration viewsactions: pending queue, approve/deny, historyworkflows: create/run/replay historyoperator: run controls and operator historymemory: retrieval, contexts, lineage, maintenanceworkers: register/heartbeat/dispatch/job status
- Streamlit: primary operator UI
- FastAPI: orchestration and runtime APIs
- SQLModel/SQLite: local data storage by default
- Ollama: optional local model runtime (mock-friendly startup)
- Worker queue: optional offload/fallback execution
- Placeholder hero asset:
docs/hero-soul-arena.svg - Capture environment-specific local screenshots for release/demo artifacts.
- Some advanced actions depend on local desktop/browser capability availability.
- Worker mode requires configured/reachable worker URLs.
- Optional modules (Cosmos/Garden family) are not required for core GA operation.
- docs/quickstart.md
- docs/operator-mode.md
- docs/two-pc-setup.md
- docs/troubleshooting.md
- docs/release-history.md
- CHANGELOG.md
- RELEASE_NOTES.md
- DEPLOYMENT.md
Agentora now includes an optional thin integration bridge:
- PhiOS owns identity/persona + memory context packs and writeback.
- Agentora owns the operator workflow and observability surface.
- AgentCeption owns software execution (dispatch/job/worktree/PR path).
AGENTORA_PHIOS_ENABLED=false
AGENTORA_PHIOS_URL=http://127.0.0.1:8090
AGENTORA_PHIOS_API_KEY=
AGENTORA_PHIOS_TIMEOUT_SECONDS=20
AGENTORA_AGENTCEPTION_ENABLED=false
AGENTORA_AGENTCEPTION_URL=http://127.0.0.1:1337
AGENTORA_AGENTCEPTION_API_KEY=
AGENTORA_AGENTCEPTION_TIMEOUT_SECONDS=45
AGENTORA_INTEGRATIONS_MOCK=falseSet AGENTORA_INTEGRATIONS_MOCK=true to test full operator flow without PhiOS/AgentCeption running.
Point Agentora to local services:
AGENTORA_PHIOS_ENABLED=true
AGENTORA_PHIOS_URL=http://127.0.0.1:8090
AGENTORA_AGENTCEPTION_ENABLED=true
AGENTORA_AGENTCEPTION_URL=http://127.0.0.1:1337If external systems require keys, set AGENTORA_PHIOS_API_KEY and/or AGENTORA_AGENTCEPTION_API_KEY.
sequenceDiagram
participant Op as Operator (Streamlit)
participant A as Agentora API
participant P as PhiOS
participant C as AgentCeption
Op->>A: Launch Software Mission
A->>P: context-pack(persona, task, repo, objective)
P-->>A: persona + memory snippets + session_id
A->>C: launch(job payload)
C-->>A: job_id + queued status
Op->>A: refresh run status
A->>C: get job status
C-->>A: phase/status/summary/PR
Op->>A: writeback run outcome
A->>P: memory/write(summary, details)
- Endpoint contracts are intentionally thin and may need alignment with final PhiOS/AgentCeption schemas.
- Polling is operator-triggered (
refresh) rather than full background workers. - Writeback currently stores concise summary + raw payload snapshot for traceability.
Phase C upgrades the bridge into a structured mission loop:
- Pre-run PhiOS injection via mission context packet preparation.
- Structured AgentCeption launch enrichment mapped from PhiOS packet fields.
- Structured post-run outcome normalization in Agentora.
- Structured PhiOS writeback with status, branch, PR/issues/artifacts, and follow-ups.
- Mission history visibility in Streamlit and integration run APIs.
sequenceDiagram
participant Op as Operator
participant A as Agentora
participant P as PhiOS
participant C as AgentCeption
Op->>A: Prepare Mission Context
A->>P: mission/context-pack (or context/pack)
P-->>A: MissionContextPacket
Op->>A: Launch Mission
A->>C: dispatch/launch (enriched payload)
C-->>A: job_id + launch status
Op->>A: Refresh Mission
A->>C: jobs/{job_id}
C-->>A: status/phase/branch/pr/issues/artifacts
Op->>A: Write Back to PhiOS
A->>P: mission/writeback (or memory/write)
AGENTORA_INTEGRATIONS_MOCK=true
AGENTORA_PHIOS_ENABLED=false
AGENTORA_AGENTCEPTION_ENABLED=false
uvicorn app.main:app --app-dir server --host 127.0.0.1 --port 8088
AGENTORA_STREAMLIT_MODE=http AGENTORA_API_URL=http://127.0.0.1:8088 streamlit run app.pyThen open Software Missions and use: Prepare Mission Context → Launch Mission → Refresh Status → Write Back to PhiOS.
- AgentCeption and PhiOS endpoint fields are normalized defensively and may require schema alignment with live deployments.
- Refresh is operator-triggered (no background poll worker yet).
- Writeback is manual by default to avoid repeated auto-writeback spam.
Phase D makes Software Missions durable and operator-friendly with optional background automation.
- Background mission watcher (env-gated): periodically refreshes active runs.
- Debounced auto-writeback policy (env-gated): prevents repeated duplicate PhiOS writebacks.
- Mission history filters and compare: status/repo/persona/writeback/search filtering + side-by-side compare.
- Optional MCP mission operations exposure (env-gated) for external clients.
AGENTORA_MISSIONS_WATCHER_ENABLED=false
AGENTORA_MISSIONS_WATCHER_INTERVAL_SECONDS=20
AGENTORA_MISSIONS_WATCHER_MAX_ACTIVE_RUNS=25
AGENTORA_MISSIONS_AUTO_WRITEBACK=false
AGENTORA_MISSIONS_WRITEBACK_DEBOUNCE_SECONDS=300
AGENTORA_MISSIONS_MCP_ENABLED=falsePrepare -> Launch -> Watch/Refresh -> Writeback -> Review/Compare
When AGENTORA_MISSIONS_MCP_ENABLED=true, Agentora exposes mission operations via:
GET /api/integrations/mcp/capabilitiesPOST /api/integrations/mcp/call
Supported MCP tool names:
prepare_missionlaunch_missionrefresh_missionwriteback_missionget_missionlist_missionsget_mission_timeline
- Watcher is intentionally lightweight for single-process local use.
- Auto-writeback is conservative and debounced; manual writeback remains primary for operator control.
- MCP exposure is an HTTP-backed extension point (not a full separate MCP server runtime yet).
Phase E adds observability, trust, and mission intelligence to the existing mission loop.
- Watcher telemetry and recent watcher event inspection.
- Structured run compare diffs with interpretation and delta sections.
- Heuristic mission evaluation signals (score/confidence/readiness/risk) persisted on each run.
- Richer timeline events including watcher refresh and writeback lifecycle events.
- MCP policy hardening with optional API key, read-only mode, and allowed-tool filtering.
- Aggregate mission insights for operators.
GET /api/integrations/metricsGET /api/integrations/watcher/eventsGET /api/integrations/insightsGET /api/integrations/runs/compare?left_run_id=...&right_run_id=...(structured diff)
AGENTORA_MISSIONS_MCP_API_KEY=
AGENTORA_MISSIONS_MCP_READ_ONLY=false
AGENTORA_MISSIONS_MCP_ALLOWED_TOOLS=Mission score and confidence fields are heuristic operator aids, not objective truth. They summarize observable mission artifacts and state transitions to help triage and decision-making.
AGENTORA_INTEGRATIONS_MOCK=true
AGENTORA_MISSIONS_WATCHER_ENABLED=true
AGENTORA_MISSIONS_AUTO_WRITEBACK=true
uvicorn app.main:app --app-dir server --host 127.0.0.1 --port 8088
AGENTORA_STREAMLIT_MODE=http AGENTORA_API_URL=http://127.0.0.1:8088 streamlit run app.pyPhase F extends mission observability into mission intelligence and portability.
- Event retention/compaction controls with TTL and per-run caps.
- Mission export/import with versioned JSON schema.
- Optional alert hooks for terminal state, writeback failure, and high-risk signals.
- Cohort analysis routes for grouped mission intelligence.
- Weighted compare severity output (
none/low/medium/high/critical). - Heuristic calibration through env-tunable scoring thresholds.
- Snapshot route for replay-oriented inspection prep.
AGENTORA_MISSIONS_EVENTS_TTL_DAYS=30
AGENTORA_MISSIONS_EVENTS_MAX_PER_RUN=200
AGENTORA_MISSIONS_COMPACTION_ENABLED=false
AGENTORA_MISSIONS_COMPACTION_INTERVAL_SECONDS=600
AGENTORA_MISSIONS_ALERTS_ENABLED=false
AGENTORA_MISSIONS_ALERTS_WEBHOOK_URL=
AGENTORA_MISSIONS_ALERTS_ON_TERMINAL=true
AGENTORA_MISSIONS_ALERTS_ON_WRITEBACK_FAILURE=true
AGENTORA_MISSIONS_ALERTS_ON_HIGH_RISK=true
AGENTORA_MISSIONS_SCORE_PR_BONUS=25
AGENTORA_MISSIONS_SCORE_TERMINAL_SUCCESS_BONUS=30
AGENTORA_MISSIONS_SCORE_WRITEBACK_SUCCESS_BONUS=10
AGENTORA_MISSIONS_SCORE_FAILURE_PENALTY=20
AGENTORA_MISSIONS_SCORE_SUMMARY_MIN_LENGTH=80
AGENTORA_MISSIONS_RISK_THRESHOLD_HIGH=2
AGENTORA_MISSIONS_CONFIDENCE_THRESHOLD_HIGH=75
AGENTORA_MISSIONS_CONFIDENCE_THRESHOLD_MEDIUM=45GET /api/integrations/retentionPOST /api/integrations/retention/compactGET /api/integrations/exportPOST /api/integrations/importGET /api/integrations/alerts/eventsGET /api/integrations/cohortsGET /api/integrations/cohorts/summaryGET /api/integrations/runs/{run_id}/snapshot
- Export format is
schema_version=mission-export-v1JSON. - Import validates schema version and skips existing IDs where possible.
- Import is additive/non-destructive by default.
Mission score, confidence, and compare severity are operator-facing heuristics, not objective truth.
Phase G introduces branching/replay primitives with immutable provenance and lineage-aware operations.
- Snapshot-based replay draft creation and launch-from-draft workflows.
- Immutable provenance lineage fields (
parent_run_id,root_run_id,lineage_depth, source snapshot hash, replay metadata). - Snapshot hash generation for integrity/provenance validation.
- Lineage and provenance APIs for ancestry/descendant views.
- Replay-aware compare context integrated with existing diff/severity model.
- Optional export signing support (HMAC) for bundle integrity checks.
AGENTORA_MISSIONS_REPLAY_ENABLED=true
AGENTORA_MISSIONS_REPLAY_ALLOW_REPO_CHANGE=false
AGENTORA_MISSIONS_REPLAY_MAX_LINEAGE_DEPTH=20
AGENTORA_MISSIONS_REPLAY_REQUIRE_PROVENANCE_NOTE=false
AGENTORA_MISSIONS_SIGN_EXPORTS=false
AGENTORA_MISSIONS_EXPORT_SIGNING_KEY=POST /api/integrations/runs/{run_id}/forkPOST /api/integrations/runs/{run_id}/replayPOST /api/integrations/runs/{run_id}/launch-from-draftGET /api/integrations/runs/{run_id}/lineageGET /api/integrations/lineage/{root_run_id}GET /api/integrations/runs/{run_id}/provenance
Original Run -> Snapshot -> Fork Draft -> Replay Launch -> Lineage Compare
Immutable provenance fields are preserved across forks/replays:
- source snapshot hash
- parent/root linkage
- lineage depth
- immutable origin created timestamp
Mutable replay draft fields:
- mission title
- objective
- operator intent
- acceptance criteria
- constraints
- persona
- dry_run
- repo only when policy allows
- Replay launch currently creates a new launched run from draft state (draft remains a historical artifact).
- Export signatures are optional local integrity hints, not external trust attestations.
Phase H adds lineage-aware branch-set planning for comparative mission execution under one root objective.
- Branch-set metadata on each run (
branch_set_id,branch_label,branch_strategy,decision_status,shortlisted,eliminated,branch_order,decision_note). - Central strategy presets for sibling planning:
conservative_fixaggressive_refactorminimal_patchpersona_swaprecovery_branchconstraint_relaxationconstraint_tighteningexploratory_branch
- Bulk branch draft creation from one source run (with optional launch of selected branches).
- Root-level portfolio comparison and heuristic shortlist/elimination suggestions.
- Root-level decision summaries for operator review.
GET /api/integrations/branch-strategiesPOST /api/integrations/runs/{run_id}/branch-setGET /api/integrations/runs/{run_id}/portfolioGET /api/integrations/lineage/{root_run_id}/portfolioGET /api/integrations/lineage/{root_run_id}/decision-summaryPOST /api/integrations/runs/{run_id}/shortlistPOST /api/integrations/runs/{run_id}/eliminate
Root Mission -> Snapshot -> Branch Set -> Sibling Branches -> Portfolio Compare -> Decision Summary
Portfolio ranking and recommendations are operator aids, not objective truth. Always validate recommendation outputs against provenance, risk, and mission intent.
- Launch a root mission from Software Missions.
- Open Branch Set Planning (Phase H) and select strategy presets.
- Create branch drafts (optionally launch selected branches).
- Review Portfolio / Decision Summary.
- Mark branches as shortlist/eliminate and compare chosen runs.
Phase I introduces persona-aware branch orchestration so sibling branches can be deliberately assigned and compared by persona strategy.
- Persona assignment metadata per branch (
assigned_persona_id,assigned_persona_name,assigned_persona_role,persona_strategy_overlay, assignment reason). - Operator override metadata kept separate from heuristic recommendations (
operator_override_status,operator_override_note,recommendation_state). - Central persona strategy overlays (e.g.,
skeptic_reviewer,architect_refactorer,conservative_stabilizer,rapid_builder). - Persona-aware bulk branch set creation from one root run.
- Persona portfolio and persona performance summary APIs.
- Operator accept/reject/manual override controls with visible notes.
GET /api/integrations/personasGET /api/integrations/personas/{persona_id}GET /api/integrations/persona-overlaysPOST /api/integrations/runs/{run_id}/persona-branch-setGET /api/integrations/lineage/{root_run_id}/persona-portfolioPOST /api/integrations/runs/{run_id}/overrideGET /api/integrations/lineage/{root_run_id}/persona-summaryGET /api/integrations/persona-insights
Root Mission -> Branch Set -> Persona Branches -> Portfolio Compare -> Operator Override -> Next Decision
Persona recommendations are heuristic operator aids. They are not objective truth and should be reviewed with provenance, risk posture, and mission intent.
- Create a root mission in Software Missions.
- Use Persona Branch Planning (Phase I) to assign sibling branches to personas/overlays.
- Open persona portfolio + persona summary panels.
- Apply override actions (
accept,reject,manual) with rationale. - Use persona insights to inspect score/risk/PR/writeback trends.
Phase J adds cross-root persona intelligence and first-class operator decision auditability.
- Persisted operator decision events (
recommendation_accepted,recommendation_rejected,shortlist_applied,eliminate_applied,override_applied,override_removed,persona_assignment_changed,policy_blocked_action). - Persona-delta compare view with compact field deltas and heuristic interpretation notes.
- Cross-root persona trends (7d/30d/all) with filters and metrics.
- Persona × strategy matrix analytics for score/risk/shortlist/PR/override behavior.
- Optional persona policy hooks (dual review, exploratory block on high risk, override rationale requirement, conservative-branch requirement).
- Audit-focused timeline integration so operator-vs-system decisions are visible.
GET /api/integrations/runs/{run_id}/decision-eventsGET /api/integrations/runs/{run_id}/persona-compareGET /api/integrations/persona-trendsGET /api/integrations/persona-trends/matrixPOST /api/integrations/runs/{run_id}/policy-checkGET /api/integrations/runs/{run_id}/audit-summaryGET /api/integrations/lineage/{root_run_id}/decision-audit
AGENTORA_PERSONA_POLICY_ENABLED=false
AGENTORA_PERSONA_POLICY_REQUIRE_DUAL_REVIEW_ON_HIGH_RISK=false
AGENTORA_PERSONA_POLICY_BLOCK_EXPLORATORY_ON_HIGH_RISK=false
AGENTORA_PERSONA_POLICY_REQUIRE_OVERRIDE_REASON=true
AGENTORA_PERSONA_POLICY_REQUIRE_CONSERVATIVE_BRANCH_ON_HIGH_RISK=falseRoot Mission -> Persona Branches -> Recommendation -> Operator Decision -> Audit Trail -> Cross-Root Trends
Persona analytics, compare notes, and recommendations are operator aids only and are not objective truth.
- Create persona branches from a root run.
- Apply shortlist/eliminate/override actions.
- Review decision events and audit summary.
- Run persona compare and policy-check panels.
- Inspect persona trends and persona×strategy matrix panels.
Phase K adds explainable recommendation intelligence, drill-down analytics, lightweight caching, and policy templates.
- Lightweight analytics caching for persona trends/matrix and related summaries.
- Recommendation explainability metadata (
reason_codes, signals, supporting metrics, confidence basis, policy-block indicators). - Optional policy templates (
default,high_risk_repo,recovery_mode,strict_review,exploratory_lab) with audit event recording on apply. - Dashboard export endpoints for persona trends, persona matrix, and audit rollups.
- Drill-down analytics routes from aggregate cells to concrete runs and policy-block events.
GET /api/integrations/analytics/cachePOST /api/integrations/analytics/cache/invalidateGET /api/integrations/policy-templatesGET /api/integrations/policy-templates/{template_name}POST /api/integrations/runs/{run_id}/apply-policy-templateGET /api/integrations/exports/persona-trendsGET /api/integrations/exports/persona-matrixGET /api/integrations/exports/audit-summaryGET /api/integrations/drilldown/persona-matrixGET /api/integrations/drilldown/persona-trendsGET /api/integrations/drilldown/recommendationsGET /api/integrations/drilldown/policy-blocks
AGENTORA_ANALYTICS_CACHE_ENABLED=true
AGENTORA_ANALYTICS_CACHE_TTL_SECONDS=120
AGENTORA_ANALYTICS_CACHE_MAX_ENTRIES=100Analytics Summary -> Explanation -> Drill-down Runs -> Audit Trail -> Operator Decision
Recommendations and explanations remain heuristic operator aids and must not be treated as objective truth.
Phase L introduces sovereign cross-repo mission memory patterns and operator-controlled recommendation feedback loops.
- Derived candidate mission patterns from historical persona/strategy outcomes.
- Operator-controlled pattern lifecycle (promote, reject, archive) with audit trail events.
- Cross-repo memory summaries for recurring personas/strategies and low-risk/recovery evidence.
- Future-mission suggestion helpers for new missions, replay, and branch sets.
- Clear distinction between historical evidence and current operator choice through heuristic notes and supporting pattern evidence.
GET /api/integrations/memory/patternsGET /api/integrations/memory/patterns/candidatesPOST /api/integrations/memory/patterns/{pattern_id}/promotePOST /api/integrations/memory/patterns/{pattern_id}/rejectPOST /api/integrations/memory/patterns/{pattern_id}/archiveGET /api/integrations/memory/summariesGET /api/integrations/memory/summaries/cross-repoGET /api/integrations/memory/suggestions/new-missionGET /api/integrations/memory/suggestions/replayGET /api/integrations/memory/suggestions/branch-set
Historical Runs -> Candidate Patterns -> Operator Promotion -> Future Suggestions -> Operator Approval
Pattern memory and suggestions remain heuristic/operator aids and never auto-apply without explicit operator approval.