Deploy Agent DNS in your stack
Guides per agent runtime and environment, the management API, and webhooks.
No SDK in the agent. Set the resolver, handle a held destination in code if you choose to, and drive scope through the API.
Guides for the agents your teams run
Hermes Agent, OpenClaw, OpenHands, and the coding agents Claude Code, Codex CLI and Gemini CLI. Each guide follows the deployment standard: requirements, numbered steps with one command each, verification, and the limits stated plainly.
Hermes Agent
One policy for the gateway, one for the terminal backend. Closes the DNS gap in the vendor egress guide.
OpenClaw
Gateway on the host, sandboxes in Docker. Opening the sandbox network opens a policy, not the internet.
OpenHands
App container and runtime containers on separate policies.
Claude Code, Codex CLI and Gemini CLI
Apply the policy to the environment the agent runs in: devcontainer, CI runner, managed workstation.
Four levels of integration
Assign the resolver
A VPC DHCP option, a CoreDNS forward, a dnsConfig on the pod, or a DoH URL in the runtime. Configuration only; no code changes.
Platform, DevOps
Handle a held destination in code
Held and blocked names resolve to the policy's block page address. A short guard lets tool code distinguish a held destination from an unavailable service and escalate instead of retrying.
Agent developers
Manage scope through the API
Create policies and sites, approve held names, push IOCs, publish and roll back. Scoped API keys (13 scopes) for automation; a JWT for the endpoints that have no scope.
Platform, MLOps
Consume events
Six signed webhook events. Verify the signature, then open a case, page on-call staff, or approve from a chat integration.
Security engineering
Held destinations as seen by application code
A destination the policy has not previously resolved, or one it blocks, answers with the policy's block page address. Application code receives a successful lookup to a Securd address rather than a timeout. Each Level 1 sample resolves the hostname, compares the answer, and raises a typed exception so the agent escalates instead of retrying.
Every configuration in this library assumes one policy per agent role and one identity per agent instance. A compartment (a company in Securd) holds policies; each policy maintains its own first-seen baseline and lists; identities and static sites bind to a policy and share its baseline.
The block page address is displayed in the console on the site. Set it in SECURD_BLOCK_ADDRS for the samples below.
# Level 0 for a Kubernetes pod
spec:
dnsPolicy: "None"
dnsConfig:
nameservers: ["<your compartment resolver IPs>"]Deployment guides for the agents you install.
Hermes Agent
One policy for the gateway, one for the terminal backend. Closes the DNS gap in the vendor egress guide.
OpenClaw
Gateway on the host, sandboxes in Docker. Opening the sandbox network opens a policy, not the internet.
OpenHands
App container and runtime containers on separate policies.
Claude Code, Codex CLI and Gemini CLI
Apply the policy to the environment the agent runs in: devcontainer, CI runner, managed workstation.
Assign the resolver. No code.
Kubernetes
A policy per namespace with restricted DNS egress.
Docker and Compose
Per-container resolver configuration.
AWS
VPC DHCP options and a security group that restricts DNS egress.
Google Cloud
Cloud DNS forwarding zone and a firewall rule.
Azure
VNet custom DNS and an NSG rule.
Linux VMs and bare metal
systemd-resolved, NetworkManager, or resolv.conf.
DoH virtual sites
Policy assignment without a static IP, for workstations, serverless and roaming runtimes.
CI runners
Resolver assignment for coding agents in pipelines.
MCP server hosts
A separate policy for the host that serves tools.
Catch a held destination in code. Ten to thirty lines.
Python: LangChain and LangGraph
Guard tool calls and handle held destinations without retry loops.
Python: CrewAI
One guard shared by every crew tool.
Python: OpenAI Agents SDK
Function tools that respect the policy.
Python: Anthropic SDK and tool use
Tool results that report a hold instead of a fake failure.
TypeScript: LangChain.js and LangGraph.js
A guarded DynamicTool for Node runtimes.
TypeScript: Vercel AI SDK
Guarded tools with the tool() helper.
Go
A Securd-aware dialer.
Java: Spring AI
A guard before any RestClient call.
.NET: Semantic Kernel
Kernel functions that check the policy first.
Rust
Resolve with the system resolver, refuse block page answers.
Drive scope from code. React to events.
Scope templates
Allow list templates for common model providers, tool hosts and MCP servers, applied before enforcement begins.
Event reference
Query log fields, the CEF mapping, and a sample payload for each webhook event.
Integrations
Splunk, Sentinel, Elastic, Datadog, Google SecOps, QRadar, Sumo, Cribl, OTel, SOAR, Slack, PagerDuty.
Evaluate Agent DNS with your own agent traffic
Deploy on a single policy in learning mode and review the recorded destinations with your team.