Files
obsidian-sympozium/06-Komunikacja/Web Endpoints - OpenAI-compat API.md
2026-03-25 00:05:57 +01:00

2.2 KiB

Web Endpoints - OpenAI-compat API

#sympozium #komunikacja #web #api

Koncepcja

Sympozium może eksponować agentów jako HTTP API kompatybilne z OpenAI API i MCP protocol.

Architektura

HTTP Client
    ↓
Envoy Gateway → HTTPRoute (per instance)
    ↓
Web Proxy Pod (Deployment - server mode):
  ├── Agent container
  ├── Web Proxy sidecar:
  │   ├── POST /v1/chat/completions → tworzy AgentRun (task mode)
  │   ├── GET /v1/models → listuje dostępne modele
  │   ├── SSE /sse → MCP streaming
  │   ├── POST /message → MCP request
  │   └── Auth: Bearer sk-<hex> API key
  ├── IPC Bridge
  └── Skill sidecars

Aktywacja

Dodanie skillu web-endpoint do SympoziumInstance:

skills:
  - skillPackRef: web-endpoint

Instance Reconciler automatycznie:

  1. Tworzy AgentRun w trybie server
  2. AgentRun Reconciler tworzy Deployment + Service
  3. Jeśli Gateway dostępny → HTTPRoute

Endpointy

Endpoint Metoda Opis
/v1/chat/completions POST OpenAI-compatible chat
/v1/models GET Lista modeli
/sse GET MCP SSE stream
/message POST MCP request
/health GET Health check

Auto-generated API key

Controller automatycznie generuje Secret z API key:

Secret: <instance>-web-endpoint-key
  Data:
    api-key: sk-<random-hex>

Użytkownik używa klucza w Bearer auth:

curl -H "Authorization: Bearer sk-abc123" \
  https://my-agent.sympozium.example.com/v1/chat/completions

Rate limiting

webEndpoint:
  rateLimit:
    requestsPerMinute: 60
    burstSize: 10

Per-request AgentRun

Kluczowe: Web proxy sam działa jako Deployment (server mode), ale każdy przychodzący request tworzy osobny AgentRun w trybie task:

POST /v1/chat/completions
    ↓
Web Proxy → tworzy AgentRun (mode: task, label: source=web-proxy)
    ↓
AgentRun → Job → Agent → wynik
    ↓
Web Proxy → HTTP Response (blocking lub streaming)

To zachowuje ephemeral model: izolacja, RBAC, cleanup per request.


Powiązane: Tryb Server vs Task | SympoziumInstance | Cykl życia AgentRun