Go-first multi-agent worker framework for building task-oriented agent teams.
omniagent-worker provides building blocks for creating multi-agent systems in Go:
- ⚙️ Worker: Minimal interface for task-oriented agents
- 🎯 Coordinator: Manages worker teams with workflow support
- 📦 Pool: In-process worker management for embedded use
- 👁️ AgentOps: Full observability via OpenTelemetry-compatible tracing
go get github.com/plexusone/omniagent-workerpackage main
import (
"context"
worker "github.com/plexusone/omniagent-worker"
)
func main() {
ctx := context.Background()
// Create coordinator
coord := worker.NewCoordinator(worker.CoordinatorConfig{
ID: "my-coordinator",
})
// Register workers
coord.Pool().Register(NewMyWorker())
// Execute
resp, err := coord.Execute(ctx, &worker.CoordinatorRequest{
Input: map[string]any{"topic": "example"},
})
}package main
import (
"context"
worker "github.com/plexusone/omniagent-worker"
"github.com/plexusone/omniagent-worker/server"
)
func main() {
ctx := context.Background()
myWorker := NewMyWorker(worker.WorkerConfig{
ID: "my-worker",
Type: "processor",
})
server.Run(ctx, myWorker, server.Config{Port: 8080})
}┌─────────────────────────────────────────────┐
│ server/ (optional) │
│ HTTP endpoints, health checks, A2A │
├─────────────────────────────────────────────┤
│ Core Package │
│ Worker, Coordinator, Pool, AgentOps │
├─────────────────────────────────────────────┤
│ External Dependencies │
│ omniobserve/agentops, omnillm, eino │
└─────────────────────────────────────────────┘
omniagent-worker is part of the OmniAgent family:
| Package | Purpose |
|---|---|
omniagent |
Full conversational assistant with channels |
omniagent-worker |
Task-oriented workers and coordinators |
- CHANGELOG - Version history
- v0.1.0 Release Notes - Latest release
- PRD - Product requirements
- TRD - Technical requirements
- PLAN - Implementation plan
- ROADMAP - Future work
MIT License - see LICENSE for details.