# Choose models and spend ceilings

Agent Mission Control developer docs > Claude skill on Microsoft Foundry

> Pick the orchestrator tier, decide on sub-agents, pin all three deployments, and size the ceilings from a measured run.

**Before you start:** Claude deployments in your Foundry resource. Run `az cognitiveservices account deployment list` to see their names.

## Three separate decisions

| Decision | Where it lands | Default if you have no view |
| --- | --- | --- |
| **Orchestrator tier:** the model that runs the skill | `CLAUDE_AGENT_MODEL` on the version: `opus`, `sonnet` or `haiku`, resolved through the pins | What the skill runs on locally. A skill that pins no model runs on the author's session model, usually Sonnet. |
| **Sub-agents:** may the brain delegate with Task | `disallowed_tools` in `runner.build_options` | **Off.** Enable only when `SKILL.md` itself delegates. |
| **Deployment pins** | `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Pin all three to deployments that exist, even if only one tier is used. |

- **Opus** for judgment-heavy work, **Sonnet** for method-following work at about half the cost, **Haiku** only for trivial skills.
- **Task stays off for a skill that never delegates.** With the tool available, such a skill can still fan out into parallel sub-agents and exhaust the sandbox, and the run dies with no envelope.
- **An unpinned tier** falls back to a deployment name that may not exist, and the run fails mid-way, after spend.
- **Haiku appears in usage even when nothing chose it:** WebFetch summarizes fetched pages with a small model. Its tokens are real and show on their own marker.

`.env`
```bash
ANTHROPIC_DEFAULT_OPUS_MODEL=<opus-deployment-name>
ANTHROPIC_DEFAULT_SONNET_MODEL=<sonnet-deployment-name>
ANTHROPIC_DEFAULT_HAIKU_MODEL=<haiku-deployment-name>
CLAUDE_AGENT_MODEL=sonnet
```

## Relative cost

Illustrative, from a research-and-write skill. Measure your own.

| Orchestrator | Relative cost | Notes |
| --- | --- | --- |
| Sonnet | 1× | Tens of turns, 25 to 35 minutes |
| Opus | About 2× | More turns than Sonnet, not fewer |
| Opus, improvising without the skill | About 4× | The prompt led with a command and the method never loaded |

## Ceilings

- `MAX_TURNS` and `MAX_USD_PER_RUN` at about 1.5× a measured run. For a Sonnet run of about 90 turns, that's `MAX_TURNS=160` and a dollar ceiling about twice the measured cost.
- `RUN_TIMEOUT_SECONDS` at 2× or more of the wall clock, and at least 300 s below the session idle timeout.
- Session idle timeout at the 3600 maximum.
- A ceiling below one full run makes "partial" the designed steady state.
- Re-measure after changing the orchestrator tier.

## Prices in AMC

AMC prices each step by its `model` and tokens from the token prices you configure. A model with no price is priced at a generic default rate, which is wrong for Claude. Add a price for **every** deployment name the agent can report, including Haiku when WebFetch is allowed. When a marker carries the SDK's own `cost_usd`, AMC uses it.

## Related

- [Run steps, token markers and cost reporting](https://www.agentmissioncontrol.ai/developers/foundry-steps-and-cost/)
- [Invocation modes and session lifetime](https://www.agentmissioncontrol.ai/developers/foundry-invocation-and-sessions/)
- [Verify the agent and register it in AMC](https://www.agentmissioncontrol.ai/developers/foundry-verify-and-register/)

---
Source: https://www.agentmissioncontrol.ai/developers/foundry-model-selection/ · Last updated 2026-10-21 · Full index: https://www.agentmissioncontrol.ai/llms.txt
