Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 15
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-harness— model calls, tools, middleware, structured output, streaming, usage/cost, sub-agents.tinyagents-graph— the durable typed state-graph runtime.tinyagents-language— the.ragdeclarative blueprint format.tinyagents-registry— the named capability catalog.tinyagents-session— durable session history and run ledger.tinyagents-tracing— shared, feature-gated tracing macros used by the other crates.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, cache, memory/embeddings, sub-agents, 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) that.ragbinds by name. - Expressive language
.rag(crates/tinyagents-language/) — a declarative, side-effect-free blueprint format that compiles into the same graph/harness types as hand-written Rust.
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, sub-agent, and
.ragexamples.
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 task-board kanban built on the graph runtime.
- Registry — named capability catalog.
- Expressive Language (.rag) — declarative blueprints.
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