Lightweight, hackable multi-agent orchestration lab (CLI + Python) with transcripts, checkpoints, budgets, and pluggable providers/tools.
Project description
🧪 AgentryLab
Multi-agent orchestration made simple. Drop in agents, watch the magic happen.
🚀 Quick Start
pip install agentrylab
# Comedy gold
agentrylab run standup_club.yaml --objective "remote work" --max-iters 4
# Real debates with evidence
agentrylab run debates.yaml --objective "Should we colonize Mars?" --max-iters 4
# Facebook Marketplace deals finder
agentrylab run marketplace_deals.yaml --objective "MacBook Pro deals"
🎭 What You Get
5 killer presets that actually work:
| Preset | What It Does | Cool Factor |
|---|---|---|
| 🎤 Stand-Up Club | Two comedians + MC | Comedy gold, pure entertainment |
| 🏛️ Debates | Pro/con + evidence search | Real web research, actual citations |
| 🔬 Research | Scientists collaborate | Academic rigor meets AI |
| 🤖 Research Assistant | Interactive research chat | Human-in-the-loop web research |
| 🛒 Marketplace Deals | Facebook Marketplace finder | Real listings, real URLs, real deals |
🧠 Core Concepts
- Agents: Roles that speak (comedian, scientist, debater — no limits!)
- Tools: Real integrations (DuckDuckGo search, Facebook Marketplace, Wolfram Alpha)
- Providers: LLM backends (OpenAI, Ollama)
- Schedulers: Who talks when (round-robin, every-N)
🛠️ Installation & Setup
# Install
pip install agentrylab
# Optional: Local models with Ollama
curl -fsSL https://ollama.ai/install.sh | sh
ollama pull llama3
# Optional: API keys in .env
echo "OPENAI_API_KEY=sk-..." >> .env
echo "APIFY_API_TOKEN=apify_..." >> .env
🎯 Examples
Comedy Club
agentrylab run standup_club.yaml --objective "AI taking over the world" --max-iters 6
Real Research
agentrylab run research.yaml --objective "quantum biology breakthroughs"
Interactive Research
# Start conversation
agentrylab run research_assistant.yaml --objective "latest AI developments"
# Jump in anytime
agentrylab say research_assistant.yaml demo "What about quantum computing?"
agentrylab run research_assistant.yaml --thread-id demo --resume --max-iters 1
Marketplace Deals
agentrylab run marketplace_deals.yaml --objective "iPhone 15 Pro deals in NYC"
# With structured inputs (user_inputs) non-interactively
agentrylab run marketplace_deals.yaml \
--params '{"query":"MacBook Pro 14 M3","location":"Tel Aviv","min_price":5000,"max_price":12000}'
Telegram-style parameter collection (concept)
- Presets may declare a
user_inputssection. If required inputs are missing when starting a conversation via the Telegram adapter, the conversation entersCOLLECTINGstatus until inputs are provided. - Adapter helpers:
provide_user_param(conversation_id, key, value): supply a single input; returns remaining keysfinalize_params_and_start(conversation_id): substitute values, initialize the lab, transition toACTIVE
This enables progressive, chat-like forms for complex scenarios (e.g., location, radius, min/max price) while still supporting one-shot runs with --params.
🐍 Python API
from agentrylab import init
# Start a comedy show
lab = init("standup_club.yaml", experiment_id="comedy-night")
lab.run(rounds=6)
# Check out the show
for msg in lab.state.history:
print(f"[{msg['role']}]: {msg['content']}")
🔧 Advanced Features
- Real-time streaming: Watch agents work live
- Resume anywhere: Pick up where you left off
- Tool budgets: Prevent runaway API costs
- Human-in-the-loop: Jump into conversations anytime
- Persistence: Everything saved to SQLite + JSONL
📚 Documentation
- CLI Reference - All commands
- Configuration - YAML preset format
- Architecture - How it works
- Persistence - Data storage format
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for details.
Quick wins:
- New presets (comedy, debates, research, etc.)
- New tools (APIs, databases, etc.)
- New providers (Claude, Gemini, etc.)
📄 License
MIT - Go build something amazing!
Made with ❤️ for the AI community. Because single agents are boring. 🤖
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentrylab-0.2.0.tar.gz.
File metadata
- Download URL: agentrylab-0.2.0.tar.gz
- Upload date:
- Size: 96.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cae158c7e4f9d946e93df0071613d8ead2d9b10fe9456ed689f1a553738bf1f1
|
|
| MD5 |
59942c01f380fc6afeb67fa12835eb9a
|
|
| BLAKE2b-256 |
5e32b78d9f910a5f48548e482af1a450ae751bfa44fdea7041eb9e2427c27388
|
File details
Details for the file agentrylab-0.2.0-py3-none-any.whl.
File metadata
- Download URL: agentrylab-0.2.0-py3-none-any.whl
- Upload date:
- Size: 98.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4770503e9c21e9dcaee3848d4debb473aec0a2dc2006773b459a934a3ab7a61b
|
|
| MD5 |
187dfbd1b7c40dea4f24db7d3914cdcc
|
|
| BLAKE2b-256 |
d9abfa6ff617158d67f8dce2d45054f92e3f73981644077f68156fffa3997668
|