Tools tipadas
Uma async fn com #[carmy::tool] vira uma tool. Os JSON Schemas de entrada e saída
são derivados dos seus tipos, então os agentes a descobrem sem ler documentação.
$ cargo install carmy-cli$ carmy new shop && cd shop$ cargo run # HTTP$ cargo run -- mcp # as mesmas tools via MCPTools tipadas
Uma async fn com #[carmy::tool] vira uma tool. Os JSON Schemas de entrada e saída
são derivados dos seus tipos, então os agentes a descobrem sem ler documentação.
Efeitos explícitos
Toda tool declara none, read, write, external_write ou destructive.
Tools destrutivas exigem uma confirmação confiável antes de rodar.
Retries seguros
Agentes repetem chamadas depois de timeouts. Um request_id repetido devolve o
resultado já registrado. O efeito colateral nunca roda duas vezes.
Erros para máquinas
Os erros trazem um código estável, uma categoria, recoverable, retryable,
retry_after e uma suggested_action, e não apenas “Algo deu errado”.
Streaming e cancelamento
Um stream de eventos do runtime (servido como SSE via HTTP), prazos de execução e cancelamento propagado a partir de desconexões do cliente e do MCP.
Um runtime, vários transportes
HTTP e MCP são adaptadores finos sobre o mesmo runtime e o mesmo código das tools. O core não conhece nenhum dos dois.