Watchdog protects your AI agents while they run. Your app checks each incoming message with Watchdog before your agent acts on it, and everything caught shows up in your dashboard. This page takes you from nothing to a guarded agent with a mission.
pip install alovia-watchdog
from alovia_watchdog import Watchdog, guard_input
wd = Watchdog(api_key="<your fleet key>")
@guard_input(wd, agent="support-bot", session_id=lambda: current_chat_id())
def handle(message):
...verdict = wd.check(message, agent="support-bot", session_id=chat_id)
if verdict.enforce:
return "I can't help with that."python -c "from alovia_watchdog import Watchdog; print(Watchdog(api_key='<your fleet key>').check('hello', agent='support-bot').verdict)"If your agent is built on a framework, guard its tool calls instead of one function. Pick yours for the exact lines.
pip install "alovia-watchdog[langchain]"
from langchain.agents import create_agent
from alovia_watchdog import Watchdog
from alovia_watchdog.integrations.langchain import WatchdogToolMiddleware
wd = Watchdog(api_key="<your fleet key>")
agent = create_agent(
model="gpt-4o",
tools=[...],
middleware=[WatchdogToolMiddleware(wd, agent="support-bot", session_id=lambda: chat_id)],
)If partner agents or MCP clients call your agent over the network, Watchdog can sit in front of it, the same way Shield sits in front of your website. Every request is checked before it reaches your server. Both gateways only forward to a host you have proved you own.
Boundary scan looks at your agent's public address from the outside, the way an attacker would: MCP endpoints left open, tools that answer without a login, and agent cards that give away more than they should. Choose Boundary scan on the Agents view, confirm the address, then scan. It needs a public address on a host you have verified, and results land in Findings.
Watchdog publishes what it defends against in the two vocabularies a security review uses: the OWASP Top 10 for Agentic Applications (2026) and MITRE ATLAS. Both are read from the detectors and controls that run rather than from a written list. In your fleet open Settings, then Standards coverage: each OWASP risk shows the detectors and the controls behind it, marking the ones you turn on yourself, and each ATLAS technique shows its detectors; both show what fired on your account in the last 30 days, and every finding in the Findings view carries its technique id with the OWASP risk on hover. Download layer gives you an ATT&CK Navigator layer: open the ATLAS Navigator, choose Open existing layer, upload the file, and the covered techniques light up over the matrix, each naming the detector behind it. Covered means a detector or control exists and runs for that item; it is not a certification and it says nothing about attacks that detector misses. Findings exported to your SIEM carry the same technique and risk ids, so you can pivot on them there.