from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI
from certior import Guard
from certior.adapters.langchain import CertiorCallbackHandler
guard = Guard(
policy="hipaa",
permissions=["network:http:read", "filesystem:read"],
budget_cents=5000,
)
llm = ChatOpenAI(model="gpt-4o-mini")
agent = create_openai_tools_agent(llm, tools=[...], prompt=...)
executor = AgentExecutor(agent=agent, tools=[...])
handler = CertiorCallbackHandler(
guard,
capabilities={ # turns on the capability gate
"lookup_records": ["filesystem:read"],
"send_external": ["network:http:write"], # not granted -> blocked
},
costs={"lookup_records": 2}, # optional per-tool budget debit
)
executor.invoke(
{"input": "Summarize today's intake records."},
config={"callbacks": [handler]},
)