Skip to main content
This page centralizes the technical reference for Agent Control. For concepts and architecture, see the Concepts section.

SDKs

Agent Control provides official SDKs for Python and TypeScript.

SDK development

The SDK source lives in a uv workspace. To work with the SDKs locally:

Concepts (Reference)

A Control is a single rule that defines what to check and what to do when a condition is met.
Control associations are direct links between controls and agents.
Check stages: Selectors: Actions: Priority semantics:
  1. Deny wins — if any deny control matches, execution is blocked.
  2. Steer second — if any steer control matches (and no deny), steering context is returned.
  3. Observe — non-blocking observability action that does not affect execution.
You can read more in Concepts

Server API

The Agent Control server exposes a RESTful API for managing agents and controls.

Base URL

Default: http://localhost:8000/api/v1

Endpoints

Agents: Controls: System: See more in Server Docs

Authentication

Agent Control supports API key authentication for production deployments.

Configuration

Authentication is controlled by environment variables:

Usage

Include the API key in the X-API-Key header:
With the Python SDK:

Access Levels

Key Rotation

Agent Control supports multiple API keys for zero-downtime rotation:
  1. Add new key to AGENT_CONTROL_API_KEYS (e.g., key1,key2,new-key)
  2. Deploy the server
  3. Update clients to use the new key
  4. Remove the old key from the variable
  5. Redeploy

Configuration Reference

See Configuration for full environment variables, server settings, and database setup.

Troubleshooting

Server connection issues

Import errors

Authentication errors

If you get 401 Unauthorized:
  1. Check if auth is enabled: AGENT_CONTROL_API_KEY_ENABLED
  2. Verify your API key is in AGENT_CONTROL_API_KEYS
  3. Ensure the X-API-Key header is set correctly

Database connection issues

Control not triggering

  1. Verify the control is enabled
  2. Check scope.step_types matches your step type (llm vs tool)
  3. Check scope.stages is correct (pre for input, post for output)
  4. Verify the selector path matches your data structure
  5. Test the evaluator pattern/values independently

Luna-2 evaluator errors

  1. Ensure the Galileo package is installed: pip install agent-control-evaluator-galileo (or pip install agent-control-evaluators[galileo])
  2. Ensure GALILEO_API_KEY is set
  3. Check network connectivity to Galileo API
  4. Verify the metric name is valid
  5. Check on_error setting if failures are silently allowed
Evaluator not found — If galileo.luna2 doesn’t appear in list_evaluators():
  • Verify the Galileo package is installed
  • Check server logs for evaluator discovery messages