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"
)
funcmain() {
ctx:=context.Background()
// Create coordinatorcoord:=worker.NewCoordinator(worker.CoordinatorConfig{
ID: "my-coordinator",
})
// Register workerscoord.Pool().Register(NewMyWorker())
// Executeresp, 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"
)
funcmain() {
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.