Skip to content

Capabilities

Steven Enamakel edited this page Aug 31, 2026 · 5 revisions

Capabilities

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.

Harness — model calls, tools, control

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

Graph runtime — durable typed workflows

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

Registry — named capability catalog

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

Expressive language .rag

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)

Providers — model backends at the leaves

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

Session — durable history

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

Testing — testkit & conformance

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

See also

  • Home — orientation and the crate overview.
  • Examples — runnable end-to-end demonstrations.
  • Architecture — how the crates compose.

TinyAgents

Provider-neutral agent harness and durable state-graph runtime for Rust.

Getting started

Concepts

Modules

Providers

Contributing


Clone this wiki locally