🧪 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. 🤖
Metadata
Release files for agentrylab 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| agentrylab-0.2.0.tar.gz | 96.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agentrylab-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 194.4 kB
Release files / agentrylab-0.2.0.tar.gz
| Download URL | agentrylab-0.2.0.tar.gz |
|---|---|
| Size | 96.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cae158c7e4f9d946e93df0071613d8ead2d9b10fe9456ed689f1a553738bf1f1
|
|
BLAKE2b-256 checksum How to use checksums |
5e32b78d9f910a5f48548e482af1a450ae751bfa44fdea7041eb9e2427c27388
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / agentrylab-0.2.0-py3-none-any.whl
| Download URL | agentrylab-0.2.0-py3-none-any.whl |
|---|---|
| Size | 98.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4770503e9c21e9dcaee3848d4debb473aec0a2dc2006773b459a934a3ab7a61b
|
|
BLAKE2b-256 checksum How to use checksums |
d9abfa6ff617158d67f8dce2d45054f92e3f73981644077f68156fffa3997668
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Security for agentrylab 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.