> DOCUMENTAÇÃO

Comece em menos de 2 minutos.

Guia completo de instalação, configuração e primeiros passos com AgentOffice.

> PRÉ-REQUISITOS

O que você precisa

Requisitos mínimos para rodar AgentOffice em desenvolvimento ou produção.

⬡
Node.js 18+
Runtime base para todos os processos. LTS recomendado para ambientes de produção.
Obrigatório
⚡
Bun 1.0+
Recomendado para máxima performance. Substitui Node.js como executor e gerenciador de pacotes.
Recomendado
◆
Anthropic API Key
Chave de acesso ao provider de LLM. OpenAI e outros providers também são suportados.
Obrigatório
Opcionais
NATS Server Comunicação P2P entre instâncias. Necessário para deploy multi-node.
Qdrant Busca vetorial de alta performance. Recomendado para catálogos com 1000+ agentes.
Docker / Kubernetes Necessário apenas para deploys containerizados em produção.
> QUICKSTART

Em funcionamento em 5 passos

Da instalação à primeira resposta roteada automaticamente.

01
Instalar dependências — escolha seu gerenciador
bash
$ npm install -g @mariozechner/pi-coding-agent
# ou, com bun (recomendado)
$ bun add -g @mariozechner/pi-coding-agent
02
Criar AGENTS.md — define os agentes disponíveis
AGENTS.md
# agents

## builder
Especialista em desenvolvimento de software. Escreve código limpo e testes.
Skills: TypeScript, Node.js, arquitetura de software.

## reviewer
Revisa código com foco em qualidade, segurança e performance.
Skills: code review, análise estática, boas práticas.

## devops
Especialista em infraestrutura e automação de deploys.
Skills: Docker, Kubernetes, CI/CD, observabilidade.
03
Configurar settings.json — providers e extensões
settings.json
{
  "providers": {
    "anthropic": {
      "apiKey": "sk-ant-..."
    }
  },
  "extensions": ["agent-office"],
  "routing": {
    "scorer": "hybrid",
    "rerank": false
  }
}
04
Iniciar o servidor — portal e API sobem juntos
bash
$ pi -e extensions/agent-office.ts

✓ Portal: http://localhost:3000
✓ API: http://localhost:3777
✓ Roteamento: HybridScorer online
✓ Agentes: builder | reviewer | devops
05
Primeira mensagem — roteamento automático
portal — localhost:3000
> Preciso que alguém revise o PR #42 antes do merge.

[routing:decision] → reviewer (score: 0.96)
Analisando o PR #42...

Encontrei 3 problemas a corrigir antes do merge:
1. Falta de validação de entrada em UserController.ts:42
2. Query N+1 potencial em OrderService.findAll()
3. Teste de integração sem mock do banco de dados
> CONCEITOS

Entendendo a arquitetura

Os blocos fundamentais que compõem o AgentOffice.

runtime
Extensão Pi
AgentOffice é executado via pi -e extensions/agent-office.ts. O Pi runtime gerencia o loop de conversa, contexto e ciclo de vida dos agentes.
configuração
AGENTS.md
Define os agentes disponíveis em Markdown. Nome, descrição e skills são extraídos pelo parser e indexados pelo roteador automaticamente.
inteligência
Roteamento Semântico
HybridScorer analisa cada mensagem com embeddings + heurísticas e seleciona o agente com maior score de afinidade para o contexto.
interface
Portal Next.js
Interface em tempo real com visualização de routing decisions via SSE. Histórico de conversas, métricas e estado dos agentes.
:3000
integração
API REST
Controle programático completo. Envie mensagens, crie equipes, cancele execuções e consulte métricas de qualquer aplicação.
:3777
comunicação
coms-net
Hub de comunicação agente-a-agente com suporte a namespaces para isolamento. Permite colaboração estruturada entre múltiplos agentes.
:8787
> ESTRUTURA

Organização do projeto

Estrutura canônica de um projeto AgentOffice.

estrutura de diretórios
seu-projeto/
├── AGENTS.md              ← define agentes e roteamento
├── settings.json          ← providers, extensões, config
├── extensions/
│   ├── agent-office.ts    ← extensão principal
│   ├── coms-net.ts        ← hub de comunicação
│   ├── mcp.ts             ← tools MCP
│   └── skills/
│       ├── global/            ← skills compartilhadas
│       └── agents/            ← skills por agente
├── projects/                  ← dados persistentes por projeto
│   ├── <project-id>/
│   │   ├── context.json
│   │   └── sessions/
└── k8s/                       ← manifests Kubernetes
    ├── namespace.yaml
    ├── configmap.yaml
    ├── secret.yaml
    ├── deployment.yaml
    └── service.yaml
> CONFIGURAÇÃO

Variáveis de ambiente

Configure o comportamento do AgentOffice via variáveis de ambiente ou .env.

