Open Agent Toolkit

Providers

Provider Quick Browse

  • Project: .agents/skills -> .claude/skills, .agents/agents -> .claude/agents, .agents/rules -> .claude/rules
  • User: ~/.agents/skills -> ~/.claude/skills, ~/.agents/agents -> ~/.claude/agents
  • Rule files stay .md and are rendered with Claude-compatible frontmatter when needed
  • Managed phase implementers and optional nested workers use the exact configured candidate returned as providers.claude.dispatchArgs.model; OAT passes that value as the actual Agent model

Managed dispatch views

Reusable ordered candidate ladders live in workflow.dispatchCeiling.providers. The project or phase named ceiling is only a maximum over those candidates; it does not select one permanent model family for the project.

Adopt the complete ladder into an explicit owning config scope before sync:

oat config adopt dispatch-matrix --shared
oat config adopt dispatch-matrix --local
oat config adopt dispatch-matrix --user

Project-config candidates materialize into the tracked, version-controlled project .codex view. User-config candidates materialize under ~/.codex. OAT does not auto-ignore project output or create its Git commit; the team owns that repository change.

At implementation time, the root passes the recorded named maximum through invocation-only --ceiling-tier, resolves one exact candidate per phase, and dispatches one phase implementer. Codex first attempts the resolver-returned materialized role as the native agent_type. The launcher records the target, model axis, and effort axis from that resolved payload; child self-report is not provenance and cannot replace those values. Only an explicit pre-start native role-selection rejection permits a fresh pinned-child fallback. An accepted child, including one that later returns BLOCKED or lacks telemetry, is a task outcome rather than a fallback signal. Claude and Cursor bind the exact model arguments described above. A missing or unselectable managed target blocks rather than falling back to the root target or a base role.

Scope rules

  • Project scope: skills + agents + rules
  • User scope: skills, plus the two bundled managed Codex role definitions used only for user-owned target expansion (provider mappings vary by adapter)
  • Rules are project-scoped only in this release
  • Codex user-scope sync materializes user-config custom roles under ~/.codex; project-config and supported-catalogue output remains project-scoped and version controlled

Adoption model

  • Stray adoption is available in oat init and oat status.
  • Adoption reconciles canonical plus the adopted provider first.
  • Rule adoption normalizes provider filenames back to canonical .agents/rules/*.md entries before cross-provider fanout.
  • Cross-provider fanout is explicit via oat sync --scope all.

Reference artifacts

  • .oat/projects/<scope>/<project>/spec.md (FR5)
  • packages/cli/src/providers/**
  • packages/cli/src/providers/shared/adapter.utils.ts

On this page