← all investigations

Does 0xPlaygrounds/rig actually build and run a working LLM agent from its own quickstart example?

0xPlaygrounds/rig · could_not_test

Verdict

COULD_NOT_TEST

blockers: needs_api_key · not downgraded · stopped: sufficient_info · 9 steps · $0.358 · 50s

passes every criterion

Summary

The repo's own description and README match the claim, and the examples/ directory contains a genuine, minimal quickstart agent example (examples/agent/src/main.rs) that builds an OpenAI-backed agent and prompts it. No tool call actually attempted to compile or run this Rust example, so it's unknown whether the sandbox could build it; the investigation did not demonstrate a Rust-toolchain limitation. What is clear from the code itself is that the example requires an OPENAI_API_KEY, which was not available, preventing execution. The investigation could not be tested because of the missing API key, not because Rust was shown to be unsupported.

Trajectory

step 1 get_repo_metadata({'repo': '0xPlaygrounds/rig'})→ {"full_name": "0xPlaygrounds/rig", "license": "MIT", "language": "Rust", "size_kb": 73630, "archived": false, "created_at": "2024-06-05T13:42:28Z", "pushed_at": "2026-09-14T03:39:41Z", "homepage": "https://rig.rs", "stars": 8617, "forks": 960, "open_issues": 121}
step 1 get_repo_description({'repo': '0xPlaygrounds/rig'})→ {"full_name": "0xPlaygrounds/rig", "description": "\u2699\ufe0f\ud83e\udd80 Build modular and scalable LLM Applications in Rust", "topics": ["agent", "ai", "artificial-intelligence", "automation", "generative-ai", "large-language-model", "llm", "llmops", "rust", "scalable-ai"]}
step 2 read_file({'repo': '0xPlaygrounds/rig', 'path': 'README.md'})→ {"path": "README.md", "size": 12258, "truncated": true, "content": "<p align=\"center\">\n<picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"img/rig-rebranded-logo-white.svg\">\n <source media=\"(prefers-color-scheme: light)\" srcset=\"img/rig-rebranded-logo-black.svg\">\n <img src=\"img/rig-rebranded-logo-white.svg\" style=\"width: 40%; height: 40%;\" alt=\"Rig logo\">\n</picture>\n<br>\n<br>\n<a href=\"https://rig.rs/docs\"><img src=\"https://img.shields.io/badge/\ud83d\udcd6 docs-rig.rs-dca282.svg\" /></a> &nbsp;\n<a href=\"https://docs.rs/rig/latest/rig/\"><img src=\"https://img.shields.io/badge/docs-API Reference-dca282.svg\" /></a> &nbsp;\n<a href=\"https://crates.io/crates/rig\"><img src=\"https://img.shields.io/crates/v/rig.svg?color=dca282\" /></a>\n&nbsp;\n<a href=\"https://crates.io/crates/rig\"><img src=\"https://img.shields.io/crates/d/rig-core.svg?color=dca282\" /></a>\n&nbsp;\n<a href=\"LICENSE\"><img src=\"https://img.shields.io/crates/l/rig.sv...
step 3 list_files({'repo': '0xPlaygrounds/rig', 'path': 'rig-core/examples'}) error→ {"error": "not found: /repos/0xPlaygrounds/rig/contents/rig-core/examples"}
step 3 read_file({'repo': '0xPlaygrounds/rig', 'path': 'rig-core/README.md'}) error→ {"error": "not found: /repos/0xPlaygrounds/rig/contents/rig-core/README.md"}
step 4 list_files({'repo': '0xPlaygrounds/rig', 'path': ''})→ {"path": "/", "entries": [{"name": ".cargo", "type": "dir", "size": 0}, {"name": ".config", "type": "dir", "size": 0}, {"name": ".gitattributes", "type": "file", "size": 370}, {"name": ".github", "type": "dir", "size": 0}, {"name": ".gitignore", "type": "file", "size": 393}, {"name": ".pre-commit-config.yaml", "type": "file", "size": 673}, {"name": "AGENTS.md", "type": "file", "size": 13258}, {"name": "CHANGELOG.md", "type": "file", "size": 162669}, {"name": "CONTRIBUTING.md", "type": "file", "size": 13220}, {"name": "Cargo.lock", "type": "file", "size": 345854}, {"name": "Cargo.toml", "type": "file", "size": 19906}, {"name": "DEVELOPING.md", "type": "file", "size": 5780}, {"name": "LICENSE", "type": "file", "size": 1071}, {"name": "MIGRATING.md", "type": "file", "size": 279664}, {"name": "README.md", "type": "file", "size": 12258}, {"name": "crates", "type": "dir", "size": 0}, {"name": "examples", "type": "dir", "size": 0}, {"name": "flake.lock", "type": "file", "size": 2038}, {"name"...
step 5 list_files({'repo': '0xPlaygrounds/rig', 'path': 'examples'})→ {"path": "examples", "entries": [{"name": "README.md", "type": "file", "size": 5963}, {"name": "agent", "type": "dir", "size": 0}, {"name": "agent_autonomous", "type": "dir", "size": 0}, {"name": "agent_evaluator_optimizer", "type": "dir", "size": 0}, {"name": "agent_no_tokio", "type": "dir", "size": 0}, {"name": "agent_orchestrator", "type": "dir", "size": 0}, {"name": "agent_parallelization", "type": "dir", "size": 0}, {"name": "agent_prompt_chaining", "type": "dir", "size": 0}, {"name": "agent_routing", "type": "dir", "size": 0}, {"name": "agent_run_stepping", "type": "dir", "size": 0}, {"name": "agent_stream_chat", "type": "dir", "size": 0}, {"name": "agent_with_agent_tool", "type": "dir", "size": 0}, {"name": "agent_with_approval_policy", "type": "dir", "size": 0}, {"name": "agent_with_context", "type": "dir", "size": 0}, {"name": "agent_with_default_max_turns", "type": "dir", "size": 0}, {"name": "agent_with_durable_approval", "type": "dir", "size": 0}, {"name": "agent_with_echoc...
step 5 read_file({'repo': '0xPlaygrounds/rig', 'path': 'README.md'})→ {"path": "README.md", "size": 12258, "truncated": true, "content": "<p align=\"center\">\n<picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"img/rig-rebranded-logo-white.svg\">\n <source media=\"(prefers-color-scheme: light)\" srcset=\"img/rig-rebranded-logo-black.svg\">\n <img src=\"img/rig-rebranded-logo-white.svg\" style=\"width: 40%; height: 40%;\" alt=\"Rig logo\">\n</picture>\n<br>\n<br>\n<a href=\"https://rig.rs/docs\"><img src=\"https://img.shields.io/badge/\ud83d\udcd6 docs-rig.rs-dca282.svg\" /></a> &nbsp;\n<a href=\"https://docs.rs/rig/latest/rig/\"><img src=\"https://img.shields.io/badge/docs-API Reference-dca282.svg\" /></a> &nbsp;\n<a href=\"https://crates.io/crates/rig\"><img src=\"https://img.shields.io/crates/v/rig.svg?color=dca282\" /></a>\n&nbsp;\n<a href=\"https://crates.io/crates/rig\"><img src=\"https://img.shields.io/crates/d/rig-core.svg?color=dca282\" /></a>\n&nbsp;\n<a href=\"LICENSE\"><img src=\"https://img.shields.io/crates/l/rig.sv...
step 6 list_files({'repo': '0xPlaygrounds/rig', 'path': 'examples/agent'})→ {"path": "examples/agent", "entries": [{"name": "Cargo.toml", "type": "file", "size": 234}, {"name": "src", "type": "dir", "size": 0}], "truncated": false}
step 7 list_files({'repo': '0xPlaygrounds/rig', 'path': 'examples/agent/src'})→ {"path": "examples/agent/src", "entries": [{"name": "main.rs", "type": "file", "size": 633}], "truncated": false}
step 8 read_file({'repo': '0xPlaygrounds/rig', 'path': 'examples/agent/src/main.rs'})→ {"path": "examples/agent/src/main.rs", "size": 633, "truncated": false, "content": "//! Demonstrates the smallest useful agent setup with OpenAI.\n//! Requires `OPENAI_API_KEY`.\n//! Run it to see the provider/client/agent/prompt flow end to end.\n\nuse anyhow::Result;\nuse rig::prelude::*;\nuse rig::providers::openai;\n\nconst PREAMBLE: &str = \"You are a comedian here to entertain the user using humour and jokes.\";\nconst PROMPT: &str = \"Entertain me!\";\n\n#[tokio::main]\nasync fn main() -> Result<()> {\n let agent = openai::Client::from_env()?\n .agent(openai::GPT_4O)\n .preamble(PREAMBLE)\n .build();\n\n let response = agent.prompt(PROMPT).await?.output;\n println!(\"{response}\");\n\n Ok(())\n}\n"}

Ledger

inspected unknown The repository's language is Rust, not Python, and it is a sizeable, active project (8,617 stars, pushed as recently as Sept 2026, MIT licensed).from: get_repo_metadata(0xPlaygrounds/rig)
reported for ⚙️🐠 Build modular and scalable LLM Applications in Rustfrom: get_repo_description(0xPlaygrounds/rig)
reported for Rig is a Rust library for building scalable, modular, and ergonomic LLM-powered applications, with agentic workflows and 20+ model providers under one interface.from: read_file(README.md)
inspected for The repo contains a large, real examples/ directory with dozens of runnable agent examples (agent, agent_with_tools, agent_with_memory, rag, multi_turn_agent, etc.).from: list_files(examples)
reported for The quickstart 'agent' example builds an OpenAI-backed agent via openai::Client::from_env()?.agent(openai::GPT_4O).preamble(...).build() and calls agent.prompt(PROMPT).await?, printing the model's response; comment notes it requires OPENAI_API_KEY.from: read_file(examples/agent/src/main.rs)

Facts

setup
0.0s over 0 command(s), install not run or failed
disk
0 MB cloned, 0 MB total
needs
api_key
exercised
Build modular and scalable LLM applications in Rust

Grounding critique

ran · not grounded · revised