Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

helmcode/agent_crew_api

Repository files navigation

AgentCrew API

Orchestration backend for multi-agent AI teams. AgentCrew deploys and manages teams of Claude Code agents that collaborate through NATS messaging, with support for both Docker and Kubernetes runtimes.

Architecture

┌─────────────┐ ┌──────────┐ ┌───────────────────────────────┐
│ Frontend / │ │ │ │ Agent Container / Pod │
│ API Client │──────▶│ API │──────▶│ ┌─────────┐ ┌───────────┐ │
│ │ HTTP │ Server │ │ │ Sidecar │──│ Claude │ │
└─────────────┘ │ │ │ │ (Go) │ │ Code CLI │ │
 └────┬─────┘ │ └────┬─────┘ └───────────┘ │
 │ └───────┼─────────────────────┘
 │ │
 ┌────▼─────────────────────▼──┐
 │ NATS Server │
 │ (JetStream enabled) │
 └─────────────────────────────┘
  • API Server (cmd/api) — Fiber-based REST API that manages team lifecycles, agent deployments, and chat routing
  • Agent Sidecar (cmd/sidecar) — Runs inside each agent container, bridging NATS messages to the Claude Code CLI process
  • NATS — Message bus for real-time communication between the API server and agents

Tech Stack

Component Technology
Language Go 1.25+
HTTP Framework Fiber v2
Database SQLite via GORM
Messaging NATS with JetStream
Container Runtimes Docker Engine API, Kubernetes client-go
WebSocket Fiber WebSocket middleware

Quick Start

Using Docker Compose

# Clone the repository
git clone https://github.com/helmcode/agent_crew_api.git
cd agent_crew_api
# Copy environment template
cp .env.example .env
# Start all services (API + NATS)
docker compose up -d
# Verify the API is running
curl http://localhost:8080/health

Local Development

# Build both binaries
make build-all
# Run tests
make test
# Lint
make lint
# Build Docker images
make build-images
# Clean build artifacts
make clean

API Endpoints

Health

Method Path Description
GET /health Health check

Teams

Method Path Description
GET /api/teams List all teams
POST /api/teams Create a team (optionally with agents)
GET /api/teams/:id Get a team by ID
PUT /api/teams/:id Update a team
DELETE /api/teams/:id Delete a team
POST /api/teams/:id/deploy Deploy team infrastructure and agents
POST /api/teams/:id/stop Stop and teardown team

Agents

Method Path Description
GET /api/teams/:id/agents List agents in a team
POST /api/teams/:id/agents Add an agent to a team
GET /api/teams/:id/agents/:agentId Get an agent
PUT /api/teams/:id/agents/:agentId Update an agent
DELETE /api/teams/:id/agents/:agentId Remove an agent

Chat

Method Path Description
POST /api/teams/:id/chat Send a chat message to the team
GET /api/teams/:id/messages Get chat message history

Settings

Method Path Description
GET /api/settings Get application settings
PUT /api/settings Update a setting

WebSocket

Path Description
ws://host/ws/teams/:id/logs Stream agent logs in real-time
ws://host/ws/teams/:id/activity Stream team activity events

Environment Variables

Variable Default Description
NATS_AUTH_TOKEN (optional) NATS authentication token
NATS_URL nats://nats:4222 NATS server URL (sidecar)
DATABASE_PATH agentcrew.db SQLite database file path
LISTEN_ADDR :8080 HTTP server listen address
RUNTIME docker Container runtime: docker or kubernetes
KUBECONFIG ~/.kube/config Kubeconfig path (Kubernetes runtime only)

Runtime Support

AgentCrew supports two container runtimes, selected via the RUNTIME environment variable:

Docker (default)

Each team gets a Docker network, workspace volume, and NATS container. Agents run as Docker containers attached to the team network.

Kubernetes

Each team gets a Kubernetes namespace with a workspace PVC, NATS Deployment + Service, and API key Secret. Agents run as Pods in the team namespace. Supports both in-cluster and kubeconfig-based authentication.

Project Structure

.
├── cmd/
│ ├── api/ # Orchestrator API server entrypoint
│ ├── sidecar/ # Agent sidecar entrypoint
│ └── testserver/ # Test server with mock runtime
├── internal/
│ ├── api/ # Fiber routes, handlers, middleware, DTOs
│ ├── claude/ # Claude Code process manager (sidecar)
│ ├── models/ # GORM models and SQLite database setup
│ ├── nats/ # NATS client wrapper for pub/sub messaging
│ ├── permissions/ # Permission gate logic for agent actions
│ ├── protocol/ # Shared message types (JSON protocol)
│ └── runtime/ # Container runtime interface (Docker, Kubernetes)
├── build/
│ ├── api/ # API server Dockerfile
│ └── agent/ # Agent container Dockerfile
├── docker-compose.yml # Local development stack
├── Makefile # Build, test, and lint commands
├── go.mod
└── go.sum

License

This project is licensed under the GNU Affero General Public License v3.0.

About

Orchestration backend for multi-agent AI teams

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /