Referencia de la API de Kova
API REST completa construida sobre Axum, más de 35 endpoints, formato JSON unificado —— cubre Agent, tareas, Workflow, Swarm, WAL y administración del sistema.
Base URLBase URLLa dirección raíz de la API. La Base URL de Lurus es https://hub.lurus.cn/v1.
http://localhost:3000/api/v1Autenticación
Todas las solicitudes pasan la API key mediante el header X-API-Key obligatorio:
X-API-Key: sk-kova-<64位十六进制>Formato de la key: ^sk-kova-[a-f0-9]{64}$, generada por create-tester.sh, almacenada en testers/<NAME>/.env (chmod 600).
Límite de tasa
Ventana de idempotencia
POST /agents/:id/run reenviar el mismo agent dentro de 15 s devuelve 409 Conflict.Límite de contrapresión
429 Too Many Requests (con Retry-After: 5).Administración de Agent
/api/v1/agentsCrear Agent/api/v1/agentsListar Agent (admite status / limit / offset)/api/v1/agents/:idObtener detalles del Agent/api/v1/agents/:idActualizar Agent/api/v1/agents/:idEliminar AgentCuerpo de la solicitud de creación:
{ "name": "researcher", "system_prompt": "你是一个专业的研究员...", "model": "deepseek-chat",
"tools": ["web_search", "file_write"],
"config": { "max_tokens": 4096, "temperature": 0.7, "max_iterations": 20 } }Respuesta (201): { "id": "agt_a1b2c3d4", "name": "researcher", "status": "idle", "created_at": "2026-03-17T10:00:00Z" }
Al listar se pueden usar los parámetros de query GET /api/v1/agents?status=idle&limit=20&offset=0.
WARNING
Solo se pueden eliminar Agent en estado idle o completed. Los que están en ejecución deben detenerse primero.
Ejecución de tareas
/api/v1/agents/:id/runDisparar la ejecución de una tarea por el Agent/api/v1/eventsFlujo de eventos SSE (envía en tiempo real todos los eventos de los agent)/api/v1/tasks/:id/stopDetener tarea/api/v1/tasksListar tareas (admite agent_id / status / limit)Cuerpo de la solicitud para disparar la ejecución:
{ "message": "研究 WebAssembly 在服务端的最新发展",
"context": { "output_format": "markdown", "max_length": 2000 } }Respuesta (200): { "task_id": "tsk_e5f6g7h8", "status": "running", "agent_id": "agt_a1b2c3d4" }
Idempotencia
Reenviar al mismo agent dentro de 15 s devuelve 409 Conflict; cuando la cola de dispatch está ≥80 % devuelve 429 Too Many Requests (con Retry-After: 5).
Flujo de eventos en tiempo real (SSE)
GET /api/v1/events envía todos los eventos de los agent, con los parámetros de query opcionales ?workflow_id=<id>&tenant=<slug>. Headers de la solicitud:
Accept: text/event-stream
X-API-Key: sk-kova-<64位十六进制>Ejemplo de frame SSE:
{"type": "thinking", "content": "正在分析搜索结果..."}
{"type": "tool_call", "tool": "web_search", "input": {"query": "WASM server-side 2026"}}
{"type": "tool_result", "tool": "web_search", "output": "..."}
{"type": "output", "content": "根据搜索结果..."}
{"type": "completed", "task_id": "tsk_e5f6g7h8"}Al listar tareas se pueden usar los parámetros de query GET /api/v1/tasks?agent_id=agt_a1b2c3d4&status=completed&limit=20.
Administración de workflows
/api/v1/workflowsCrear workflow/api/v1/workflows/:name/runEjecutar workflow/api/v1/workflows/:name/runs/:run_idConsultar el estado de ejecución/api/v1/workflowsListar workflowsCuerpo de la solicitud de creación:
{ "name": "content-pipeline", "description": "内容创作管道",
"steps": [
{ "name": "research", "agent": "researcher", "prompt": "调研主题:{{input.topic}}" },
{ "name": "write", "agent": "writer", "prompt": "基于研究结果撰写文章:\n{{steps.research.output}}",
"error_policy": "retry", "max_retries": 2 }
] }El cuerpo de la solicitud al ejecutar es { "input": { "topic": "边缘计算趋势" } }.
Administración de Swarm
/api/v1/swarmsCrear Swarm/api/v1/swarms/:name/tasksEnviar una tarea al SwarmCuerpo de la solicitud de creación:
{ "name": "dev-team", "coordinator": "project-manager", "agents": ["researcher", "coder", "tester"],
"config": { "max_rounds": 10, "consensus_required": false } }Administración de WAL
/api/v1/wal/statusConsultar el estado del WAL/api/v1/wal/compactDisparar la compactación del WALEjemplo de respuesta de estado:
{ "total_entries": 1024, "pending_entries": 0, "corrupted_entries": 0, "buffer_usage": 0.35, "last_compaction": "2026-03-17T08:00:00Z" }Administración del sistema
/api/v1/healthComprobación de salud/api/v1/metricsMétricas del sistema (formato Prometheus)Respuestas de error
Formato unificado: { "error": { "code": "agent_not_found", "message": "Agent with id 'agt_xxx' not found", "details": null } }
| HTTP | Código de error | Descripción |
|---|---|---|
| 400 | invalid_request | Parámetros de la solicitud incorrectos |
| 401 | unauthorized | X-API-Key ausente o inválida |
| 404 | agent_not_found | El Agent no existe |
| 409 | agent_busy | Reenvío dentro de la ventana de idempotencia de 15 s |
| 422 | workflow_invalid | Definición del workflow errónea |
| 429 | queue_full | Cola de dispatch ≥80 %, dispara el límite por contrapresión |
| 500 | internal_error | Error interno |
| 503 | wal_error | Anomalía del sistema WAL |