You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,7 @@ Phero is a modern Go framework for building multi-agent AI systems. Like ants in
27
27
-**🤝 Agent orchestration** Multi-agent workflows with role specialization, coordination, and runtime handoffs
28
28
-**🔀 Agent handoffs** Transfer control between agents at runtime; `Result.HandoffAgent` tells you where to route next
29
29
-**🌐 A2A protocol** Expose any agent as an HTTP A2A server, or call remote A2A agents as local tools
30
+
-**🔀 NATS Agent Protocol** Register agents as NATS micro services and discover/call them over pub/sub; wire-compatible with TypeScript and Python SDKs
30
31
-**🧩 LLM abstraction** Work with OpenAI-compatible endpoints (OpenAI, Ollama, etc.) and Anthropic
31
32
-**🖼️ Multimodal input** Mix text and images with typed content parts (`llm.Text`, `llm.ImageURL`, `llm.ImageFile`)
32
33
-**🔊 Audio I/O** OpenAI backend supports speech-to-text and text-to-speech via `llm.Transcriber` and `llm.SpeechSynthesizer`
@@ -77,7 +78,7 @@ Phero is organized into focused packages, each solving a specific problem:
77
78
### 🤖 Agent Layer
78
79
79
80
-**`agent`** Core orchestration for LLM-based agents with tool execution, chat loops, and runtime handoffs
80
-
-**`memory`** Conversational context management for multi-turn interactions (in-process, file-backed, RAG-backed, or PostgreSQL-backed)
81
+
-**`memory`** Conversational context management for multi-turn interactions (in-process, file-backed, RAG-backed, PostgreSQL-backed, or NATS JetStream KV-backed)
81
82
82
83
### 💬 LLM Layer
83
84
@@ -103,6 +104,7 @@ Phero is organized into focused packages, each solving a specific problem:
103
104
-**`skill`** Parse SKILL.md files and expose them as agent capabilities
104
105
-**`mcp`** Model Context Protocol adapter for external tool integration
105
106
-**`a2a`** Agent-to-Agent (A2A) protocol — expose agents as HTTP servers or call remote agents as tools
107
+
-**`nats`** NATS Agent Protocol v0.3 — register agents as NATS micro services; discover and call them over pub/sub
106
108
-**`trace`** Typed observability events; `trace/text` for human-readable colorized output; `trace/jsonfile` for NDJSON file logging; `trace.NewLLM` for raw LLM call wrapping
107
109
-**`tool/agent`** Create and run a sub-agent at runtime as a delegated tool
@@ -124,9 +126,13 @@ Comprehensive examples are included in the [`examples/`](examples/) directory:
124
126
|[LLM Middleware](examples/llm-middleware/)| Wrap an LLM with composable middleware for logging and other cross-cutting concerns |
125
127
|[Conversational Agent](examples/conversational-agent/)| REPL-style chatbot with short-term conversational memory and a simple built-in tool |
126
128
|[Long-Term Memory](examples/long-term-memory/)| REPL-style chatbot with semantic long-term memory (RAG) backed by Qdrant |
129
+
|[NATS Memory](examples/nats-memory/)| Persistent chatbot backed by NATS JetStream KV; conversation survives process restarts and supports named sessions |
127
130
|[Handoff](examples/handoff/)| One agent hands work off to a specialist agent at runtime using the built-in handoff mechanism |
128
131
|[A2A Server](examples/a2a/server/)| Expose a Phero agent as an A2A-compliant HTTP server for cross-process agent calls |
129
132
|[A2A Client](examples/a2a/client/)| Connect to a remote A2A agent and use it as a local tool inside an orchestrator |
133
+
|[A2A Multi-Agent Newsroom](examples/a2a/multi-agent/)| Three specialised agents (researcher, writer, editor) each running as an independent A2A server, coordinated by a local orchestrator |
134
+
|[NATS Agent](examples/nats-agent/)| Register a Phero agent as a NATS micro service and interact with it from an interactive client using the NATS Agent Protocol |
135
+
|[NATS Multi-Agent Newsroom](examples/nats-agent/multi-agent/)| Three specialised agents running as NATS micro services, orchestrated via service discovery and `Client.AsTool()`|
130
136
|[Debate Committee](examples/debate-committee/)| Multi-agent architecture where committee members debate independently and a judge synthesizes the final decision |
131
137
|[Evaluator-Optimizer](examples/evaluator-optimizer/)| Iterative generation loop where an optimizer proposes drafts and an evaluator critiques them until quality criteria are met |
132
138
|[Human-in-the-Loop](examples/human-in-the-loop/)| Multi-agent flow that pauses for explicit human approval/input before continuing |
0 commit comments