Repository navigation
Home
TinyAgents is a small, provider-neutral agent harness for Rust, plus a durable
typed state-graph runtime. It takes its shape from LangChain (models, tools,
middleware, structured output, streaming, usage/cost) and LangGraph
(START/END, nodes, conditional edges, channels/reducers, checkpoints,
interrupts, subgraphs, time travel) — rebuilt as ordinary, typed Rust.
An agent can be exposed as a tool to another agent, and a graph node can embed a compiled graph. Those are composition features, used like any other node or tool, not a separate execution model.
New here? Jump to Capabilities — an index of what each crate exposes, with links to the deep page for each.
The repository README.md is the top-level overview. This wiki is the
implementation-oriented companion: how each crate works, how to set things up,
and how to develop against the workspace.
- workspace: Rust 2024 edition, GPL-3.0-only
- source: https://github.com/tinyhumansai/tinyagents
- every crate in this workspace is
publish = false— none of them are on crates.io or docs.rs; read the source or this wiki instead
There is no tinyagents crate. The workspace is a set of focused crates and a
consumer depends directly on the ones it needs:
-
tinyagents-definition— the host-owned agent definition vocabulary (identity, declared model/tools/delegates, a read-only catalogue seam). -
tinyagents-harness— model calls, tools, middleware, structured output, streaming, usage/cost, steering, typed terminal outcomes. -
tinyagents-tasks— graph-independent detached-task machinery: task stores,DetachedTaskRegistry, restart reconciliation, the durable completion router, and theorchestrate_*tools. -
tinyagents-graph— the durable typed state-graph runtime. -
tinyagents-registry— the named capability catalog and offline model catalog. -
tinyagents-session— durable session history and run ledger. -
tinyagents-runtime— host-neutral stateful sessions over the harness and transcript storage. -
tinyagents-orchestration— subagents (SubagentDriver, spawn admission, job registry), teams and workflows. -
tinyagents-live— live (realtime voice) agent sessions that run tool calls through the harness pipeline. -
tinyagents-integration-tests— cross-crate tests and the runnable examples; not a library dependency.
See Quick Start for the Cargo.toml snippet and feature flags.
TinyAgents is organized around these crates, used consistently across the docs:
-
Harness (
crates/tinyagents-harness/) — provider-neutral model calls, typed tools, middleware, structured output, streaming, usage/cost, retry/limits/failover, cache, steering, summarization, testkit. -
Graph runtime (
crates/tinyagents-graph/) — durable typed state graphs:START/END, nodes, edges, conditional routing, commands,Sendfanout, reducers/channels, checkpoints, interrupts, subgraphs, streaming, topology export, time travel. -
Registry (
crates/tinyagents-registry/) — named capability catalog (models, tools, agents, graphs, routers, reducers) plus the offline model catalog. -
Tasks and orchestration (
crates/tinyagents-tasks/,crates/tinyagents-orchestration/) — detached-task bookkeeping and the subagent / team / workflow lifecycle built on it; see Graph Runtime and Harness.
Getting started
- Home — this page.
- Capabilities — index of crate functionality.
- Quick Start — install, test, run an example, crate layout.
- Examples — runnable graph, harness, provider, tool, structured output, and sub-agent examples.
Concepts
- Architecture — how the crates fit together.
Modules
- Harness — model calls, tools, middleware, sub-agents, testkit.
- Graph Runtime — durable typed state graphs.
- Goals and Todos — durable goals and the per-thread todo list built on the graph runtime.
- Registry — named capability catalog.
Providers and contributing
- Providers — OpenAI, plus OpenAI-compatible presets for Anthropic, DeepSeek, Groq, xAI, OpenRouter, Together, Mistral, and Ollama.
- Development — building, testing, linting, and contributing.
Provider-neutral agent harness and durable state-graph runtime for Rust.
Getting started
Concepts
Modules
Providers
Contributing