Installation and Setup Tutorial
Installation and Setup Tutorial
This tutorial will guide you through installing AgentHub and setting up your development environment from scratch. By the end, you’ll have a working A2A-compliant AgentHub installation ready for building Agent2Agent protocol systems.
Prerequisites Check
Before we begin, let’s verify you have the required software installed.
Step 1: Verify Go Installation
Check if Go 1.24+ is installed:
go version
You should see output like:
go version go1.24.0 darwin/amd64
If Go is not installed or the version is older than 1.24:
macOS (using Homebrew):
brew install go
Linux (using package manager):
# Ubuntu/Debian
sudo apt update && sudo apt install golang-go
# CentOS/RHEL
sudo yum install golang
# Arch Linux
sudo pacman -S go
Windows: Download from https://golang.org/dl/ and run the installer.
Step 2: Verify Protocol Buffers Compiler
Check if protoc is installed:
protoc --version
You should see output like:
libprotoc 3.21.12
If protoc is not installed:
macOS (using Homebrew):
brew install protobuf
Linux:
# Ubuntu/Debian
sudo apt update && sudo apt install protobuf-compiler
# CentOS/RHEL
sudo yum install protobuf-compiler
# Arch Linux
sudo pacman -S protobuf
Windows: Download from Protocol Buffers releases and add to PATH.
Step 3: Install Go Protocol Buffer Plugins
Install the required Go plugins for Protocol Buffers:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
Verify the plugins are in your PATH:
which protoc-gen-go
which protoc-gen-go-grpc
Both commands should return paths to the installed plugins.
Installing AgentHub
Step 4: Clone the Repository
Clone the AgentHub repository:
git clone https://github.com/owulveryck/agenthub.git
cd agenthub
Step 5: Verify Project Structure
Let’s explore what we have:
ls -la
You should see:
drwxr-xr-x agents/           # Sample A2A agent implementations
drwxr-xr-x broker/           # A2A-compliant AgentHub broker server
drwxr-xr-x documentation/    # Complete A2A documentation
drwxr-xr-x events/           # Generated A2A protocol code
drwxr-xr-x internal/         # Internal packages and abstractions
-rw-r--r-- go.mod            # Go module definition
-rw-r--r-- Makefile         # Build automation
drwxr-xr-x proto/           # A2A protocol definitions
-rw-r--r-- README.md        # Project overview
Step 6: Initialize Go Module
Ensure Go modules are properly initialized:
go mod tidy
This downloads all required dependencies. You should see output about downloading packages.
Step 7: Generate Protocol Buffer Code
Generate the Go code from Protocol Buffer definitions:
make proto
You should see:
Generating protobuf code for A2A protocol definitions...
Generating proto/eventbus.proto...
Generating proto/a2a.proto...
Protobuf code generated successfully.
Verify the generated files exist:
ls events/
You should see:
a2a/          # A2A protocol definitions
eventbus/     # AgentHub broker definitions
ls events/a2a/
You should see:
a2a.pb.go
a2a_grpc.pb.go
ls events/eventbus/
You should see:
eventbus.pb.go
eventbus_grpc.pb.go
Step 8: Build All Components
Build the AgentHub components:
make build
You should see:
Building A2A-compliant server binary...
Building A2A publisher binary...
Building A2A subscriber binary...
Build complete. A2A-compliant binaries are in the 'bin/' directory.
Verify the binaries were created:
ls bin/
You should see:
agenthub-server  # A2A-compliant AgentHub broker
publisher        # A2A message publisher
subscriber       # A2A message subscriber
Verification Test
Let’s verify everything works by running a quick test.
Step 9: Test the Installation
Start the A2A-compliant broker server in the background:
./bin/agenthub-server &
You should see:
2025/09/28 10:00:00 A2A-compliant AgentHub broker gRPC server listening on [::]:50051
2025/09/28 10:00:00 AgentHub service ready for A2A protocol communication
Start an A2A subscriber agent:
./bin/subscriber &
You should see:
A2A Agent started. Listening for A2A events and tasks. Press Enter to stop.
2025/09/28 10:00:05 A2A Agent agent_demo_subscriber subscribing to A2A tasks...
2025/09/28 10:00:05 Successfully subscribed to A2A tasks for agent agent_demo_subscriber. Waiting for A2A tasks...
Run the A2A publisher to send test tasks:
./bin/publisher
You should see A2A tasks being published and processed with conversation context and structured artifacts.
Clean up the test processes:
pkill -f agenthub-server
pkill -f subscriber
Development Environment Setup
Step 10: Configure Your Editor
For VS Code users:
Install the Go extension:
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for “Go” and install the official Go extension
- Open the AgentHub project folder
For other editors:
Ensure your editor has Go language support and Protocol Buffer syntax highlighting.
Step 11: Set Up Environment Variables (Recommended)
AgentHub uses environment variables for configuration. Create a .envrc file for local development:
cat > .envrc << EOF
# Core A2A AgentHub Configuration
export AGENTHUB_BROKER_ADDR="localhost"
export AGENTHUB_BROKER_PORT="50051"
export AGENTHUB_GRPC_PORT=":50051"
# A2A Protocol Configuration
export AGENTHUB_A2A_PROTOCOL_VERSION="1.0"
export AGENTHUB_MESSAGE_BUFFER_SIZE="100"
export AGENTHUB_CONTEXT_TIMEOUT="30s"
export AGENTHUB_ARTIFACT_MAX_SIZE="10MB"
# Health Check Ports
export AGENTHUB_HEALTH_PORT="8080"
export A2A_PUBLISHER_HEALTH_PORT="8081"
export A2A_SUBSCRIBER_HEALTH_PORT="8082"
# Observability (optional for development)
export JAEGER_ENDPOINT="http://localhost:14268/api/traces"
export SERVICE_NAME="agenthub-dev"
export SERVICE_VERSION="dev"
export ENVIRONMENT="development"
export LOG_LEVEL="DEBUG"
EOF
Install direnv for automatic loading (recommended):
# macOS
brew install direnv
# Ubuntu/Debian
sudo apt install direnv
# After installation, add to your shell
echo 'eval "$(direnv hook bash)"' >> ~/.bashrc  # For bash
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc    # For zsh
Allow the environment file:
direnv allow
Alternative: Manual loading
source .envrc
📖 For complete environment variable reference, see Environment Variables Reference
Step 12: Verify Make Targets
Test all available make targets:
make help
You should see all available commands:
Makefile for gRPC Event Bus
Usage:
  make <target>