Variável Tipo Descrição
ANTHROPIC_API_KEY string Chave de API Anthropic. Necessária quando o provider selecionado é anthropic.
OPENAI_API_KEY string Chave de API OpenAI. Utilizada quando o provider alternativo é openai.
PI_NATS_URL string URL do servidor NATS (ex: nats://localhost:4222). Ativa transporte P2P entre instâncias.
PI_NATS_TOKEN string Token compartilhado para autenticação no cluster NATS. Modo B de conectividade.
QDRANT_URL string URL do servidor Qdrant (ex: http://localhost:6333). Ativa QdrantScorer para catálogos com 1000+ agentes.
ROUTING_RERANK boolean Ativa cross-encoder para re-ranking dos candidatos. Aumenta precisão em ~12%, adiciona ~15ms de latência.
OFFICE_PORT number Porta da API REST. Padrão: 3777.
OFFICE_PORTAL_PORT number Porta do portal Next.js. Padrão: 3000.
OFFICE_MAX_SESSIONS number Limite de sessões simultâneas por instância. Padrão: 50. Ajuste conforme RAM disponível.
OFFICE_SESSION_TTL number Tempo de expiração de sessões ociosas em segundos. Padrão: 1800 (30 min).
ROUTING_EMBED_MODEL string Modelo de embeddings para o scorer semântico. Padrão: text-embedding-3-small.
ROUTING_CACHE_TTL number TTL do cache de routing decisions em segundos. Padrão: 300.
LOG_LEVEL string Nível de log: error | warn | info | debug. Padrão: info.
METRICS_ENABLED boolean Expõe endpoint /metrics no formato Prometheus. Padrão: true.
> API REFERENCE

REST API — porta 3777

Todos os endpoints aceitam e retornam JSON. Rotas de streaming retornam text/event-stream.

Método Endpoint Descrição
GET /agents Lista todos os agentes disponíveis com status atual e capacidades declaradas.
POST /message Envia uma mensagem. Retorna SSE stream com routing decision e resposta do agente selecionado.
GET /agents/:id/status Estado atual de um agente: idle | thinking | responding.
GET /stream/:sessionId Reconecta ao SSE stream de uma sessão existente. Útil para retomar após queda de conexão.
POST /teams Cria uma equipe de agentes com configuração de colaboração e orquestração definida.
GET /teams Lista todas as equipes configuradas com membros e modo de operação.
POST /teams/:id/message Envia mensagem para uma equipe inteira. A orquestração distribui para os membros relevantes.
DELETE /sessions/:id Encerra uma sessão e libera recursos associados (contexto, buffers de streaming).
GET /routing/log Histórico paginado de decisões de roteamento com scores e metadados de cada escolha.
GET /routing/log/:id Detalhes completos de uma decisão específica: candidatos, scores e justificativa.
POST /agents/:id/cancel Cancela a execução em andamento de um agente e libera o token de resposta.
GET /metrics Endpoint Prometheus com métricas de latência, throughput e utilização de agentes.
GET /health Health check para liveness probe do Kubernetes. Retorna 200 OK quando o processo está saudável.
GET /ready Readiness probe: confirma que o roteador está inicializado e os agentes, carregados.
Exemplo — POST /message
POST /message
# Corpo da requisição
{
  "message":   "Revise o PR #42 antes do merge",
  "sessionId": "ses_abc123",    // opcional — cria novo se omitido
  "stream":    true              // retorna SSE quando true
}

# Resposta SSE
event: routing
data: {"agent":"reviewer","score":0.96,"reason":"code review intent"}

event: delta
data: {"content":"Analisando o PR #42..."}

event: done
data: {"sessionId":"ses_abc123","tokensUsed":312}
> DEPLOY

Kubernetes em produção

Do desenvolvimento local ao cluster multi-node com alta disponibilidade.

bash — desenvolvimento local
# Clonar e instalar
$ git clone https://github.com/your-org/agent-office
$ cd agent-office && bun install

# Configurar variáveis
$ cp .env.example .env
$ ANTHROPIC_API_KEY=sk-ant-... bun run dev

✓ Portal: http://localhost:3000
✓ API: http://localhost:3777
docker-compose.yml
services:
  agent-office:
    image: ghcr.io/your-org/agent-office:latest
    ports:
      - "3000:3000"   # portal
      - "3777:3777"   # api
      - "8787:8787"   # coms-net
    environment:
      ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
      PI_NATS_URL:       nats://nats:4222
      QDRANT_URL:        http://qdrant:6333
    volumes:
      - ./AGENTS.md:/app/AGENTS.md:ro
      - ./settings.json:/app/settings.json:ro
      - ./projects:/app/projects
    depends_on: [nats, qdrant]

  nats:
    image: nats:2.10-alpine
    ports: ["4222:4222"]

  qdrant:
    image: qdrant/qdrant:v1.8.0
    ports: ["6333:6333"]
    volumes: [qdrant_data:/qdrant/storage]

volumes:
  qdrant_data:
bash
$ docker compose up -d

✓ Container nats Started
✓ Container qdrant Started
✓ Container agent-office Started
bash — deploy em cluster
# Aplicar manifests na ordem correta
$ kubectl apply -f k8s/namespace.yaml
$ kubectl apply -f k8s/configmap.yaml
$ kubectl apply -f k8s/secret.yaml
$ kubectl apply -f k8s/

# Aguardar pods ficarem prontos
$ kubectl -n agents rollout status deployment/pi-agent-alpha

Waiting for deployment "pi-agent-alpha" rollout...
deployment "pi-agent-alpha" successfully rolled out

# Verificar estado dos pods
$ kubectl -n agents get pods

NAME READY STATUS RESTARTS
pi-agent-alpha-7d4f9b-xk8r2 1/1 Running 0
pi-agent-alpha-7d4f9b-m9p3n 1/1 Running 0
◈
Ambientes de produção — Para alta disponibilidade, configure PI_NATS_URL para comunicação P2P entre instâncias e QDRANT_URL se você tiver mais de 50 agentes no catálogo. Ambas as configurações são transparentes para a aplicação — o roteador adapta a estratégia automaticamente.

> PRÓXIMOS PASSOS

Continue explorando

Aprofunde-se nos tópicos mais avançados da plataforma.