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/indexgit 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.00012 | $0.00715 |
| Opus 5 | $0.00006 | $0.00358 |
| Sonnet 5 | $0.00002 | $0.00143 |
| Haiku 4.5 | $0.00001 | $0.00072 |
Grade A, and why
index 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 2d ago.
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 — 59 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agents
Agents are delegated tasks that run their own tool loops. When the primary session encounters a problem that benefits from isolated context or a different model, it spawns a child agent via the Agent tool. The child runs to completion and returns its text output to the parent.
How agents work
- The LLM calls the
Agenttool with a prompt and working directory. - The engine creates a child
ApiBackendwith its own run loop. - The child streams LLM calls, executes tools, and iterates until done.
- The
Agentcall returns a dispatch ID immediately; parent continues work or ends turn. - The parent uses
AgentStatuswith that dispatch ID for a read-only live-state check. CallingAgentagain always creates a new dispatch. - Engine delivers terminal child result back to parent as machine-authored completion input.
- Parent may steer running child by dispatch ID;
wait_for_completion: trueis explicit blocking escape hatch.
Parent and child share the same event bus. Events from child agents are forwarded to connected clients so UIs can show agent activity in real time.
Agent types
Inline agents (Agent tool)
The Agent tool spawns a child session on the fly. No agent definition file needed. The parent provides the prompt and working directory directly in the tool call. This is the most common pattern.
Disk agents (definition files)
Agents defined as markdown files with YAML frontmatter. These are discovered at startup and available by name. Disk agents let you define reusable specialists with specific models, tool allowlists, and system prompts.
Extension-dispatched agents
Extensions can dispatch agents programmatically via DispatchAgent on the extension context. This supports the same options as disk agents but is triggered from extension code rather than the LLM.
Agent state tracking
The engine tracks agent lifecycle through engine_agent_state events. Each agent gets a name, status (running, done, error, cancelled, idle), and metadata including elapsed time and a summary of its output. Clients use these events to render agent panels.
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.
- 2d ago First seen · 59 lines · 12 tokens per session scan A aed983831aae
index is an agent published in the GitHub repository dsswift/ion (4 stars, last pushed 2d ago), licensed MIT. It adds 12 tokens to every session and 715 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…