Targets:
  all              Builds all binaries (default).
  proto            Generates Go code from .proto files.
  build            Builds the server, publisher, and subscriber binaries.
  run-server       Runs the event bus gRPC server.
  run-publisher    Runs the publisher client.
  run-subscriber   Runs the subscriber client.
  clean            Removes generated Go files and build artifacts.
  help             Displays this help message.
Common Issues and Solutions
Issue: “protoc-gen-go: program not found”
Solution: Ensure Go bin directory is in your PATH:
export PATH=$PATH:$(go env GOPATH)/bin
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
source ~/.bashrc
Issue: “go.mod not found”
Solution: Ensure you’re in the AgentHub project directory:
pwd  # Should show .../agenthub
ls go.mod  # Should exist
Issue: Port 50051 already in use
Solution: Kill existing processes or change the port:
lsof -ti:50051 | xargs kill -9
Issue: Permission denied on binaries
Solution: Make binaries executable:
chmod +x bin/*
Next Steps
Now that you have AgentHub installed and verified:
- Learn the basics: Follow the Running the Demo tutorial
- Build your first agent: Try Create a Subscriber
- Understand the concepts: Read The Agent2Agent Principle
Getting Help
If you encounter issues:
- Check the troubleshooting section above
- Review the complete documentation
- Open an issue on the GitHub repository
Congratulations! You now have a fully functional AgentHub development environment ready for building autonomous agent systems.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.