Each example is its own package. Run one with:
cargo run -p <example-name>Most examples expect provider API keys in the environment (e.g. OPENAI_API_KEY,
ANTHROPIC_API_KEY, GEMINI_API_KEY, COHERE_API_KEY). See each example's source for specifics.
| Example | Description |
|---|---|
agent_autonomous |
Demonstrates an autonomous extractor loop that keeps feeding its own output back in. |
agent_evaluator_optimizer |
See source. |
agent_orchestrator |
See source. |
agent_parallelization |
See source. |
agent_prompt_chaining |
Demonstrates prompt chaining with two agents in sequence. |
agent_routing |
Demonstrates routing one prompt into different follow-up prompts. |
agent_run_stepping |
Drives the agent loop by hand with the sans-IO [AgentRun] state machine. |
agent_stream_chat |
Demonstrates stream_chat with prior conversation history. |
agent_with_agent_tool |
See source. |
agent_with_approval_policy |
Demonstrates a non-interactive, policy-based HITL gate: an AgentHook auto-approves an allow-list, denies the rest (fail-closed), and applies an arg-based rule (mirrors needs_approval/interrupt_on predicates). |
agent_with_context |
Demonstrates adding small context documents directly to an agent. |
agent_with_default_max_turns |
Demonstrates extending the default agent loop budget for tool-heavy prompts. |
agent_with_durable_approval |
Demonstrates durable HITL: the hand-driven AgentRun is serialized while tool calls are pending and resumed from JSON (as another process would), so approval can happen out-of-process / later. |
agent_with_echochambers |
See source. |
agent_with_human_in_the_loop |
Demonstrates human-in-the-loop tool-call approval: an AgentHook pauses on each tool call so a human can approve/deny/edit/abort, mapped onto Flow (cont/skip/rewrite_args/terminate). |
agent_with_loaders |
Demonstrates loading real example files into agent context. |
agent_with_memory_streaming |
Demonstrates Rig-managed conversation memory with streaming. |
agent_with_memory |
Demonstrates Rig-managed conversation memory with an in-memory backend. |
agent_with_tools_otel |
Agent multi-turn with tools, but with a tracing subscriber that sends all logs/traces to an OTel collector. |
agent_with_tools |
Demonstrates registering boxed tools on an agent. |
agent |
Demonstrates the smallest useful agent setup with OpenAI. |
calculator_chatbot |
See source. |
chain |
Demonstrates a retrieval-augmented pipeline with parallel! and lookup. |
complex_agentic_loop_claude |
See source. |
custom_vector_store |
Example: Implementing a custom vector store backend |
debate |
See source. |
discord_bot |
See source. |
enum_dispatch |
See source. |
extractor |
Demonstrates typed extraction and extraction with usage metadata. |
gemini_deep_research |
See source. |
gemini_default_api_recovery |
Demonstrates recovering from Gemini emitting a legacy default_api tool name. |
gemini_extractor_with_rag |
See source. |
gemini_nanobanana_image_generation |
See source. |
gemini_stream_kill_token_count |
Live Gemini example: obtaining a token-count estimate when a streaming |
gemini_video_understanding |
Demonstrates Gemini video understanding with provider-specific request parameters. |
manual_tool_calls |
Demonstrates manual tool-call handling with Agent::completion(). |
multi_agent |
See source. |
multi_extract |
Demonstrates fan-out structured extraction with try_parallel!. |
multi_turn_agent_extended |
See source. |
multi_turn_agent |
See source. |
openai_agent_completions_api_otel |
This example shows how you can use OpenAI's Completions API. |
openai_streaming_per_call_usage |
Shows how to inspect per-completion-call usage in an agent stream. |
openai_streaming_with_tools_otel |
See source. |
pdf_agent |
See source. |
rag_dynamic_tools_multi_turn |
See source. |
rag_dynamic_tools |
See source. |
rag_ollama |
See source. |
rag |
See source. |
reasoning_loop |
See source. |
request_hook |
Demonstrates observing prompt/response/tool lifecycle events by stacking two AgentHooks with add_hook. |
reqwest_middleware |
Demonstrates supplying a custom reqwest client with retry middleware. |
rmcp_example |
An example of how you can use rmcp with Rig to create an MCP friendly agent. |
sentiment_classifier |
Demonstrates the smallest typed extractor for classification. |
transcription |
See source. |
vector_search_cohere |
Demonstrates vector search with separate Cohere document and query embeddings. |
vector_search_ollama |
Demonstrates vector search against a local Ollama embedding model. |
vector_search |
Demonstrates embedding documents and querying an in-memory vector index with OpenAI. |