Migrated from spboyer/waza#290
Summary
Allow users to run evals against local models (Ollama) and direct API providers (OpenAI, Anthropic) plus OpenCode — instead of only through the Copilot SDK.
Motivation
Users want to evaluate skills against models running locally for privacy, cost, or speed. Also enables testing against providers not available through Copilot SDK.
Approach
New engine implementations in internal/execution/ — all implement existing AgentEngine interface:
| Engine |
Provider |
API |
ollama |
Ollama (local) |
REST /api/chat |
openai |
OpenAI-compatible |
Chat Completions API (covers OpenAI, Azure OpenAI, any compatible endpoint) |
anthropic |
Anthropic |
Messages API |
opencode |
OpenCode |
TBD — research integration surface |
- Engine selection via eval.yaml
engine: field or CLI flag --engine ollama
- Model selection via
model: field (e.g., llama3.2, gpt-4o, claude-sonnet-4)
- Configuration: environment variables for API keys (
OPENAI_API_KEY, ANTHROPIC_API_KEY), Ollama base URL, OpenCode config
- Update schema:
schemas/waza-config.schema.json to include new engine types
- Build all four engines in parallel — no sequential dependencies
Key Files
internal/execution/ollama.go
internal/execution/openai.go
internal/execution/anthropic.go
internal/execution/opencode.go
internal/execution/engine.go — update engine factory/registry
schemas/waza-config.schema.json — add engine types
cmd/waza/cmd_run.go — wire up engine selection
Priority
P1 — Platform
Size
Large
Summary
Allow users to run evals against local models (Ollama) and direct API providers (OpenAI, Anthropic) plus OpenCode — instead of only through the Copilot SDK.
Motivation
Users want to evaluate skills against models running locally for privacy, cost, or speed. Also enables testing against providers not available through Copilot SDK.
Approach
New engine implementations in
internal/execution/— all implement existingAgentEngineinterface:ollama/api/chatopenaianthropicopencodeengine:field or CLI flag--engine ollamamodel:field (e.g.,llama3.2,gpt-4o,claude-sonnet-4)OPENAI_API_KEY,ANTHROPIC_API_KEY), Ollama base URL, OpenCode configschemas/waza-config.schema.jsonto include new engine typesKey Files
internal/execution/ollama.gointernal/execution/openai.gointernal/execution/anthropic.gointernal/execution/opencode.gointernal/execution/engine.go— update engine factory/registryschemas/waza-config.schema.json— add engine typescmd/waza/cmd_run.go— wire up engine selectionPriority
P1 — Platform
Size
Large