Observed since 20 Oct, 22:33 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
One-liner audit trails + policy enforcement for LangChain, LlamaIndex and OpenAI Agents — zero dependencies
One-liner audit trails and policy enforcement for the most popular Python agent frameworks.
from agent_ledger_adapters import build_ledger
from agent_ledger_adapters.langchain import AgentLedgerCallbackHandler
ledger = build_ledger("agent_ledger.db", policy_path="policy.json")
chain.run(question, callbacks=[AgentLedgerCallbackHandler(ledger, agent_id="my-agent", enforce=True)])
Built on AgentLedger (vendored, zero dependencies). Every agent action lands in a tamper-proof SHA-256 chain; with enforce=True, policy violations raise and stop the offending action.
| Framework | Adapter | How to attach |
|---|---|---|
| LangChain / LangGraph | agent_ledger_adapters.langchain.AgentLedgerCallbackHandler | callbacks=[handler] |
| LlamaIndex | agent_ledger_adapters.llamaindex.AgentLedgerCallbackHandler | CallbackManager([handler]) |
| OpenAI Agents SDK | agent_ledger_adapters.openai_agents.AgentLedgerRunHooks | Runner.run(agent, input, hooks=hooks) |
No framework is required to install this package — imports are lazy, so only the adapter you use pulls in its framework.
chain_start/end, agent_action, tool_call, tool_result, tool_error, llm_start/end/error, agent_start/end, run_start/end, handoff — with run IDs, inputs, outputs, and error messages (truncated).
{
"version": 1,
"default": "deny",
"policies": [
{"agent": "my-agent", "action": "delete_*", "target": "*", "decision": "deny"},
{"agent": "my-agent", "action": "deploy", "target": "production", "decision": "require_approval"}
]
}
deny → PolicyViolation raised (with errors="raise"), violation loggedrequire_approval → logged with policy_status: pending_approvalerrors="ignore" (default) → auditing never breaks your agentcd tests && python3 test_adapters.py # mock framework objects, no frameworks needed
MIT
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0 | 15 Aug 2026 | 0 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 22:33 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:690451ab7bf957f0d7939367a754078134dcafdf027d2f1691af6efbb3418cf1