cd /news/ai-agents/a-tool-whose-keys-the-model-never-se… · home › topics › ai-agents › article
[ARTICLE · art-152996] src=loomcycle.dev ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

A tool whose keys the model never sees

Loomcycle released version 1.116.0, adding a Crypto tool that lets an agent request encrypt, decrypt, rewrap, mac, verify_mac, sign, verify, public_key, totp, hash or random operations by key name while the key material stays in loomcycle sealed under LOOMCYCLE_SECRET_KEY or in Vault Transit, AWS KMS or Google Cloud KMS. The release fixes algorithms by key type (AES-256-GCM, XChaCha20-Poly1305, HMAC-SHA256/512, Ed25519, ECDSA P-256, JWE, JWS, RSA-OAEP/PSS, Argon2id and RFC 6238 TOTP) and binds tenant, source, name, version and caller context into the lcx1 envelope's AAD so a value moved to another key, scope or context does not open. The same operations ship on the operator API (POST /v1/_crypto, gRPC, MCP's crypto meta-tool, TypeScript crypto() and Python crypto()), with default-deny crypto_scopes on AgentDef, a 1 MiB per-argument limit, 100 ops per run, and every op audited without data or key material in the record.

by read1 min views8 publishedOct 19, 2026

An agent that had to protect a value or sign a request was handed the key in its prompt, where it landed in the transcript, provider logs and snapshots, or shelled out through Bash with the key in its environment. v1.116.0 ships the Crypto tool: the agent names a key, the runtime does encrypt or decrypt or rewrap or mac or verify_mac or sign or verify or public_key or totp or hash or random, and only the result comes back. Keys live in loomcycle sealed under LOOMCYCLE_SECRET_KEY, or in Vault Transit, AWS KMS or Google Cloud KMS, where the key material never leaves the KMS. Algorithms fixed by the key's type: AES-256-GCM, XChaCha20-Poly1305, HMAC-SHA256/512, Ed25519, ECDSA P-256, JWE, JWS, RSA-OAEP/PSS, Argon2id, RFC 6238 TOTP. The envelope lcx1 source name version body binds tenant, source, name, version and the caller's context to the AAD, so a value moved to another key, scope or context does not open. The same operations ship on the operator API (POST /v1/_crypto, gRPC, MCP's crypto meta-tool, TS crypto(), Python crypto()). Default-deny grants (crypto_scopes on AgentDef); 1 MiB per argument and 100 ops per run; every op audited with no data or key material in the record. Also folded in: untrusted text never reaches memory, and another user who continues a session never gets the session user's credentials.

── more in #ai-agents 4 stories · sorted by recency
── more on @loomcycle 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/a-tool-whose-keys-th…] indexed:0 read:1min 2026-10-19 · —