Skip to content

Commit a4e0559

Browse files
Merge pull request #26 from agentcontrol/feature/update-overview
cleanup overview
2 parents 8d7bd24 + cf49d70 commit a4e0559

2 files changed

Lines changed: 34 additions & 227 deletions

File tree

core/overview.mdx

Lines changed: 25 additions & 221 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
title: Agent Control
3-
description: Runtime guardrails for AI agents — configurable, extensible, and production-ready.
4-
icon: "house"
3+
description: An open‑source control plane for centralized agent governance and guardrails.
54
---
65

76
<iframe
@@ -14,245 +13,50 @@ icon: "house"
1413
allowFullScreen
1514
></iframe>
1615

17-
**Agent Control** provides a policy-based control layer that sits between your AI agents and the outside world. It evaluates inputs and outputs against configurable rules, blocking harmful content, prompt injections, PII leakage, and other risks — all without changing your agent's code. It's fully open source--check out the **Agent Control** [repo](https://github.com/agentcontrol/agent-control).
16+
**Agent Control** provides a centralized control layer that evaluates inputs and outputs against configurable rules to block harmful content, prompt injections, PII leakage, and more—without changing agent code.
1817

19-
## Why Do You Need It?
18+
Choose your next step: follow the quickstart, explore examples, or head to the repo:
2019

21-
Traditional guardrails embedded inside your agent code have critical limitations:
22-
23-
- **Scattered Logic:** Control code is buried across your agent codebase, making it hard to audit or update
24-
- **Deployment Overhead:** Changing protection rules requires code changes and redeployment
25-
- **Limited Adaptability:** Hard-coded checks can't adapt to new attack patterns or production data variations
26-
27-
**Agent Control gives you runtime control over what your agents can and cannot do:**
28-
29-
- **For developers:** Centralize safety logic and adapt to emerging threats instantly without redeployment
30-
- **For non-technical teams:** Intuitive UI to configure and monitor agent safety without touching code
31-
- **For organizations:** Reusable policies across agents with comprehensive audit trails
32-
33-
34-
![Agent Control Architecture](/images/Architecture.png)
35-
36-
37-
## Get started
38-
39-
Protect your AI agent in 4 simple steps.
40-
41-
## Prerequisites
42-
43-
- **Python 3.12+**
44-
45-
- **Docker**
46-
47-
<Tip>
48-
**Quick setup (no repo cloning required)** - Copy this into your terminal or directly paste into your coding agent to start the Agent Control server, UI:
49-
50-
```bash
51-
curl -L https://raw.githubusercontent.com/agentcontrol/agent-control/refs/heads/main/docker-compose.yml | docker compose -f - up -d
52-
```
53-
54-
Then, install sdk in your virtual env:
55-
56-
```bash
57-
uv venv
58-
source .venv/bin/activate
59-
uv pip install agent-control-sdk
60-
```
61-
62-
**What this does:**
63-
64-
- ✅ Starts Agent Control server at `http://localhost:8000`
65-
- ✅ Starts UI dashboard at `http://localhost:8000`
66-
- ✅ Installs Python SDK (`agent-control-sdk`)
67-
68-
**Next:** Jump to [Step 3: Register your agent](#step-3-register-your-agent)
69-
70-
</Tip>
71-
72-
73-
**Alternatively**, for local development with the Agent Control repository, clone the repo and follow all steps below.
74-
75-
## Step 1: Start the Agent Control Server
76-
77-
Startup AgentControl server manually for local development.
78-
79-
### Local development (cloning the repo)
80-
81-
Prerequisites:
82-
83-
- **uv** — Fast Python package manager (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
84-
85-
- **Node.js 18+** — For the web dashboard (optional)
86-
87-
```bash
88-
89-
# Clone the repository (contains the server)
90-
91-
git clone https://github.com/agentcontrol/agent-control.git
92-
cd agent-control
93-
94-
# Install dependencies
95-
96-
make sync
97-
98-
# Start the Agent Control server (boots Postgres + runs migrations)
99-
100-
make server-run
101-
102-
# Start the UI (in a separate shell)
103-
104-
make ui-install
105-
make ui-dev
106-
```
107-
108-
- **Server runs at `http://localhost:8000`**
109-
110-
- **UI runs at `http://localhost:4000`**
111-
112-
> 💡 **Verify the server:** Open [http://localhost:8000/health](http://localhost:8000/health) — you should see `{"status": "healthy", "version": "..."}`.
113-
114-
## Step 2: Install the SDK
115-
116-
In your agent application project:
117-
118-
```bash
119-
pip install agent-control-sdk
120-
```
121-
122-
## Step 3: Register Your Agent
123-
124-
Agent must be registered with the server. You should also add `@control` decorator around tools and LLM call functions.
125-
126-
Here is a contrived example. Reference our [Examples](/examples/overview) for real world examples for specific frameworks.
127-
128-
```python
129-
130-
# my_agent.py
131-
132-
import asyncio
133-
import agent_control
134-
from agent_control import control, ControlViolationError
135-
136-
# Protect any function (like LLM calls)
137-
138-
@control()
139-
async def chat(message: str) -> str:
140-
# In production: response = await LLM.ainvoke(message)
141-
# For demo: simulate LLM that might leak sensitive data
142-
if "test" in message.lower():
143-
return "Your SSN is 123-45-6789" # Will be blocked!
144-
return f"Echo: {message}"
145-
146-
# Initialize your agent
147-
148-
agent_control.init(
149-
agent_name="awesome_bot_3000", # Unique name
150-
agent_description="My Chatbot",
151-
)
152-
153-
async def main():
154-
try:
155-
print(await chat("test")) # ❌ Blocked
156-
except ControlViolationError as e:
157-
print(f"❌ Blocked: {e.control_name}")
158-
159-
asyncio.run(main())
160-
```
161-
162-
## Step 4: Add Controls
163-
164-
The easiest way to add controls is through the UI — see the [UI Quickstart](/core/ui-quickstart) for a step-by-step guide. Alternatively, use the SDK as shown below or call the API directly.
165-
166-
Run following setup script to create controls to protect your agent.
167-
168-
```python
169-
# setup.py - Run once to configure agent controls
170-
171-
import asyncio
172-
from datetime import datetime, UTC
173-
from agent_control import AgentControlClient, controls, agents
174-
from agent_control_models import Agent
175-
176-
async def setup():
177-
async with AgentControlClient() as client: # Defaults to localhost:8000
178-
# 1. Register agent first
179-
agent = Agent(
180-
agent_name="awesome_bot_3000",
181-
agent_description="My Chatbot",
182-
agent_created_at=datetime.now(UTC).isoformat(),
183-
)
184-
await agents.register_agent(client, agent, steps=[])
185-
186-
# 2. Create control (blocks SSN patterns in output)
187-
control = await controls.create_control(
188-
client,
189-
name="block-ssn",
190-
data={
191-
"enabled": True,
192-
"execution": "server",
193-
"scope": {"stages": ["post"]},
194-
"selector": {"path": "output"},
195-
"evaluator": {
196-
"name": "regex",
197-
"config": {"pattern": r"\b\d{3}-\d{2}-\d{4}\b"},
198-
},
199-
"action": {"decision": "deny"},
200-
},
201-
)
20+
<CardGroup cols={2}>
20221

203-
# 3. Associate control directly with agent
204-
await agents.add_agent_control(
205-
client,
206-
agent_name=agent.agent_name,
207-
control_id=control["control_id"],
208-
)
22+
<Card title="Quickstart" icon="bolt" href="/core/quickstart">
23+
Install, run, and protect your first agent in minutes.
24+
</Card>
20925

210-
print("✅ Setup complete!")
211-
print(f" Control ID: {control['control_id']}")
26+
<Card title="Examples" icon="flask" href="/examples/overview">
27+
Real-world use cases and end-to-end integrations.
28+
</Card>
21229

213-
asyncio.run(setup())
214-
```
30+
<Card title="Agent Control Repo" icon="github" href="https://github.com/agentcontrol/agent-control">
31+
Browse the source, contribute, or star the project.
32+
</Card>
21533

216-
> [!NOTE]
217-
> **Authentication Note:** Authentication is disabled by default in the server .env (`AGENT_CONTROL_API_KEY_ENABLED=false`). If you enable it, this setup script needs an admin API key because it creates a control and attaches it to an agent. `agents.register_agent()` accepts a regular or admin key, but `controls.create_control()` and `agents.add_agent_control()` require a key listed in `AGENT_CONTROL_ADMIN_API_KEYS`.
218-
>
219-
> In the example .env, the placeholders are:
220-
>
221-
> - **Regular API key(s):** `AGENT_CONTROL_API_KEYS` (e.g., "my-ui-key")
222-
> - **Admin API key(s):** `AGENT_CONTROL_ADMIN_API_KEYS` (e.g., "my-admin-key")
223-
>
224-
> **Replace these defaults before any shared or production deployment.**
34+
</CardGroup>
22535

226-
**With authentication enabled:**
36+
## Why It Matters
22737

228-
```bash
229-
curl -L https://raw.githubusercontent.com/agentcontrol/agent-control/refs/heads/main/docker-compose.yml | AGENT_CONTROL_API_KEY_ENABLED=true AGENT_CONTROL_API_KEYS="my-ui-key" AGENT_CONTROL_ADMIN_API_KEYS="my-admin-key" AGENT_CONTROL_SESSION_SECRET="some-long-random-string" CORS_ORIGINS="http://localhost:4000" docker compose -f - up -d && pip install agent-control-sdk
230-
```
38+
Traditional guardrails embedded inside your agent code have critical limitations:
23139

40+
- **Scattered Logic:** Control code is buried across your agent codebase, making it hard to audit or update
41+
- **Deployment Overhead:** Changing protection rules requires code changes and redeployment
42+
- **Limited Adaptability:** Hard-coded checks can’t adapt to new attack patterns or production data variations
23243

233-
Now, run your agent code.
44+
**Agent Control gives you runtime control over what your agents can and cannot do:**
23445

235-
**🎉 Done!** Your agent now blocks SSN patterns automatically.
46+
- **For developers:** Centralize safety logic and adapt to emerging threats without redeployment
47+
- **For non-technical teams:** Configure and monitor agent safety without touching code
48+
- **For organizations:** Reuse controls across agents with audit-ready traces
23649

237-
For detailed explanations of how controls work under the hood, performance benchmarks, configuration options, and development setup, see the complete [Quickstart](/core/quickstart) guide.
50+
Explore the core building blocks:
23851

23952
<CardGroup cols={2}>
24053

241-
<Card title="Quickstart" icon="bolt" href="/core/quickstart">
242-
Install, run, and protect your first agent in minutes.
243-
</Card>
244-
245-
<Card title="Examples" icon="flask" href="/examples/overview">
246-
Real-world use cases and end-to-end integrations.
247-
</Card>
248-
24954
<Card title="Concepts" icon="lightbulb" href="/concepts">
250-
Controls, Selectors, Evaluators, and Actions.
55+
Controls, selectors, evaluators, and actions.
25156
</Card>
25257

25358
<Card title="Architecture" icon="sitemap" href="/concepts/architecture">
25459
Component overview, data flow, and system design.
25560
</Card>
25661

25762
</CardGroup>
258-

core/quickstart.mdx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ make ui-dev
8585
In your agent application project:
8686

8787
```bash
88-
pip install agent-control-sdk
88+
uv pip install agent-control-sdk
8989
```
9090

9191
## Step 3: Register Your Agent
@@ -182,7 +182,11 @@ async def setup():
182182
asyncio.run(setup())
183183
```
184184

185-
> [!NOTE]
185+
Now, run your agent code.
186+
187+
**🎉 Done!** Your agent now blocks SSN patterns automatically.
188+
189+
> [**!NOTE**]
186190
> **Authentication Note:** Authentication is disabled by default in the server .env (`AGENT_CONTROL_API_KEY_ENABLED=false`). If you enable it, this setup script needs an admin API key because it creates a control and attaches it to an agent. `agents.register_agent()` accepts a regular or admin key, but `controls.create_control()` and `agents.add_agent_control()` require a key listed in `AGENT_CONTROL_ADMIN_API_KEYS`.
187191
>
188192
> In the example .env, the placeholders are:
@@ -195,15 +199,14 @@ asyncio.run(setup())
195199
**With authentication enabled:**
196200

197201
```bash
198-
curl -L https://raw.githubusercontent.com/agentcontrol/agent-control/refs/heads/main/docker-compose.yml | AGENT_CONTROL_API_KEY_ENABLED=true AGENT_CONTROL_API_KEYS="my-ui-key" AGENT_CONTROL_ADMIN_API_KEYS="my-admin-key" AGENT_CONTROL_SESSION_SECRET="some-long-random-string" CORS_ORIGINS="http://localhost:4000" docker compose -f - up -d && pip install agent-control-sdk
202+
curl -L https://raw.githubusercontent.com/agentcontrol/agent-control/refs/heads/main/docker-compose.yml | AGENT_CONTROL_API_KEY_ENABLED=true AGENT_CONTROL_API_KEYS="my-ui-key" AGENT_CONTROL_ADMIN_API_KEYS="my-admin-key" AGENT_CONTROL_SESSION_SECRET="some-long-random-string" CORS_ORIGINS="http://localhost:4000" docker compose -f - up -d
199203
```
200204

201-
Now, run your agent code.
202-
203-
**🎉 Done!** Your agent now blocks SSN patterns automatically.
204205

205206
### What Is Happening Under the Hood
206207

208+
![Agent Control Architecture](/images/Architecture.png)
209+
207210
1. Your app calls `chat("test")`
208211

209212
2. Function executes and returns `"Your SSN is 123-45-6789"`

0 commit comments

Comments
 (0)