Skip to content

feat(claude_code): per-agent reasoning effort via claudeConfig#2

Open
vprudnikoff wants to merge 1 commit into
mainfrom
feat/claude-config
Open

feat(claude_code): per-agent reasoning effort via claudeConfig#2
vprudnikoff wants to merge 1 commit into
mainfrom
feat/claude-config

Conversation

@vprudnikoff

Copy link
Copy Markdown
Owner

What

Adds a claudeConfig field to the agent profile, the Claude Code analog of codexConfig (PR awslabs#278) for the codex provider. The claude_code provider maps it to Claude Code CLI flags at launch:

claudeConfig key Claude Code flag
effort --effort <level>
fallback_model --fallback-model <model>

The top-level model field still maps to --model (unchanged), mirroring how codex keeps model separate from codexConfig.

Why

Today the only lever for a claude_code agent's reasoning effort is the machine-global effortLevel in ~/.claude/settings.json (or the CLAUDE_CODE_EFFORT_LEVEL env var, which the provider already preserves). That silently differs between machines: an orchestrator profile meant to run at xhigh falls back to the Claude Code default (high) on any host where the global setting is absent. codexConfig already solves the equivalent problem per-agent for codex; this brings parity to claude_code.

Example

name: cto
provider: claude_code
claudeConfig:
  effort: xhigh

Tests

test/providers/test_claude_code_unit.py::TestClaudeCodeProviderClaudeConfig: effort flag emitted when set, fallback-model emitted when set, no flag when claudeConfig is absent. Docs updated in docs/agent-profile.md.

Add a `claudeConfig` field to the agent profile, the Claude Code analog of
`codexConfig` for the codex provider. The claude_code provider maps it to
Claude Code CLI flags at launch:

  - effort         -> --effort <level>
  - fallback_model -> --fallback-model <model>

This lets a profile set per-agent reasoning effort (e.g. an orchestrator at
xhigh) without relying on the machine-global `effortLevel` in
~/.claude/settings.json, which silently differs between machines. The
top-level `model` field still maps to `--model`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant