Install
$ agentstack add mcp-hupe1980-agentmesh β scanned Β· β verified, works with Claude Code, Cursor, and more.
Security review
β PassedNo issues found. Passed automated security review. Β· v0.1.0 How review works β
- β Prompt-injection patterns
- β Secret / credential exfiltration
- β Dangerous shell & filesystem operations
- β Untrusted network calls
- β Known-malicious package signatures
What it can access
- β Network access No
- β Filesystem access No
- β Shell / process execution No
- β Environment & secrets Used
- β Dynamic code execution No
From automated source analysis of v0.1.0. βUsedβ means the capability is present in the source β more access means more to trust, not that itβs unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work βAbout
π€πΈοΈ AgentMesh
[](https://go.dev/) [](https://opensource.org/licenses/Apache-2.0) [](https://goreportcard.com/report/github.com/hupe1980/agentmesh) [](https://pkg.go.dev/github.com/hupe1980/agentmesh)
> Production-grade multi-agent orchestration framework powered by Pregel-style bulk-synchronous parallel (BSP) graph processing. Build sophisticated AI agent workflows with parallel execution, state management, and enterprise-grade observability.
Requires Go 1.24+
β¨ Key Features
Core Engine
- π Pregel BSP Execution - Parallel graph processing with optimized concurrency (4-10x faster state access)
- π§ LLM Integration - Native support for OpenAI, Anthropic, Gemini, Amazon Bedrock, Ollama with streaming and reasoning models
- πΎ State Management - Lock-free channel-based state with checkpointing, managed value descriptors, and resume-time rehydration hooks
- π οΈ Tool Orchestration - Type-safe function calling with automatic schema generation
- π Model Routing - Intelligent model selection based on cost, capabilities, and availability
Production Ready
- β Graph Validation - Comprehensive compile-time error checking (cycles, missing nodes, unreachable paths)
- πΎ Checkpointing - Persistent state with auto-resume, encryption, and signing
- β»οΈ Zero-Copy Resume - Copy-on-write checkpoint restores reuse the saved map and only allocate when keys mutate (10k+ key checkpoints resume without GC spikes)
- βΈοΈ Human-in-the-Loop - Approval workflows with conditional guards and audit trails
- π Observability - Built-in OpenTelemetry metrics, non-blocking event bus fan-out, and distributed tracing
- π Resilience - Configurable retry policies, circuit breakers, and timeouts
- π Security - WASM sandboxing and integrity checks
AI/ML Features
- π’ Embeddings & Memory - Semantic search and long-term conversation storage
- π RAG Integration - Vector stores (pgvector, Qdrant, Pinecone, Weaviate), AWS Bedrock Knowledge Bases, Kendra, and automatic query rephrasing
- π§ Native Reasoning - First-class support for o1, o3, Gemini 2.0, Claude reasoning models
- π Prompt Templates - Variable substitution with reusable patterns
Extensibility
- π€ A2A Protocol - Multi-agent collaboration with standardized communication
- π MCP Support - Dynamic tool discovery from Model Context Protocol servers
- π LangChainGo Tools - Import existing tool ecosystem
- βοΈ Custom Backends - Pluggable MessageBus for distributed execution (Redis, Kafka)
π Quick Start
Installation
go get github.com/hupe1980/agentmesh@latest
Hello World ReAct Agent
package main
import (
"context"
"fmt"
"log"
"os"
"strings"
"github.com/hupe1980/agentmesh/pkg/agent"
"github.com/hupe1980/agentmesh/pkg/graph"
"github.com/hupe1980/agentmesh/pkg/message"
"github.com/hupe1980/agentmesh/pkg/model/openai"
"github.com/hupe1980/agentmesh/pkg/tool"
)
// WeatherArgs defines the JSON schema for the weather tool.
type WeatherArgs struct {
Location string `json:"location" jsonschema:"description=The city to get weather for"`
}
func main() {
ctx := context.Background()
// Validate API key
if strings.TrimSpace(os.Getenv("OPENAI_API_KEY")) == "" {
log.Fatal("OPENAI_API_KEY environment variable is required")
}
// Create OpenAI model (uses OPENAI_API_KEY env var)
model := openai.NewModel()
// Define a tool with typed arguments
weatherTool, err := tool.NewFuncTool(
"get_weather",
"Get current weather for a location",
func(ctx context.Context, args WeatherArgs) (string, error) {
return fmt.Sprintf("Weather in %s: Sunny, 72Β°F", args.Location), nil
},
)
if err != nil {
log.Fatal(err)
}
// Create ReAct agent
reactAgent, err := agent.NewReAct(model,
agent.WithTools(weatherTool),
agent.WithMaxIterations(5),
)
if err != nil {
log.Fatal(err)
}
// Execute agent and get the final result
messages := []message.Message{
message.NewHumanMessage("What's the weather in San Francisco?"),
}
lastMsg, err := graph.Last(reactAgent.Run(ctx, messages))
if err != nil {
log.Fatal(err)
}
fmt.Println(lastMsg.String())
}
Output:
Thought: I need to check the weather in San Francisco
Action: get_weather("San Francisco")
Observation: Weather in San Francisco: Sunny, 72Β°F
The weather in San Francisco is currently sunny with a temperature of 72Β°F.
π Documentation
Getting Started
- π [Getting Started Guide](docs/getting-started.md) - Complete tutorial with examples
- ποΈ [Architecture Overview](docs/architecture.md) - Understanding the Pregel BSP design
- π API Reference - Complete godoc
Core Concepts
- πΈοΈ [Graph Building](docs/core-concepts.md) - Nodes, edges, and execution flow
- ποΈ [State Management](docs/state-management.md) - Channels, reducers, checkpointing, and approval workflows
- π§ [Tools Guide](docs/tools.md) - Building and integrating tools
- π€ [Model Integration](docs/models.md) - LLM provider setup and configuration
Advanced Features
- π€ [Agent Patterns](docs/agents.md) - ReAct, RAG, and Supervisor agents
- π [Observability](docs/observability.md) - Metrics, tracing, and monitoring
- π [Middleware](docs/middleware.md) - Caching, rate limiting, circuit breakers
- π [Custom Schedulers](docs/advanced.md#custom-schedulers) - Priority-based and resource-aware vertex execution
- π§ [Memory & Embeddings](docs/memory.md) - Semantic search and conversation storage
- π€ [A2A Protocol](docs/a2a.md) - Multi-agent collaboration
- π [WASM Sandboxing](docs/wasm-sandboxing.md) - Secure untrusted code execution
π¨ Examples
Explore 41 comprehensive examples in the [examples/](examples/) directory:
| Example | Description | |---------|-------------| | [basicagent](examples/basicagent/) | Simple ReAct agent with tools | | [blogwriter](examples/blogwriter/) | Multi-agent blog writing with progress tracking | | [conversationalagent](examples/conversationalagent/) | Agent with long-term memory across turns | | [documentloader](examples/documentloader/) | Document loading and ingestion pipeline | | [supervisoragent](examples/supervisoragent/) | Multi-agent coordination with supervisor | | [reflectionagent](examples/reflectionagent/) | Self-critique and iterative refinement | | [checkpointing](examples/checkpointing/) | State persistence and resume | | [humanapproval](examples/humanapproval/) | Approval workflows with conditional guards | | [paralleltasks](examples/paralleltasks/) | Concurrent node execution | | [streaming](examples/streaming/) | Real-time response streaming | | [middleware](examples/middleware/) | Rate limiting and circuit breakers | | [customscheduler](examples/customscheduler/) | Priority and resource-aware scheduling | | [observability](examples/observability/) | OpenTelemetry integration | | [a2aintegration](examples/a2aintegration/) | Agent-to-agent communication | | [wasmtool](examples/wasmtool/) | Sandboxed tool execution |
[See all examples β](examples/)
Running Examples
# Run any example
cd examples/basic_agent
go run main.go
# Set required environment variables
export OPENAI_API_KEY=your-key-here
export ANTHROPIC_API_KEY=your-key-here # For Anthropic examples
ποΈ Architecture
AgentMesh uses a layered architecture with clean separation of concerns:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Application Layer (pkg/agent) β
β β’ ReActAgent, SupervisorAgent, RAGAgent β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Graph Orchestration (pkg/graph) β
β β’ Workflow construction β’ State management β’ Validation β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Execution Engine (pkg/pregel) β
β β
β β’ BSP Runtime β’ Worker pools β’ MessageBus β
β β’ Superstep sync β’ Sharded frontier β’ Backpressure β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Components:
- Graph - Define nodes, edges, and execution flow with
NodeFunc - BSPState - Copy-on-write state with typed
Key[T]andListKey[T] - Pregel Runtime - Bulk-synchronous parallel execution with sharded message passing
- Checkpointer - State persistence with encryption, signing, and two-phase commit
- Agents - High-level abstractions (ReAct, Supervisor, RAG)
[Learn more about the architecture β](docs/architecture.md)
π§ͺ Testing
# Run all tests
go test ./...
# With coverage
go test ./... -coverprofile=coverage.out
go tool cover -html=coverage.out
# Run benchmarks
go test ./... -bench=. -benchmem
Testing Utilities
The pkg/testutil package provides mock implementations and builders for testing agents and workflows. See the [Testing Guide](docs/testing.md) for comprehensive documentation.
import "github.com/hupe1980/agentmesh/pkg/testutil"
// Create a mock model with builder pattern
model := testutil.NewModelBuilder().
WithResponse("Hello!").
WithToolCalls(message.ToolCall{Name: "search"}).
Build()
// Create a mock tool
tool := testutil.NewToolBuilder("search").
WithResult("search results").
Build()
// Record and assert model interactions
recorder := testutil.NewConversationRecorder()
// ... run agent ...
recorder.AssertRequestCount(t, 1)
recorder.AssertToolCallMade(t, "search")
π€ Contributing
Contributions are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Write tests for your changes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Guidelines
- All new code must have tests (target 85%+ coverage)
- Run
go fmtandgolangci-lintbefore committing - Update documentation for public API changes
- Add examples for new features
π License
Licensed under the Apache License 2.0 - see [LICENSE](LICENSE) for details.
π Acknowledgments
- Pregel Paper - Google's bulk-synchronous parallel graph processing model
- Go Community - Exceptional tooling and ecosystem
- OpenTelemetry - Production-grade observability standards
β Star this repo if you find it useful!
Made with β€οΈ by hupe1980
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source β we do not rehost the code.
- Author: hupe1980
- Source: hupe1980/agentmesh
- License: Apache-2.0
- Homepage: https://hupe1980.github.io/agentmesh/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.