Active internal development for this project has moved to the private zebadee2kk/agent-toolkit repository at:
ai-powertools/
This public repository remains available as a public reference / legacy source unless Richard separately approves an archive decision. External users should treat this repository as reference material unless a future public status update says otherwise.
No repository deletion or archive action is planned in this PR.
The composable toolkit that LangChain should have been.
AI PowerTools is a comprehensive collection of 64+ modular, production-ready AI engineering components. Whether you need a simple cost tracker, a complex multi-model consensus engine, or a privacy-first memory system, PowerTools provides the building blocks.
Every AI engineering team rebuilds the same foundational components. Most existing frameworks are either too monolithic (hard to use just one part) or too enterprise (requires cloud subscription).
AI PowerTools is different:
- Truly Modular:
pip install ai-powertools[router]installs JUST the router. - Local-First: Defaults to local models (Ollama/llama.cpp) to save costs and protect privacy.
- Provider Agnostic: One unified interface for OpenAI, Anthropic, Gemini, Grok, and local models.
- Composability: Use our components inside LangChain, CrewAI, or your own custom agent.
| Tier | Name | Goal |
|---|---|---|
| 0 | Meta-Tools | Tools to automate the development of your AI projects. |
| 1 | Foundations | The core "plumbing": Routing, Costing, Privacy, State. |
| 2 | Middleware | Infrastructure layers for resilience and optimization. |
| 3 | Tools | Specialized logic like Memory, Validation, and Prompt Engineering. |
| 4 | Orchestrators | High-level systems for agents and autonomous workflows. |
| 5 | Reference Apps | Real-world applications built entirely with PowerTools. |
Note: AI PowerTools is currently in the Research & Design phase. The first components are being prototyped.
from powertools.router import LLMRouter
from powertools.cost import CostTracker
from powertools.memory import MemoryManager
# 1. Initialize with local-first strategy
router = LLMRouter(local_default="mistral")
# 2. Track everything with one line
with CostTracker(budget=5.00) as tracker:
# 3. Intelligent routing based on task complexity
result = await router.route("Summarize this 50-page PDF", complexity=0.8)
# 4. Save to persistent, hierarchical memory
await MemoryManager().store_episode(
event="Summary generated",
category="work.research",
details=result.content
)We are currently tracking 64 component ideas distilled into 7 Core Modules.
- 🎯 ROADMAP.md: High-level vision and 4-milestone execution plan.
- ⛓️ docs/BUILD_STRATEGY.md: Bootstrapping philosophy and multiplier build order.
- 📊 docs/COMPONENT_MATRIX.md: The 64-to-7 module distillation and complexity analysis.
- 🔬 docs/RESEARCH_LANDSCAPE.md: Deep-dive research, competitive analysis, and all 64 component details.
- 🧠 docs/MEMORY_ARCHITECTURE.md: Detailed spec for the Memory Manager (#25).
- 🛡️ SECURITY.md: Our privacy-first security protocols.
- 🤝 CONTRIBUTING.md: Branching strategy and human/AI handover rules.
We are building a community of AI engineers who value stability, privacy, and modularity.
- Found a bug? Open an Issue.
- Want to help? Check the CONTRIBUTING.md guide.
- Stay Updated: Follow the CHANGELOG.md.
Stay Power-ful! 🚀