← Vetro Attest · Free Art. 12/14 checker · Free EU AI Act tools
Audit log for Agno agents
An Agno agent pairs a model with a set of tools — plain Python functions or toolkit classes — and runs them in a loop. Agno's model classes wrap the underlying provider SDK internally, and there is no documented public hook to intercept that call today, so the reliable recording points are the two you already control: the tools you define, and the boundary around each agent run.
What to record
- The request and response of each agent run: what was asked, what came back.
- Every tool call: which one, what arguments, what it returned or raised.
- Which agent produced which action, if you run more than one in a team.
Wrapping tools
Agno tools are ordinary Python callables. Wrap one once and every call through it is recorded, using vetro-py's Run API — the same package used in the AG2 guide:
from vetro import Vetro, load_policy
policy = load_policy(open("vetro.policy.json").read())
vetro = Vetro(dir=".vetro", policy=policy)
run = vetro.start_run(name="agno-agent")
def audited(fn):
def wrapper(*args, **kwargs):
run.tool_call(fn.__name__, {"args": args, "kwargs": kwargs})
try:
result = fn(*args, **kwargs)
except Exception as exc:
run.tool_result(fn.__name__, str(exc), is_error=True)
raise
run.tool_result(fn.__name__, result)
return result
return wrapper
run.tool_call() raises PolicyViolationError before fn runs if an inline policy blocks it, so enforcement happens before the tool acts, not after.
Recording the model call
Without a client-level hook into Agno's model wrapper, record the model leg at the point your own code calls agent.run(...): run.llm_request(model=..., provider="agno", messages=...) immediately before, run.llm_response(...) immediately after. It is coarser than an adapter that sees inside a streaming response, but it is accurate about what your code actually observes, rather than assuming a hook that may not exist in your installed version.
Multi-agent teams
Agno supports composing agents into a team, similar in shape to AutoGen's multi-agent conversations. Record which agent handled which step and any handoff between them, for the same reason covered in the AutoGen and AG2 guide: the question after an incident is not only what was done, but which agent did it.
Check your own logs
Paste the resulting ledger into the free checker: it verifies the hash chain and signature and shows which record-keeping obligations your evidence covers, in your browser. For a report to hand to an auditor or a customer, Vetro Attest issues a 29 USD counter-signed mapping to EU AI Act articles.
See a sample ledger verified in one click, check your own logs free or get the countersigned EU AI Act report.