Skip to content

Capabilities

Steven Enamakel edited this page Jul 4, 2026 · 4 revisions

Capabilities

This is the discovery index for TinyAgents: one page where an agent (or a human) can see every functionality the crate exposes and jump straight to the deep page for it. Each row is a capability, a one-line description of what it does, and a Where link to the wiki page (and section anchor) that documents it. Start here, find the surface you need, and branch out.

The crate is organized into five surfaces — Harness, Graph runtime, Registry, Expressive .rag, and REPL .ragsh — plus Providers at the leaves and testkit/conformance for tests.

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/ModelHint/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 runs 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 + HarnessRunStatus 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-runs-graph) 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 Graph Runtime
Orchestration tools Model-callable child-work supervision (orchestrate_*) Graph Runtime
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/.ragsh by name Allow-list validation of agent-authored source before it runs Registry
Model catalog Offline pricing, context windows, capability facts Registry

Language & REPL — authored and interactive workflows

Capability What it does Where
Expressive .rag Declarative, side-effect-free blueprints that compile to the runtime Expressive Language (.rag)
REPL .ragsh Imperative, capability-bound interactive orchestration (RLM loop) REPL Language (.ragsh)

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, Anthropic, 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

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

Recently added (SDK-gap hardening)

New capabilities that harden the SDK surface. Deep docs live on the linked pages.

Capability What it does Where
Model lifecycle gating ModelRegistry::resolve skips ModelStatus::Retired; ModelSelection.allow_retired = true opts back in Harness
orchestrate_list filters Filter managed tasks by kind, created_after_ms, created_before_ms Graph Runtime
Unknown-tool recovery UnknownToolCall carries original arguments; UnknownToolPolicy{Fail,ReturnToolError,Rewrite} Harness
Stable event ids EventSink::with_stream_id; ids {stream_id}-evt-{offset} survive restarts Harness
Workspace isolation RunContext::with_workspace, prepare/cleanup_workspace, WorkspaceDescriptor::enforce, AgentEvent::Workspace* Harness
Tool exposure auditing AgentEvent::ToolsFiltered; ContextualToolSelectionMiddleware::inheriting(...) Harness
Control outcomes AgentEvent::ControlApplied, MiddlewareControl::{kind,precedence}, precedence-based request_control Harness
Tool policy enforcement ToolPolicyMiddleware::{require_sandbox, require_approval, enforce_result_bytes} Harness
Model delta attribution AgentEvent::ModelDelta now carries run_id Harness
Thinking-token streaming MessageDelta.reasoning, ModelDelta.reasoning, and Usage.reasoning_tokens keep thoughts separate from visible text Harness
Budget reservation & cost BudgetLimits.max_cached_input_tokens, AgentEvent::{BudgetReserved,BudgetReconciled}, preflight reservation Harness
Parallel map/reduce controls ParallelOptions::{with_item_timeout, with_total_timeout, with_cancellation} Graph Runtime
Registry introspection ComponentKind adds Middleware/Checkpointer/TaskStore/Listener; RegistrySnapshot.aliases; name-reuse diagnostic Registry
Storage conformance graph::testkit::conformance::{taskstore_concurrent_contract, checkpointer_concurrent_contract, taskstore_replay_contract} Graph Runtime

Agent quick-start: pick your task

See also

  • Home — orientation and the five-surface overview.
  • Examples — runnable end-to-end demonstrations.
  • Architecture — how the surfaces compose.

TinyAgents

Recursive language-model (RLM) harness for Rust.

Getting started

Concepts

Modules

Providers

Contributing


Clone this wiki locally