Why Phero?
- ๐ฏ Purpose-built for agents: Not an LLM wrapper; a framework for orchestrating cooperative agent systems
- ๐งฉ Composable primitives: Small, focused packages that solve specific problems
- ๐ง Tool-first design: Built-in support for function tools, skills, RAG, and MCP
- ๐จ Developer-friendly: Clean APIs, opt-in tracing, OpenAI-compatible LLM support
- ๐ชถ Lightweight: No heavy dependencies; just Go and your choice of LLM provider
Features
- ๐ค Agent orchestration: Multi-agent workflows with role specialization and coordination
- ๐งฉ LLM abstraction: Work with OpenAI, Ollama, or any OpenAI-compatible endpoint
- ๐ ๏ธ Function tools: Expose Go functions as callable tools with automatic JSON Schema generation
- ๐ RAG (Retrieval-Augmented Generation): Built-in vector storage and semantic search
- ๐ง Skills system: Define reusable agent capabilities in SKILL.md files
- ๐ MCP support: Integrate Model Context Protocol servers as agent tools
- ๐งพ Memory management: Conversational context storage for agents
- โ๏ธ Text splitting: Document chunking for RAG workflows
- ๐งฌ Embeddings: Semantic search capabilities via OpenAI embeddings
- ๐๏ธ Vector stores: Vector database integration
Architecture
- Agent Layer
agent: Core orchestration for LLM-based agents with tool execution and chat loopsmemory: Conversational context management for multi-turn interactions
- LLM Layer
llm: Clean LLM interface with function tool support and JSON Schema utilitiesllm/openai: OpenAI-compatible client (works with OpenAI, Ollama, and compatible endpoints)
- Knowledge Layer
embedding: Embedding interface for semantic operationsembedding/openai: OpenAI embeddings implementationvectorstore: Vector storage interface for similarity searchvectorstore/qdrant: Qdrant vector database integrationvectorstore/psql: PostgreSQL + pgvector integrationtextsplitter: Document chunking for RAG workflowsrag: Complete RAG pipeline combining embeddings and vector stores
- Tools & Integration
skill: Parse SKILL.md files and expose them as agent capabilitiesmcp: Model Context Protocol adapter for external tool integrationtool/file: File system operationstool/go: Safe Go command executiontool/python: Python script executiontool/human: Human-in-the-loop input collection
Examples
| Example | Description |
|---|---|
| Simple Agent | Start here! Minimal example showing one agent with one custom tool perfect for learning the basics |
| Conversational Agent | REPL-style chatbot with short-term conversational memory and a simple built-in tool |
| Long-Term Memory | REPL-style chatbot with semantic long-term memory (RAG) backed by Qdrant |
| Debate Committee | Multi-agent architecture where committee members debate independently and a judge synthesizes the final decision |
| Multi-Agent Workflow | Classic Plan โ Execute โ Analyze โ Critique pattern with specialized agent roles |
| RAG Chatbot | Terminal chatbot with semantic search over local documents using Qdrant |
| Skill | Discover SKILL.md files and expose them as callable agent tools |
| MCP Integration | Run an MCP server as a subprocess and expose its tools to agents |
| Supervisor Blackboard | Supervisor-worker pattern with a shared blackboard for coordination |
Design Philosophy
- Composability over monoliths: Each package does one thing well
- Interfaces over implementations: Swap LLMs, vector stores, or embeddings easily
- Explicit over implicit: No hidden magic; clear control flow
- Tools are first-class: Function tools are the primary integration point
- Developer experience matters: Clean APIs, helpful tracing, good error messages
Contributing
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Acknowledgments
Built with โค๏ธ by Simone Vellei.
Inspired by the collaborative intelligence of ant colonies where independent agents work together toward shared goals, recognizing one another and coordinating through clear protocols.
The ant is not just a mascot. It is the philosophy. ๐
Links
- Documentation: pkg.go.dev/github.com/henomis/phero
- Issues: github.com/henomis/phero/issues
- Discussions: github.com/henomis/phero/discussions