Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/dsswift/ion/multi-modelgit clone --depth 1 https://github.com/dsswift/ionWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00011 | $0.00763 |
| Opus 5 | $0.00005 | $0.00381 |
| Sonnet 5 | $0.00002 | $0.00153 |
| Haiku 4.5 | $0.00001 | $0.00076 |
Grade A, and why
multi-model scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 119 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Multi-Model Routing
Each agent can specify its own model, allowing you to route expensive reasoning tasks to capable models and simple tasks to fast, cheap ones.
How model selection works
Model resolution has two stages: first the engine decides which name to use, then it resolves that name to a concrete model.
Stage 1 -- precedence. The first of these that is set wins:
- Agent definition -- the
modelfield in the agent's frontmatter - Per-prompt override -- model specified in the
send_promptcommand - Session config -- model set when the session was started
- Engine default --
defaultModelfrom engine runtime config
Stage 2 -- tier resolution. If the name that won stage 1 is a tier alias
(e.g. fast), the model config resolves it to a concrete model. This is not a
fifth precedence level: it applies to whichever name stage 1 selected, so a tier
alias in an agent definition is resolved rather than being overridden by
defaultModel.
If the resolved model maps to no configured provider, the run falls back to
defaultModel and emits engine_model_fallback once per run.
Cost optimization patterns
Cheap triage, expensive execution
Use a fast model for initial analysis, then delegate complex work to a capable model:
# .ion/agents/triage.md
---
name: triage
model: claude-haiku-4-5-20251001
description: Quick analysis and task routing
---
Analyze the request and determine which specialist agent to invoke.
# .ion/agents/deep-analysis.md
---
name: deep-analysis
model: claude-sonnet-4-6
description: Thorough code analysis and refactoring
---
Perform detailed analysis of the codebase...
Read-only agents on cheap models
Agents that only need to read and summarize (no tool calls that modify files) can run on the cheapest available model:
---
name: summarizer
model: gpt-4.1-mini
tools: [Read, Grep, Glob]
description: Summarizes code and documentation
---
Cross-provider routing
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 119 lines · 11 tokens per session scan A fdf2bcdd909a
multi-model is an agent published in the GitHub repository dsswift/ion (4 stars, last pushed yesterday), licensed MIT. It adds 11 tokens to every session and 763 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
code_analyzer
Expert in analyzing code structure, complexity, design patterns, and providing refactoring recommendations. Uses CAST (Code Abstract Syntax Tree) tools for deep code understanding.
report_writer
Expert in synthesizing information from multiple sources into well-structured, professional reports. Specializes in technical documentation and analysis summaries.
web_searcher
Expert in searching and retrieving technical documentation, best practices, and relevant resources from the web. Synthesizes findings from multiple sources.
document_agent
Minimal example for creating and using AI Agents with aworld-cli.
building-agents
Create intelligent agents that connect to MCP servers, discover tools automatically, and execute tasks with full observability.
reasoning-patterns
Every Promptise agent is powered by a Reasoning Graph. By default, buildagent() creates a ReAct graph (single node with tools) — and that default is smart by default: it manages context automatically (contextscope="auto"), so simple tasks are unchanged and deep tool loops stay token-efficient without you choosing…