Skip to content

Non Claude Autonomy

Oleg Miagkov edited this page Jul 13, 2026 · 2 revisions

Non-Claude provider autonomy

Source: docs/roadmap/non-claude-provider-autonomy.md. ← Overview

Goal: make full_autonomous="yes" a runtime truth, not a policy label. Bring OpenAI, Google/Gemini, OpenRouter, LiteLLM, ZhipuAI, Ollama (and viable CLI runners) to real parity with Claude SDK.

Milestone (2026-06-01): OpenAI, Google, and OpenRouter pass the full provider e2e suite and read ready from the AutonomyPolicy gate. AUTO_CODE_AUTONOMY=safe is the recommended default and the .env.example value (it promotes these three providers while the evidence gate stays enforced).

Legend: ✅ done · 🟢 partial · 🚧 in progress · ⬜ planned

Phase Topic Status
0 Foundation cleanup (capability≠policy, QA routing, paths, policy-config, nightly e2e) 🟢 Mostly landed
1 Real parity (MCP execution, mutating subagents, sandbox, native tool loop) 🚧 Partial
2 Evidence without opt-in (scheduled probes, cost calibration, quality evals) 🟢 Partial
3 Provider promotion one at a time (OpenAI pilot) ⬜ Not started
4 CLI runner class (Gemini/Aider/OpenCode/Qwen/Goose) ⬜ Planned
5 Frontend control plane (readiness dashboard, history charts, artifact viewer) ⬜ Planned
6 Recovery & edge-case hardening ⬜ Ongoing background work

Key facts

  • No direct provider has been promoted to full_autonomous yet. The only wired full-autonomous path is Codex CLI.
  • ✅ Plugin pre_tool/post_tool and augment_prompt now run on the Direct-API/Codex runtime (#417, #421) — lifting the "plugin runtime = Claude-only" limitation.

Principles

  1. Capability before promotion — a provider does not move to full_autonomous until its runtime physically executes the full surface (MCP, mutating subagents, sandbox).
  2. Capability ≠ policyRuntimeCapabilities describes what's supported; promotion is a separate AutonomyPolicy decision, and flags never lie.
  3. Per-provider config from the start — no global thresholds.
  4. Evidence from CI, not opt-in env — live-fault probes reachable from scheduled CI.
  5. qa_fixer/qa_reviewer are runtime citizens — via create_runtime_session.
  6. Honest documentation — removed and partial work is marked as such.
  7. One promotion = one PR = one evidence package.
  8. Don't invent new modes — the 4 existing ones (full_autonomous, generic_edit, patch_proposal, analysis_only).

Already landed (Phase 0 / 2)

  • 🟢 QA runtime routing (qa_phase_routing.py, resolve_qa_runtime) — 0.2.
  • 🟢 Per-provider autonomy policy config (core/autonomy_policy.py) — 0.4.
  • 🟢 Nightly provider-e2e (scripts/nightly_provider_e2e.py + scheduled workflow) — 2.1.

Phase 1 — closing the gaps (🚧)

  • 1.1 MCP execution for direct-API (generalize RuntimeMcpBridge to all servers, per-server smoke).
  • 1.2 Mutating subagents with transactional merge (staged clone → patch → 3-way merge, apply/abort gate).
  • 1.3 Sandbox for direct providers (unified macOS Seatbelt / Linux bubblewrap / Windows AppContainer interface).
  • 1.4 Native tool loop per provider (supports_native_tools(model); e2e stops silently downgrading to JSON fallback).

Phase 3 — promotion order (⬜)

OpenAI pilot (criteria: 1.1–1.4 green, 10+ stable e2e runs in 7 days, mini-SWE-bench ≥60%, cost calibration within ±15%). Then by decreasing readiness: OpenRouter → Google/Gemini → LiteLLM → ZhipuAI → Ollama.

Phase 4 — CLI runners (⬜, parallel track)

Runner Priority Needed
Gemini CLI high command builder, resume
Aider high git-aware, event parser
OpenCode mid event parser, artifact contract
Qwen Code mid command spec, capability check
Goose mid session model adaptation

Critical path to the first truly full-autonomous direct provider: 0.1 → 0.2 → 0.4 → 1.1 → 1.4 (openai only) → 2.1 → 3.1.

Clone this wiki locally