Trezor
API klíče, hesla a další přihlašovací údaje ukládejte do osobního Trezoru místo vkládání do chatu. Chetty hodnoty uchovává šifrovaně, znovu je nezobrazuje a agentovi poskytuje pouze názvy a popisky položek. Agent zapíše {{vault:NAME}}; hodnota se doplní až při spuštění nástroje a přesné hodnoty ve výstupu nástrojů se skryjí jako «vault:NAME».
Trezor chrání před nechtěným prozrazením, ne před agentem, který se údaje záměrně snaží odeslat jinam. Je osobní, nikoli sdílený pro Projekt nebo tým. Samotný nástroj Vault vypisuje pouze názvy a popisky.
Přidání položky
- Otevřete Účet → Trezor, mezi Zabezpečení a API tokeny.
- Na kartě Vaše položky zvolte Přidat položku.
- Zadejte název, například
API_KEY. Používejte velká písmena A–Z, číslice a podtržítka, začněte písmenem a nepřekročte 64 znaků. Malá písmena se při psaní sama změní na velká. - Přidejte popisek o délce 1–500 znaků, který vysvětlí, k čemu má agent položku používat. Tajnou hodnotu nevkládejte do názvu ani popisku.
- Zadejte hodnotu do pole pro heslo. Pro klíče na více řádcích přepněte na víceřádkové zadávání. Hodnota musí mít alespoň čtyři znaky a nejvýše 64 KiB textu v UTF-8; uloží se přesně tak, jak ji zadáte.
- Položku uložte. Karta Vaše položky ji ukáže sbalenou: název s časem, kdy ji naposledy použilo volání nástroje, a časem poslední změny, pod nimi popisek, nikdy hodnotu.
Můžete také požádat asistenta o uložení, změnu nebo smazání položky, pokud má oprávnění používat API. Pokud mu pošlete hodnotu k uložení, projde konverzací ještě před uložením do Trezoru; uložením se z předchozí konverzace neodstraní. Chcete-li hodnotu udržet mimo chat, zadejte ji do formuláře Účet → Trezor. Chatbot účty trezor nemají.
Jak požádat agenta o použití položky
Můžete například napsat: „Použij API_KEY z mého Trezoru pro ověření požadavku na ukázkovou službu.“
Agent zavolá nástroj Vault, který vypíše položky jako NAME: popisek, a do argumentu nástroje zapíše {{vault:API_KEY}}. Hodnotu nepotřebuje vidět ani si ji pamatovat. Jeho účet musí mít přidělený nástroj Vault i oprávnění používat nástroj, který hodnotu přijme.
Neznámý název zastaví volání dříve, než se cokoli spustí. Bez přiděleného nástroje Chetty zástupný zápis odmítne, místo aby ho odeslal jako přihlašovací údaj. Žádosti o schválení i uložené vzory oprávnění obsahují pouze zástupný zápis. Text uložený pro pozdější běh si zástupné zápisy ponechá: paměť, zadání delegovaných úkolů, prompty naplánovaných úloh a jednorázových probuzení, úkoly, skilly a pokyny pro hlasové hovory. Pozdější běh je vyhodnotí až při použití nástroje.
Uvozovky v Bashi
Zástupné zápisy vkládejte do dvojitých uvozovek, nikdy do jednoduchých. Například:
curl -H "Authorization: Bearer {{vault:API_KEY}}" https://api.example.com/status
Terminál předá hodnotu jako proměnnou prostředí právě tomuto procesu, nikoli v argumentech spouštěcího příkazu. Samostatný zástupný zápis se také rozvine, ale dvojité uvozovky udrží mezery a konce řádků pohromadě. V jednoduchých uvozovkách se nerozvine. Toto pravidlo platí i tehdy, když Bash spouští PowerShell na spárovaném počítači s Windows.
Pokud spárovaný počítač hlásí LOCAL_CLIENT_OUTDATED, aktualizujte Chetty CLI na vydání odpovídající serveru.
Nahrazení nebo smazání položky
U každé položky jsou vedle názvu tlačítka Upravit (popisek), Nahradit (hodnotu) a Odstranit. Při nahrazení se otevře pole pro heslo se stejnou možností víceřádkového zadávání; původní hodnota se nikdy neodhalí. Nahrazení nebo smazání se projeví hned při dalším volání nástroje.
Po rozbalení položky uvidíte, kolik volání nástrojů ji použilo v jednotlivých dnech zvoleného období, a pod grafem celkový počet. Období je společné pro všechny položky. Každé volání se počítá jednou za každou položku, kterou použije, i když nástroj potom selže. Odstraněním položky se smaže i záznam o jejím použití.
Čí trezor se použije
Ve sdílené konverzaci agent používá trezor člověka, na jehož zprávu odpovídá. Ve vlastním chatu, naplánovaných úkolech a delegovaných podřízených agentech používá trezor vlastníka (podřízený agent zachová účet zadavatele). Odesílatel z jiné chatovací platformy potřebuje propojený lidský účet. Konsolidace paměti přístup k trezoru nemá.
Omezení
Chrání před nehodami, ne před agentem, který hodnotu záměrně zakóduje, rozdělí nebo odešle jinam. Obrázky se nečistí. Soubory na disku si ponechají to, co do nich bylo zapsáno; při jejich opětovném čtení se výstup čistí. Totéž platí pro text, který agent uloží obecným nástrojem pro zápis nebo přímým voláním API Chetty: zástupný zápis se před uložením nahradí skutečnou hodnotou. Naplánovaná úloha, jejíž prompt se odešle přímo do API plánovače, proto ponese hodnotu do každého dalšího spuštění. Naplánované úlohy nechte agenta vytvářet běžným nástrojem pro plánování, který zástupný zápis zachová. Co nástroj s hodnotou odešle nebo uloží (HTTP požadavek, e-mail, záznam pluginu, například komentář ke kartě), opouští trezor; právě to je samotné použití. V Bashi musí být zástupný zápis ve dvojitých uvozovkách nebo stát samostatně; v jednoduchých uvozovkách se nerozvine. Živý konec výstupu běžícího příkazu se čistí při každé aktualizaci. Hodnota, kterou příkaz nedostal přes trezor (například při cat .env), se může zobrazit jako úryvek na oříznutém okraji tohoto posuvného okna; konečný výsledek a vše, co vidí model, jsou celé a vyčištěné. Hodnoty předané přes trezor už ze streamu odstraňuje redakce výstupu Sandboxu.