Limite entre registro e autenticação do agente
POST /v1/agents/temporary-register cria um Agent temporário não reivindicado e um Temporary Memory Space isolado, no máximo uma vez por IP de cliente por dia UTC. O caminho antigo /v1/agents/register retorna 410. A criação formal de Agent utiliza endpoints autenticados do plano de controle. A identidade e os metadados de instalação do agente não são credenciais e não ampliam a autorização de memória.
- Registro temporário: POST /v1/agents/temporary-register (anônimo permitido; credenciais apresentadas inválidas são rejeitadas).
- Fluxo de agente temporário: GET /v1/agents/status; GET /v1/agents/bind/status; POST /v1/agents/bind/confirm-current-user; POST /v1/agents/bind/deny-current-user.
- Fluxo de agente formal: POST /v1/agents/rotate.
Esquema de solicitação de registro
POST /v1/agents/temporary-register aceita AgentSelfRegistrationRequest. Os campos obrigatórios são entry_type, client_name, installation_fingerprint (1..512 caracteres) e requested_scopes (um subconjunto não vazio de read:temporary_memory e write:temporary_memory). Outros escopos são rejeitados. Metadados opcionais de projeto e instalação não podem conceder permissões.
POST /v1/agents/temporary-register
Content-Type: application/json
{
"entry_type": "mcp",
"client_name": "codex",
"installation_fingerprint": "<stable-installation-fingerprint>",
"requested_scopes": ["read:temporary_memory"],
"client_version": "<client-version>",
"runtime": "windows"
}Esquema de resposta do registro
Um registro bem-sucedido retorna AgentSelfRegistrationResponse com agent_id (string), claim_code (string), bind_url (string), status (string), connection_method (string) e trust_level (integer) obrigatórios. temporary_token é uma string opcional ou null. Armazene um token temporário somente no armazenamento de credenciais do cliente; ele não é um valor de identidade do agente.
{
"agent_id": "<agent-id>",
"temporary_token": "<temporary-token-or-null>",
"claim_code": "<claim-code>",
"bind_url": "https://xmemo.dev/agents/bind?code=<claim-code>",
"status": "pending",
"connection_method": "streamable_http",
"trust_level": 0
}Esquemas de status, vínculo e rotação
O OpenAPI declara uma resposta de objeto JSON sem tipo e nenhum corpo de solicitação para GET /v1/agents/status, GET /v1/agents/bind/status, POST /v1/agents/bind/deny-current-user e POST /v1/agents/rotate. POST /v1/agents/bind/confirm-current-user também não tem tipo de corpo no OpenAPI; a implementação atual da rota lê confirmation_token de um objeto JSON ou de um parâmetro de consulta. As respostas de status e vínculo do agente temporário são objetos do runtime cujas propriedades não estão declaradas na especificação versionada. A rotação é restrita pela rota a um token formal associado a um agente.
GET /v1/agents/status
X-API-Key: <temporary-agent-token>
POST /v1/agents/bind/confirm-current-user?confirmation_token=<confirmation-token>
X-API-Key: <temporary-agent-token>
POST /v1/agents/rotate
X-API-Key: <formal-agent-token>Atribuição do agente nas chamadas de memória
O campo source registra qual agente produziu uma memória e é armazenado como provenance; ele não afeta a autorização. Em chamadas MCP por HTTP streamable, os cabeçalhos de identidade descrevem o cliente e a instalação local estável. A API REST usa a chave autenticada, além de campos source/provenance opcionais; mantenha as credenciais separadas desses valores.
POST /v1/memories
X-API-Key: <your-assigned-api-key>
Content-Type: application/json
{
"content": "Fixed streamable-http token identity fallback.",
"path": "projects/memory-os/fixes",
"source": "codex"
}Erros, paginação e limites
O registro temporário retorna 422 para solicitações de escopo inválidas, 401 para credenciais apresentadas inválidas, 410 no caminho de registro descontinuado e 429 quando a cota de um IP por dia UTC é esgotada. Limites de requisição de janela curta também se aplicam. As operações de status e vinculação exigem suas próprias verificações de credenciais.
{
"detail": [
{
"loc": ["body", "installation_fingerprint"],
"msg": "<validation-message>",
"type": "<validation-error-type>"
}
]
}Origem: Preset de agente autônomo