{"slug": "agentcontrol", "title": "AgentControl", "summary": "AgentControl is an open-source runtime control plane for AI coding agents that intercepts every tool call, enforces YAML-defined policies, requires human approval for risky operations, and logs all activity. The tool acts as a cloud firewall for AI agents, supporting features like risk-level enforcement, agent registry, audit timeline, and self-hosted deployment via Docker.", "body_md": "**Open-source runtime control plane for AI coding agents**\n\n**Think \"cloud firewall for AI agents.\"** AgentControl sits between your agent and its tools — intercepting every tool call, enforcing policy, requiring human approval for risky operations, and logging everything.\n\n```\n┌─────────────────────────────────────────────────────────┐\n│ AgentControl Dashboard                                   │\n│ ┌─────────────────────────────────────────────────────┐ │\n│ │ Agents  │  ON  │  Name       │  Risk  │  Actions   │ │\n│ ├─────────────────────────────────────────────────────┤ │\n│ │ ◉ ON   │  repo-mnt  │  Repo Bot  │  HIGH  │ [⏸] [🗑] │ │\n│ │ ◯ OFF  │  safe-bot  │  Safe Bot  │  LOW   │ [▶] [🗑] │ │\n│ └─────────────────────────────────────────────────────┘ │\n│ Policy: block rm -rf, require_approval for PR merges     │\n│ Audit: 47 tool calls logged, 12 blocked, 3 approvals     │\n└─────────────────────────────────────────────────────────┘\n```\n\nRecord a live demo:`npm install -g terminalizer && terminalizer record demo`\n\n```\nnpm install\ncp .env.example .env\nnpm run dev\n```\n\nOpen ** http://localhost:8080** — the dashboard is live. That's it.\n\n| Problem | Solution |\n|---|---|\nAgent runs `rm -rf /` |\nBlocked by dangerous-command guardrails |\n| Agent wants to merge a PR | Requires human approval in the dashboard |\nAgent accesses `.env` secrets |\nBlocked by path-traversal guardrails |\n| You need an audit trail | Every tool call logged with decision, approval, and result |\n| Multiple agents, different trust levels | Risk-level enforcement: low auto-allows, high requires approval, critical blocks all |\n| You want to pause an agent | Toggle on/off from dashboard or CLI |\n\n**Policy Engine**— YAML-defined rules that decide`allow`\n\n,`block`\n\n, or`require_approval`\n\nper tool call**Agent Registry**— Register agents with identities, allowed tools, and risk levels** Human-in-the-Loop**— Approve or deny risky tool calls from the dashboard or API** Audit Timeline**— Complete replay of every tool call, decision, and approval** Dashboard UI**— Single-page HTML app: monitor agents, approve calls, view audit logs** CLI**— Full command-line interface for scripting and automation** API Key Management**— Create and revoke scoped API keys via the dashboard or CLI** Risk Levels**—`low`\n\n/`medium`\n\n/`high`\n\n/`critical`\n\n— each enforces different policies**Enable/Disable Agents**— Stop or start agents without deleting them** Docker**— One-command deploy with`docker compose up -d`\n\n**Self-Hosted**— Your data stays on your infrastructure. No cloud dependency.\n\n```\n┌──────────┐     ┌──────────────────────────────────────────┐     ┌──────────┐\n│  Agent   │────▶│            AgentControl Gateway           │────▶│  Tools   │\n│ (LLM)    │     │                                          │     │ (shell,  │\n└──────────┘     │  ┌──────────┐  ┌──────────┐  ┌────────┐ │     │  files,  │\n                 │  │  Policy  │──│ Approval │──│  Audit │ │     │  github) │\n                 │  │  Engine  │  │   Queue  │  │  Log   │ │     └──────────┘\n                 │  └──────────┘  └──────────┘  └────────┘ │\n                 │       │              │              │     │\n                 │       ▼              ▼              ▼     │\n                 │  ┌──────────────────────────────────────┐ │\n                 │  │            Agent Registry             │ │\n                 │  │  (SQLite: agents, policies, runs)     │ │\n                 │  └──────────────────────────────────────┘ │\n                 └──────────────────────────────────────────┘\n```\n\nEvery tool call passes through the gateway:\n\n**Policy Engine** evaluates the call against YAML rules and risk level**Approval Queue** holds calls that need human review**Audit Log** records the full decision + execution trace\n\n```\n# Register an agent\nnpm run cli -- agent register \\\n  --id repo-maintainer \\\n  --name \"Repo Maintainer\" \\\n  --owner engineering \\\n  --environment development \\\n  --purpose \"Safely maintain repository tasks\" \\\n  --tools shell.run,filesystem.read,filesystem.write,github.mock_merge_pr \\\n  --risk medium\n\n# Try allowed commands\nnpm run cli -- tools call --agent repo-maintainer --tool shell.run --input '{\"command\":\"npm test\"}'\n\n# Dangerous commands are always blocked\nnpm run cli -- tools call --agent repo-maintainer --tool shell.run --input '{\"command\":\"rm -rf /\"}'\n\n# High-risk tools need approval\nnpm run cli -- tools call --agent repo-maintainer --tool github.mock_merge_pr --input '{\"repo\":\"company/api\",\"pr\":42}'\n\n# Approve from CLI\nnpm run cli -- approvals list\nnpm run cli -- approvals approve <id> --by secops-admin --reason \"Verified\"\n\n# Stop/start agents\nnpm run cli -- agent toggle --id repo-maintainer --disable\nnpm run cli -- agent toggle --id repo-maintainer --enable\n\n# View audit replay\nnpm run cli -- runs replay <run-id>\n\n# Delete agent\nnpm run cli -- agent delete --id repo-maintainer\n\n# Manage API keys\nnpm run cli -- keys create --name \"My Key\"\nnpm run cli -- keys list\nnpm run cli -- keys delete <key-id>\n```\n\nWindows PowerShell:Replace single quotes with escaped double quotes:\n\n`--input \"{\"\"command\"\":\"\"npm test\"\"}\"`\n\nAll endpoints require `x-api-key`\n\nheader or `Authorization: Bearer <key>`\n\n.\n\n| Method | Path | Description |\n|---|---|---|\n`GET` |\n`/health` |\nHealth check |\n`GET` |\n`/v1/stats` |\nDashboard metrics |\n`POST` |\n`/v1/agents` |\nRegister an agent |\n`GET` |\n`/v1/agents` |\nList agents |\n`GET` |\n`/v1/agents/:id` |\nGet agent details |\n`PATCH` |\n`/v1/agents/:id` |\nEnable/disable agent |\n`DELETE` |\n`/v1/agents/:id` |\nDelete an agent |\n`POST` |\n`/v1/tools/call` |\nExecute or evaluate a tool call |\n`GET` |\n`/v1/approvals` |\nList approval requests |\n`POST` |\n`/v1/approvals/:id/approve` |\nApprove a pending call |\n`POST` |\n`/v1/approvals/:id/deny` |\nDeny a pending call |\n`GET` |\n`/v1/runs` |\nList audit runs |\n`GET` |\n`/v1/runs/:id` |\nRun replay timeline |\n`GET` |\n`/v1/policies` |\nView active policy |\n`POST` |\n`/v1/policies/reload` |\nReload policy from disk |\n`POST` |\n`/v1/api-keys` |\nCreate API key |\n`GET` |\n`/v1/api-keys` |\nList API keys |\n`DELETE` |\n`/v1/api-keys/:id` |\nDelete API key |\n\n```\nexport API_KEY=your-secure-key\ndocker compose up -d\n# Open http://localhost:8080\nnpm test\n```\n\nRuns 18 tests across core engine, HTTP API, and CLI end-to-end flow.\n\n| Feature | AgentControl | Portkey | Guardrails AI |\n|---|---|---|---|\n| Open source | ✅ MIT | ❌ | ✅ Apache 2.0 |\n| Self-hosted | ✅ | ❌ | ✅ |\n| Human-in-the-loop | ✅ Native | ❌ | Partial |\n| Audit timeline | ✅ Full replay | ✅ | ❌ |\n| Risk levels | ✅ 4-tier | ❌ | ✅ |\n| Dashboard | ✅ Built-in | ✅ | ❌ |\n| API key management | ✅ | ✅ | ❌ |\n| CLI | ✅ | ✅ | ❌ |\n| Install time | <30s | SaaS | 5min |\n\n| Framework | Guide |\n|---|---|\n| OpenAI SDK |\n|\n\n[examples/langchain.md](/kyzrxe-max/agent-guard/blob/main/examples/langchain.md)[examples/crewai.md](/kyzrxe-max/agent-guard/blob/main/examples/crewai.md)Copy `.env.example`\n\nto `.env`\n\nand set your `API_KEY`\n\n. See `.env`\n\nfor all available options.\n\nPRs welcome! Check [open issues](https://github.com/kyzrxe-max/agent-guard/issues) for community-requested features.\n\nMIT", "url": "https://wpnews.pro/news/agentcontrol", "canonical_source": "https://github.com/kyzrxe-max/agent-guard", "published_at": "2026-07-27 06:26:40+00:00", "updated_at": "2026-07-27 06:52:34.208839+00:00", "lang": "en", "topics": ["ai-agents", "ai-safety", "ai-tools", "developer-tools"], "entities": ["AgentControl"], "alternates": {"html": "https://wpnews.pro/news/agentcontrol", "markdown": "https://wpnews.pro/news/agentcontrol.md", "text": "https://wpnews.pro/news/agentcontrol.txt", "jsonld": "https://wpnews.pro/news/agentcontrol.jsonld"}}