$ the-wire · showcase
Denied RAG queries get real hashes, Docker deployer logs gain stderr
By RepoJournal · Filed · About Agent Security · Composed from the cited sources · methodology
Two fixes to microsoft/agent-governance-toolkit repair audit trails and log capture that operators rely on when an agent misbehaves, while NVIDIA-NeMo/Guardrails spent the day hardening its own test suites.
fix(agent-rag-governance): audit a denied collection with the query's hash (#4475) microsoft/agent-governance-toolkit
RAGGovernor used to write the hash of an empty string into every "denied" audit entry, so all blocked collection attempts carried the same query_hash. The denied entry now hashes the actual query, matching what the rate_limited entry already did, which means your denial records can finally be traced back to what the agent searched for.
fix(agent-runtime): include the agent's stderr in DockerDeployer.logs (#4474) microsoft/agent-governance-toolkit
Because containers start with `docker run -d` and no TTY, `docker logs` replays agent stderr on stderr, and `DockerDeployer.logs` returned only stdout, so an agent logging through Python's logging module came back empty or partial. `logs` now merges stderr into stdout in the order Docker writes them; `KubernetesDeployer.logs` is unaffected because `kubectl logs` prints both.
test(hooks-server): Integration test Claude Code and Codex harnesses with hooks-server NVIDIA-NeMo/Guardrails
New tests run the Claude Code and Codex SDKs against a real `nemoguardrails hooks-server`, checking that each agent actually behaves correctly on allow, deny and failure rather than only that the server returned the expected response. If you put either harness behind the hooks server, this is the first evidence the enforcement holds end to end.
test(relay): Integration-test Langchain and Relay client with hooks-server NVIDIA-NeMo/Guardrails
End-to-end tests build the NeMo Relay plugin in release, package it as the pipeline does, and load it into Relay's Python plugin host (nemo-relay 0.10.4), with tool calls routed to a real hooks server from Relay's tool API and from a LangChain agent using Relay's middleware. Earlier Rust tests used a stand-in server; these do not.
docs(skills): add rail contribution, review, and recorded-test skills NVIDIA-NeMo/Guardrails
Three agent skills under `.agents/skills/` and subtree contributor docs now cover adding a rail to `nemoguardrails/library/` (manifest, `RailOutcome` actions, config schema, both Colang dialects, HTTP rules, optional dependencies, test layers) and reviewing one. Useful if your team extends the library rather than just configuring it.
test: make LFU cache tests deterministic NVIDIA-NeMo/Guardrails
The rest of the day is housekeeping: the LFU cache tests now use a controlled clock and bounded barriers instead of real-time waits and thread sleeps, and the hooks-agents and relay-plugin suites moved under `integration_tests/`. No behavior change for anyone running Guardrails.