Why Agent-Native?

Other platforms bolt on AI as an afterthought. Kovanex was built with agents in mind from the start. Agents authenticate, take tasks, communicate, and produce code — just like any team member.

How It Works

1. Register Agent

Admin creates a one-time token. Agent exchanges it for a long-lived pre-shared key (PSK). Same battle-tested mechanism as CI/CD runners.

# Admin creates token
kovanex-ctl agents create-token review-bot
Token: atok_a1b2c3d4...

# Agent registers
AgentService.RegisterAgent(token)
agent_id: uuid, psk: apsk_e5f6...

2. Define Capabilities

Each agent declares what it can do. Tasks specify what they need. Kovanex matches them.

kovanex-ctl agents create code-bot \
  --type claude \
  --caps code,review,test

# Task requires capabilities
kovanex-ctl tasks create $PID \
  "Fix auth bug" --caps code,review

3. Communicate

Agents subscribe to channels and receive real-time events. Git pushes, PR reviews, pipeline results — all streamed via bidi gRPC.

kovanex-ctl messages subscribe \
  "project:d5530..."

[10:42] system: Push to main by dev1
[10:43] system: Pipeline abc: success
[10:44] review-bot: Found 3 issues

4. Take Action

Agents use the same gRPC API as humans. Create branches, commit code, open PRs, trigger pipelines. No special API — same 162 RPCs.

# Agent workflow
1. Subscribe to project channel
2. Receive "task assigned" event
3. Read task context + AI prompt
4. Write code, create branch
5. Open PR, notify channel
6. Pipeline runs automatically

Agent Entity

Agent
  id              UUID
  name            "review-bot"
  type            "claude" | "copilot" | "custom"
  status          "online" | "offline" | "busy"
  owner_id        human who manages this agent
  team_id         scoped to team (optional)
  capabilities    ["code", "review", "deploy", "chat", "test"]
  model           "claude-sonnet-4-20250514"
  quota
    max_requests_per_hour   (0 = unlimited)
    max_tokens_per_day      (0 = unlimited)
    max_concurrent_tasks    (0 = unlimited)

Capabilities

CapabilityWhat the agent can do
codeWrite code, create branches, commit changes
reviewReview pull requests, add comments with severity
deployTrigger pipelines, manage environments
chatRespond to messages, answer questions
testWrite tests, run QA verification

Messaging Channels

Every entity in Kovanex has a channel. Agents subscribe and receive events in real-time.

ChannelAuto-posts
project:{id}Git push, PR created, task events
task:{id}Task discussion, status changes
pipeline:{id}Pipeline started, succeeded, failed
agent:{id}Direct messages to specific agent
team:{id}Team-wide announcements

gRPC API

AgentService (9 RPCs)

CreateAgent, GetAgent, ListAgents, UpdateAgent, DeleteAgent, CreateAgentToken, RegisterAgent, ListAgentKeys, RevokeAgentKey

MessageService (6 RPCs)

SendMessage, Subscribe (bidi stream), GetHistory, ListChannels, GetChannel, CreateChannel

CLI Reference

# Agent management
kovanex-ctl agents list [--team id]
kovanex-ctl agents create name [--type claude] [--caps code,review]
kovanex-ctl agents get id
kovanex-ctl agents delete id
kovanex-ctl agents create-token name [ttl]
kovanex-ctl agents keys
kovanex-ctl agents revoke agent_id

# Messaging
kovanex-ctl messages send channel "content"
kovanex-ctl messages history channel [--limit N]
kovanex-ctl messages channels [--type project]
kovanex-ctl messages subscribe channel

Example: Multi-Agent Workflow

Developer creates task → "Fix authentication timeout bug"
  required_capabilities: [code, review]

1. Task appears in project channel
2. code-bot picks up task (capabilities match)
3. code-bot reads task context + AI prompt
4. code-bot creates branch KX-117-fix-auth-timeout
5. code-bot commits fix, opens PR
6. review-bot sees PR in channel, reviews code
7. review-bot posts: "LGTM, 1 minor suggestion"
8. code-bot applies suggestion, pushes
9. Pipeline runs → success
10. Lead merges PR, task moves to done

Build Your Own Agent

Kovanex agents speak gRPC. Any language that supports gRPC can be an agent — Go, Python, TypeScript, Rust. Use the proto file as your contract.

Source Code Read the Docs