Operate
Support
Run three commands, attach what they print, reduce the problem to made-up values, and keep secrets and production data out of the report.
When to use this
When AgentFox does something you did not expect: a call allowed that should have been refused, a refusal you cannot explain, a command that fails. Check Limits first; the behaviour may be a known gap.
Run these first
agentfox --version
agentfox admin version
agentfox doctor
agentfox policy listagentfox 0.3.1
╭───────────────────────────────────────╮
│ AgentFox 0.3.1 │
│ control catalog 0.1.0-draft (draft) │
│ policy engine native │
│ default provider echo │
│ default mode observe │
│ fail mode open │
│ latency budget 300ms │
│ egress allowed False │
╰───────────────────────────────────────╯
Runtime check
✓ database reachable — 1 agent(s), 44 trace(s)
…
policy version mode rules
baseline v1 observe 13
eu-ai-act-high-risk v1 observe 7
tool-containment v1 enforce 25--versionis what every issue template asks for. From a clone, add the commit (git rev-parse --short HEAD).admin versionis everything that takes part in a decision: catalog version, policy engine, default mode, fail mode, latency budget, egress.doctorgrades the configuration.agentfox doctor --jsongives one record per check if you prefer to paste JSON.policy listshows which packs are bound and whether each observes or enforces, which explains most "why was this (not) blocked" questions.
For a surprising verdict
- The verdict and the
rules_firedlist, or the text of theagentfox.Blockedexception. It names the rule and the provenance of each argument. - The grant (
agentfox permit list <agent>) and the tool's declaration (agentfox declare list tools). - What is in force for the agent:
agentfox policy effective --agent <agent>. - Your
taint_scope; it changes many verdicts (Concepts). - A reduced reproduction: the smallest tool call, with made-up values, that gives the verdict. A
curlto/v1/guard/tool_callagainst a scratch database is ideal.
Reproduce against a scratch database so you are not sharing yours:
export AGENTFOX_STATE_DIR="$(mktemp -d)"
agentfox initNever paste
The default redact_at_capture masks detected secrets and personal data in the audit log, but it only masks what its detectors find. Read anything before you paste it.
Where to send it
Bugs and questions: GitHub issues and discussions, linked from Support. A security vulnerability goes through GitHub's private security advisories, never a public issue.