The Storybook for AI Agents
Project description
Agent Playbook 🔬
The Storybook for AI Agents - Build, test, and showcase your pydantic-ai agents in an interactive playground.
🎯 Motivation
Building AI agents is hard. Testing them is even harder.
When developing UI components, tools like Storybook revolutionized the workflow by providing an isolated environment to build, test, and showcase components. Agent Playbook brings this same philosophy to AI agent development.
The Problem
- Slow iteration cycles - Running agents in full applications slows down development
- Hard to debug - Understanding agent behavior, tool calls, and decision-making is opaque
- Difficult to demonstrate - Showing agent capabilities to stakeholders requires complex setups
- No organized testing - Agents scattered across codebases without a unified testing environment
The Solution
Agent Playbook automatically discovers your pydantic-ai agents, loads them into an interactive web playground, and lets you test, debug, and showcase them in real-time with full visibility into their thinking process and tool executions.
✨ Key Features
- 🔍 Auto-Discovery - Automatically finds and loads agents from your codebase
- 🎮 Interactive Playground - Beautiful web UI for testing agents in real-time
- 🔄 Streaming Support - Watch agent responses, thinking, and tool calls as they happen
- 🧩 Scenario Configuration - Test agents with different configurations
- 🛠️ Tool Visualization - See exactly what tools agents call with arguments and results
🚀 Quick Start
Installation
pip install agent-playbook
(The CLI command is playbook, not agent-playbook)
Basic Example
Step 1: Define your agent (support_agent.py)
from pydantic_ai import Agent, RunContext
from pydantic import BaseModel
class SupportDeps(BaseModel):
company_name: str
support_email: str
support_agent = Agent(model="openai:gpt-4", deps_type=SupportDeps)
@support_agent.system_prompt
async def support_system_prompt(ctx: RunContext[SupportDeps]) -> str:
return f"You are a helpful customer support agent for {ctx.deps.company_name}."
@support_agent.tool
async def check_order_status(ctx: RunContext[SupportDeps], order_id: str) -> str:
"""Check the status of a customer order."""
return f"Order {order_id} is being processed and will ship in 2-3 business days."
@support_agent.tool
async def create_ticket(ctx: RunContext[SupportDeps], issue: str, priority: str) -> str:
"""Create a support ticket."""
return f"Ticket created with {priority} priority. Contact: {ctx.deps.support_email}"
Step 2: Export scenarios (support_agent__scenarios.py)
Agent Playbook auto-discovers modules ending with __scenarios and registers the agents. Use the export() function to define different configurations:
from agent_playbook import export
from .support_agent import SupportDeps, support_agent
export(
agent=support_agent,
scenarios=[
{
"name": "ACME Corp",
"settings": SupportDeps(
company_name="ACME Corporation", support_email="support@acme.com"
),
},
{
"name": "TechStart",
"settings": SupportDeps(
company_name="TechStart Inc", support_email="help@techstart.io"
),
},
],
)
Start the server and open http://localhost:8765:
playbook myapp.agents --reload
🛠️ CLI Reference
playbook <package> [options]
Options:
--host TEXT Server host (default: 127.0.0.1)
--port INTEGER Server port (default: 8765)
--reload Auto-reload on code changes
🤝 Contributing
Contributions are welcome! Fork the repository, create a feature branch, and submit a Pull Request.
📄 License
Licensed under AGPL-3.0. See LICENSE for details.
Project details
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 agent_playbook-0.1.2.tar.gz.
File metadata
- Download URL: agent_playbook-0.1.2.tar.gz
- Upload date:
- Size: 167.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40c5a975406e0020e3a9933a5f6884a6d306fa6c964aac8337feb1ff4b4ed967
|
|
| MD5 |
c1b41e3d9c7de53a7e296d1dcbe2b926
|
|
| BLAKE2b-256 |
56c6dbd3a339e95a09dc6d4783008983fb3379d4461a45788bd66e92d917a6ae
|
File details
Details for the file agent_playbook-0.1.2-py3-none-any.whl.
File metadata
- Download URL: agent_playbook-0.1.2-py3-none-any.whl
- Upload date:
- Size: 169.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9314cb125b461703320eae607c679ce78c99c801650eea943a5973e713c2525
|
|
| MD5 |
ebc56cb41b673f450189b4218f1de11f
|
|
| BLAKE2b-256 |
62fbb7e16b601638f0be53ab62a9df62296823b12a4907b3ceb042be9265b6b4
|