IdentArk

When an AI agent can call APIs, run code, or touch files, it runs in a process — and that process usually holds every dangerous secret in its environment: LLM keys, database credentials, cloud tokens. IdentArk removes the secret from the agent entirely and puts a governed control plane in front of every privileged action.

What you get

Zero-secret agents

The agent process holds a short-lived `csk_` key and a session id — never the provider key. The real secret lives in the vault against the session's `credential_ref`.

Policy at the choke point

Every LLM call, tool call, and credential access flows through the plane. Risk is **computed** from the call; high-risk actions require human approval and fail closed to **deny**.

Provable history

Credential access, LLM cost, and every tool decision write a tamper-evident audit entry. Verify the chain, and export your whole org, at any time.

Start here

The two-line switch

Your agent codes against one interface — the AgentGateway Protocol. Move from laptop to production by swapping the implementation; the agent logic is identical.

from identark import DirectGateway, Message, Role

gateway = DirectGateway(llm_client=AsyncOpenAI(), model="gpt-4o")
from identark import ControlPlaneGateway, Message, Role

gateway = ControlPlaneGateway()   # zero secrets — reads session from env