-
Notifications
You must be signed in to change notification settings - Fork 15
Capabilities
Steven Enamakel edited this page Aug 31, 2026
·
5 revisions
An index of what each TinyAgents crate exposes, with a link to the page that documents it. Start here, find the crate you need, and follow the link.
The workspace has no facade crate:
Harness, Graph runtime, Registry, and
Expressive .rag are separate crates, plus
Providers at the leaves and testkit/conformance helpers for
tests. See Architecture for how they depend on each other.
| Capability | What it does | Where |
|---|---|---|
| Agent loop | Default model→tool→model loop with run identity + limits | Harness |
| Provider-neutral model calls | One ChatModel trait; ModelRequest/ModelResponse across hosts |
Harness |
| Model resolution & selection |
ModelRegistry resolves a call via ModelSelection/capabilities |
Harness |
| Typed tools |
Tool trait with JSON schemas and a ToolRegistry
|
Harness |
| Middleware hooks | before/after hooks around agent, model, and tool calls | Harness |
| Structured output | Extract a typed value via a provider-appropriate strategy | Harness |
| Streaming | Model-delta and event streaming through the loop | Harness |
| Usage & cost | Token accounting and pricing roll-ups across the run tree | Harness |
| Limits, retry, fallback | Fail-closed caps, backoff, model fallback, rate limiting | Harness |
| Response & prompt cache | Local response cache + provider prompt/KV-cache layout | Harness |
| Memory & embeddings | Thread memory, vector stores, retrievers | Harness |
| Sub-agents (agents as tools) | Wrap an agent as a tool; child run one level deeper | Harness |
| Steering | Typed runtime control (pause/resume/redirect) of a running agent | Harness |
| Summarization | Context-window-aware transcript compaction | Harness |
| Events & run status | In-memory event spine + run status | Harness |
| Durable observability | Journals, status stores, sinks, latency metrics | Harness |
| Testkit | Fakes, recorders, trajectory assertions | Harness |
| Capability | What it does | Where |
|---|---|---|
| Nodes & edges | Named nodes wired by static/conditional edges over typed state | Graph Runtime |
| Dynamic routing |
Command.goto + routing precedence resolve next targets |
Graph Runtime |
Send fan-out (map-reduce) |
Schedule nodes with per-invocation args for the map step | Graph Runtime |
| Reducers & channels | Merge branch updates deterministically; channel-per-field state | Graph Runtime |
| Parallel fan-out | Run multi-node supersteps concurrently, folded in index order | Graph Runtime |
| Checkpoints & durability | Persist at superstep boundaries; in-memory/file/SQLite backends | Graph Runtime |
| Time travel | Read/fork/update state history against a checkpointer | Graph Runtime |
| Interrupts & resume | Human-in-the-loop pause and resume with a payload | Graph Runtime |
| Subgraphs | Embed a compiled graph as a node | Graph Runtime |
| Sub-agent nodes | Embed a harness agent as a graph node | Graph Runtime |
| Recursion policy | Bound depth, per-node visits, and total steps for sub-agent/subgraph chains | Graph Runtime |
| Orchestration tools | Model-callable child-task supervision (orchestrate_*) |
Graph Runtime |
| Goals and task boards | A durable ThreadGoal and TaskBoard kanban, exposed as harness tools |
Goals and Todos |
| Streaming & events |
GraphEvents + StreamMode projections |
Graph Runtime |
| Durable graph observability | Journals, status store, latency metrics | Graph Runtime |
| Topology export | JSON/Mermaid export of a graph's structure | Graph Runtime |
| Graph testkit | Deterministic node doubles + graph assertions | Graph Runtime |
| Capability | What it does | Where |
|---|---|---|
| Component identity |
ComponentId/ComponentKind/ComponentMetadata describe capabilities |
Registry |
| Capability registry | Register/resolve models, tools, graphs, agents by name | Registry |
Bind .rag by name |
Validate agent-authored .rag source against registered capabilities before it runs |
Registry |
| Model catalog | Offline pricing, context windows, capability facts | Registry |
| Model router | Declarative workload tiers mapped onto registered models with fallback chains | Registry |
| Capability | What it does | Where |
|---|---|---|
.rag blueprints |
Declarative, side-effect-free workflow source that compiles into the same graph/harness types as hand-written Rust | Expressive Language (.rag) |
| Capability | What it does | Where |
|---|---|---|
| Offline mock model | Deterministic, network-free default build | Providers |
| OpenAI + compatible hosts | One adapter for OpenAI and OpenAI-compatible endpoints (Anthropic compat, Ollama, DeepSeek, Groq, xAI, OpenRouter, Together, Mistral) | Providers |
| List available models |
OpenAiModel::list_models() — runtime model discovery via GET /models
|
Providers |
| Provider inference | Resolve a provider from a model string | Providers |
| Capability profiles | Reject impossible requests; pick capability-satisfying fallbacks | Providers |
| Capability | What it does | Where |
|---|---|---|
| Session and message history | SQLite-backed (WAL + FTS5) sessions, messages, tool calls, cost metadata, parent/child lineage |
tinyagents-session crate docs (crates/tinyagents-session/README.md) |
| Run ledger | Durable state for background agent/workflow execution |
tinyagents-session crate docs |
| Capability | What it does | Where |
|---|---|---|
| Harness testkit | Scripted models, fake tools, trajectory asserts | Harness |
| Graph testkit | Node doubles + fluent graph assertions | Graph Runtime |
| Storage conformance | Reusable contracts for task stores and checkpointers | Graph Runtime |
- Home — orientation and the crate overview.
- Examples — runnable end-to-end demonstrations.
- Architecture — how the crates compose.
Provider-neutral agent harness and durable state-graph runtime for Rust.
Getting started
Concepts
Modules
Providers
Contributing