Complete List of Supported Agent Adapters for no-mistakes
no-mistakes ships with seven built-in agent adapters—Codex, Claude, Copilot, OpenCode, Native Command, ACPX, and Fallback—that implement the internal/agent/Agent interface to communicate with LLM services or execute local commands.
The no-mistakes pipeline uses pluggable agent adapters to execute prompts against various language models and external tools. Each adapter resides in the internal/agent directory and implements a strict contract defined in internal/agent/agent.go, enabling consistent invocation across OpenAI Codex, Anthropic Claude, GitHub Copilot, and native system binaries.
Built-in Agent Adapters
The repository provides seven production-ready adapters, each designed for specific backend services or execution environments:
-
Codex (
internal/agent/codex.go): Interfaces with the OpenAI Codexexecendpoint to run prompts and stream JSON-formatted activity metrics. -
Claude (
internal/agent/claude.go): Communicates with Anthropic’s Claude API via the/v1/completeendpoint to obtain completions and optional usage metrics. -
Copilot (
internal/agent/copilot.go): Sends requests to the GitHub Copilot service through the privategithub-copilotendpoint for code generation tasks. -
OpenCode (
internal/agent/opencode.go): Leverages the OpenAI OpenCode model through the sameexec-style API pattern used by the Codex adapter. -
Native Command (
internal/agent/native_command.go): Executes arbitrary local shell commands directly viaexec.CommandContext, enabling non-LLM agents such as custom bash scripts or compiled binaries. -
ACPX (
internal/agent/acpx.go): Implements an adapter-capability-proxy pattern that wraps any external executable conforming to theagent-compatibleJSON protocol. -
Fallback (
internal/agent/fallback.go): Provides a wrapper that automatically selects the first available adapter when the specific configured adapter is missing or fails.
Core Agent Interface Contract
All adapters implement the Agent interface defined in internal/agent/agent.go. This contract ensures consistent behavior across diverse backends:
-
Invoke(ctx, prompt): Executes the agent against a given prompt and returns aResultstruct containing raw output, structured findings, and optionalInvocationMetrics. -
SessionResumer(): Optional capability allowing adapters like Codex and Claude to maintain durable sessions across multiple invocations. -
GateInstructionNeutralizer(): Optional capability that can neutralize.no-mistakesinstruction files during execution.
The pipeline selects an adapter based on the agent key in .no-mistakes.yaml. If the requested adapter is unavailable, the fallback adapter chooses the next compatible implementation.
Configuring and Using Agent Adapters
CLI Invocation with Codex
Run a specific pipeline step using the Codex adapter from the command line:
# Run the "test" step using the Codex adapter
no-mistakes axi run --agent codex --step test
The CLI parses the --agent codex flag, loads the adapter from internal/agent/codex.go, and forwards the prompt to the OpenAI Codex endpoint.
Native Command Configuration
Configure a custom shell script as an agent by specifying the native adapter in your configuration file:
# .no-mistakes.yaml (partial)
agent: native
agents:
native:
command: "./my-script.sh"
# Optional: environment variables for the command
env:
API_TOKEN: "{{ .Env.API_TOKEN }}"
The native_command adapter reads the command field and executes it via exec.CommandContext as implemented in internal/agent/native_command.go.
Session Management with Claude
For adapters that support durable sessions, capture the session ID for later resumption:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
defer cancel()
result, err := agents.Claude.Invoke(ctx, prompt)
if err != nil { /* handle error */ }
fmt.Println("Claude response:", result.Output)
fmt.Printf("Session ID: %s\n", result.Session.ID) // durable session ID
The Claude adapter implements SessionResumer, allowing subsequent axi resume commands to reconnect using the same session identifier.
Summary
- no-mistakes provides seven built-in adapters: Codex, Claude, Copilot, OpenCode, Native Command, ACPX, and Fallback.
- All adapters implement the
Agentinterface ininternal/agent/agent.go, ensuring consistentInvoke,SessionResumer, andGateInstructionNeutralizermethods. - Configuration occurs via
.no-mistakes.yaml, where theagentkey selects the specific implementation. - The Fallback adapter automatically selects the first available adapter when the primary choice is unavailable.
- Native Command and ACPX adapters enable integration of arbitrary external executables and scripts.
Frequently Asked Questions
What is the primary interface that all no-mistakes agent adapters implement?
Every adapter implements the Agent interface defined in internal/agent/agent.go. This interface requires the Invoke method for executing prompts and optionally exposes SessionResumer for stateful connections and GateInstructionNeutralizer for handling instruction files.
How do I configure a custom shell script as an agent adapter?
Set the agent key to native in .no-mistakes.yaml and specify the command path under the agents.native block. The native_command adapter in internal/agent/native_command.go executes the script via exec.CommandContext and passes configured environment variables.
Which adapters support session resumption for long-running tasks?
The Codex and Claude adapters implement the SessionResumer interface, allowing them to return durable session IDs in the Result struct. These IDs enable the axi resume functionality to reconnect to existing conversations rather than starting new ones.
What happens if the configured agent adapter is unavailable?
The Fallback adapter (internal/agent/fallback.go) automatically activates when the requested adapter is missing or fails to initialize. It iterates through available adapters and selects the first one that successfully responds, ensuring pipeline continuity.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →