EN
Všechny projekty
Autor·vlastní produkt · ve vývoji

Onyx

Zero-knowledge trezor, jehož MCP server dá agentům používat tajemství, která nikdy neuvidí.

onyx.app
Onyx
use-without-reveal
  • onyx:// reference → inject při běhu
  • výstup nástrojů bez tajemství
  • per-item AI tiers · Touch-ID gate

Zero-knowledge trezor na tajemství s MCP serverem pro agenty: tajemství se injektují až při běhu a model je nikdy nedostane zpět (use-without-reveal), per-item AI tiers řídí, na co agent smí sáhnout, výstup nástrojů se scrubuje od uniklých tajemství a pod tím sedí kill-switch, Touch-ID gate a kompletní audit log. „Bezpečný control plane pro agenty“ konkrétně.

Problém

Agenti potřebují skutečné přístupové údaje, aby odvedli skutečnou práci — Stripe klíč na vrácení platby, GitHub token na otevření PR, connection string na dotaz do databáze. Jakmile některý z nich předáte modelu, ocitne se v kontextovém okně. Odtud se dostane do logů, vrátí se ve shrnutí, zapíše se do trace nebo ho o tři tahy později vytáhne prompt injection. Tajemství v kontextu je tajemství venku.

.env soubory a vkládání klíčů do promptů nerozlišují dvě úplně jiná práva: právo přístupový údaj použít a právo si ho přečíst. Agent to druhé skoro nikdy nepotřebuje. Potřebuje akci, kterou klíč odemyká, ne samotný klíč — jenže každé běžné nastavení mu dá obojí naráz.

Hrozbou není zlý model, ale plocha útoku: logy, trace, přepisy nástrojů, příliš ochotné shrnutí, které cituje vlastní prostředí. Každé z těch míst je tam, kde se může tajemství v plaintextu usadit. Onyx jsem postavil proto, abych z nich tu hodnotu odstranil.

Use-without-reveal

Onyx je zero-knowledge trezor, který sedí za MCP serverem. Agent zavolá nástroj jménem; MCP server vstříkne skutečné tajemství do odchozího požadavku až v okamžiku spuštění a vrátí jen výsledek. Model pracuje s referencí, nikdy s hodnotou — může použít přístupový údaj, který nikdy nesmí vidět.

Per-item AI tiery rozhodují, na co vůbec smí agent sáhnout. Tajemství může být agentům otevřené, schované za lidský dotyk, nebo pro model úplně neviditelné — nastavuje se to po jednotlivých položkách, ne na celý trezor, takže read-only klíč k analytice a heslo k produkční databázi nikdy nesdílejí stejný dosah škody.

Každá odpověď nástroje se cestou zpět pročistí. Než se výstup dostane k modelu, projde kontrolou na výskyt tajemství a začerní se, aby se přístupový údaj nevrátil do kontextu přes upovídanou API odpověď nebo chybovou hlášku. Pod tím vším leží control plane: kill-switch, který odřízne přístup naráz, Touch ID brána pro citlivé operace a kompletní audit log každého čtení — kdo, co, kdy a kterým nástrojem.

Stav

Onyx je v aktivním vývoji — architektura, kterou stavím, ne hotový produkt. Aplikace pro macOS je ve Swiftu/SwiftUI, strana otočená k agentům je Node MCP server. Zatím běží jen přes WireGuard, na mých vlastních strojích, bez uživatelů kromě mě.

Beru to jako funkční odpověď na otázku, kterou agentní ekosystém ještě nevyřešil: jak dát autonomnímu agentovi sílu přístupového údaje, aniž byste mu ten údaj dali? Jednotlivé díly — vstřikování ve stylu use-without-reveal, tiery po položkách, čištění výstupu, kill-switch, Touch ID, audit — jsou tvar té odpovědi, který kalím proti vlastním úlohám dřív, než bude mít smysl tvrdit cokoli širšího.