A deterministic, intent-based AI agent builder.
Project description
🤖 Pybotchi
A deterministic, intent-based AI agent builder with no restrictions—supports any framework and prioritizes human-reasoning approach.
🎯 Core Philosophy
Humans should handle the reasoning. AI should detect intent and translate natural language into processable data.
LLMs excel at intent detection and translation. Pybotchi leverages this strength while prioritizing the human way of declaring planning and reasoning through tool call chaining—where AI becomes the perfect interpreter between human intent and computational action.
⚡ Core Architecture
Nested Intent-Based Supervisor Agent Architecture with only 3 core classes:
Action- Describes the intent and execution logicContext- Holds prompts, metadata, and execution stateLLM- LLM client instance holder
🚀 Quick Start
Setup LLM
from langchain_openai import ChatOpenAI
from pybotchi import LLM
LLM.add(base=ChatOpenAI(...))
Simple Agent
from pybotchi import Action, ActionReturn, Context
class Translation(Action):
"""Translate to specified language."""
async def pre(self, context: Context) -> ActionReturn:
message = await context.llm.ainvoke(context.prompts)
await context.add_response(self, message.text)
return ActionReturn.GO
Agent with Fields
class MathProblem(Action):
"""Solve math problems."""
answer: str
async def pre(self, context: Context) -> ActionReturn:
await context.add_response(self, self.answer)
return ActionReturn.END
Multi-Agent Declaration
class MultiAgent(Action):
"""AI Assistant for solving math problems and translation."""
class SolveMath(MathProblem):
pass
class Translate(Translation):
pass
Execution
import asyncio
async def test():
context = Context(
prompts=[
{"role": "system", "content": "You're an AI that can solve math problems and translate requests."},
{"role": "user", "content": "4 x 4 and explain in Filipino"}
],
)
action, result = await context.start(MultiAgent)
print(context.prompts[-1]["content"])
asyncio.run(test())
Result: Ang 4 x 4 ay katumbas ng 16.
Paliwanag sa Filipino: Ang pag-multiply ng 4 sa 4 ay nangangahulugang ipinadadagdag mo ang bilang na 4 ng apat na beses (4 + 4 + 4 + 4), na nagreresulta sa sagot na 16.
Graph
from pybotchi import graph
async def print_mermaid_graph():
multi_agent_graph = await graph(MultiAgent)
print(multi_agent_graph.flowchart())
Result:
flowchart TD
__main__.MultiAgent.Translate[__main__.MultiAgent.Translate]
__main__.MultiAgent[__main__.MultiAgent]
__main__.MultiAgent.SolveMath[__main__.MultiAgent.SolveMath]
__main__.MultiAgent --> __main__.MultiAgent.Translate
__main__.MultiAgent --> __main__.MultiAgent.SolveMath
🧩 Core Features
Everything is Overridable & Extendable
class CustomAgent(MultiAgent):
SolveMath = None # Remove action
class NewAction(Action): # Add new action
pass
class Translate(Translation): # Override existing
async def pre(self, context):
# Custom translation logic
pass
Sequential & Concurrent Execution
- Sequential: Multiple agents execute in order
- Concurrent: Parallel execution using threads or tasks
- Iteration: Multiple executions via loops
MCP Integration
- As Server: Mount agents to FastAPI as MCP endpoints
- As Client: Connect to MCP servers and integrate tools
- Tool Override: Customize or replace MCP tools
Flexible Lifecycle Control
- Pre-Process: Setup and preparation
- Children Selection: Custom intent detection logic
- Children Execution: Sequential or concurrent processing
- Fallback: Graceful handling when no intent matches
- Post-Process: Response consolidation and cleanup
🎨 Key Benefits
- 🪶 Ultra-lightweight: Only 3 core classes to master
- 🔧 Completely overridable: Every component can be customized
- 🎯 Intent-focused: Leverages AI's natural language strengths
- ⚡ Async-first: Built for real-world web service integration
- 🔄 Deterministic: Predictable flows make debugging simple
- 🌐 Framework-agnostic: Works with any LLM framework
- 📊 Built-in tracking: Automatic usage monitoring and metrics
- 🤝 Community-driven: Modular agents maintained by different teams
🌟 Advanced Capabilities
Nested Agent Architecture
class ComplexAgent(Action):
class StoryTelling(Action):
class HorrorStory(Action):
pass
class ComedyStory(Action):
pass
class JokeTelling(Action):
pass
Dynamic Agent Composition
# Add children dynamically
ComplexAgent.add_child(NewAction)
ComplexAgent.StoryTelling.add_child(SciFiStory)
🚀 Why Choose Pybotchi?
Maximum flexibility, zero lock-in. Build agents that combine human intelligence with AI precision. Perfect for teams that need:
- Modular, maintainable agent architectures
- Framework flexibility and migration capabilities
- Community-driven agent development
- Enterprise-grade customization and control
- Real-time interactive agent communication
Ready to build smarter agents? Start with the examples and join the community building the future of human-AI collaboration.
📚 Examples & Use Cases
Ready to dive deeper? Check out these practical examples:
🚀 Getting Started
tiny.py- Minimal implementation to get you startedfull_spec.py- Complete feature demonstration
🔄 Flow Control
sequential_combination.py- Multiple actions in sequencesequential_iteration.py- Iterative action executionnested_combination.py- Complex nested structures
⚡ Concurrency
concurrent_combination.py- Parallel action executionconcurrent_threading_combination.py- Multi-threaded processing
🌐 Real-World Applications
interactive_action.py- Real-time WebSocket communicationjira_agent.py- Integration with MCP Atlassian serveragent_with_mcp.py- Hosting Actions as MCP tools
⚔️ Framework Comparison (Get Weather)
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 pybotchi-3.1.0.tar.gz.
File metadata
- Download URL: pybotchi-3.1.0.tar.gz
- Upload date:
- Size: 41.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.11 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d62a8d9200ca358d898e861fbe345a15db58878da6a1ff97e2f4869de2d82d2
|
|
| MD5 |
11161bc533480601a9bb9e645defb605
|
|
| BLAKE2b-256 |
1f04133ade3ba8942ad243c88b58be211fbd8f4b1f119305a63177d1156ec536
|
File details
Details for the file pybotchi-3.1.0-py3-none-any.whl.
File metadata
- Download URL: pybotchi-3.1.0-py3-none-any.whl
- Upload date:
- Size: 47.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.11 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4eb56f73faac3a282b94d0be7ba94910a8d224a8ff35ced96968a0434e6e645
|
|
| MD5 |
0fbb7c9afd5dea7a028fc9db94eb571e
|
|
| BLAKE2b-256 |
6dab1c649776dc50108b12f58ec6cd3a17ce6474f273705bcb4b5c1372dd2ac7
|