Lynx
A stateless policy kernel that gates AI agent tool calls with five verdicts (allow, deny, dry run, approve required or transform), adds crash-safe checkpoints and a tamper-evident audit trail, and can wrap any agent harness or run a minimal loop of its own.
Lynx is a governance and safety layer for an agent's tool-call loop, not the loop itself: every proposed tool call is checked against a policy bundle, audited, and kept within bounds before it touches the real world. It can be dropped into an existing harness, such as the OpenAI Agents SDK, LangChain, CrewAI or PydanticAI, through a ToolGuard, or used through its own minimal, stateless run_agent loop.
It offers policy-gated execution with five verdicts, streaming audit events to a caller-owned sink rather than storing them itself, pure immutable functions with no global state or singleton runtime, and hot-swappable policy bundles. Optional layered policy scopes combine independently evaluated organization, team and user policies. It also enforces step, token and duration budgets, a kill switch, a repetition gate that stops same-tool-same-args loops, and durable resume that replays completed steps after a crash without re-running side effects.
Built with Python, using frozen, slotted immutable types checked by mypy. It is a library, not a server.