Skip to main content

Agent Control Panel — monitor, control, and kill-switch your AI agents

Project description

AgentMolt (ACP) — Python SDK

Monitor, control, and kill-switch your AI agents. Works with OpenAI, Anthropic, LangChain, CrewAI, and any LLM provider.

PyPI Python

Install

pip install agentcontrol

With OpenAI support:

pip install agentcontrol[openai]

Quick Start — 2 Lines

import acp
from openai import OpenAI

# Patch OpenAI to auto-monitor all calls
client = OpenAI()
panel = acp.ACP(api_key="acp_...")
panel.patch_openai(client)

# Use OpenAI normally — ACP logs everything automatically
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello"}],
    acp_agent_id="my-agent"  # tag which agent this is
)

Budget Enforcement

from acp import ACP, AgentBudget

panel = ACP()
panel.register("research-agent", budget=AgentBudget(
    max_cost_usd=10.00,    # Kill at $10
    max_tokens=100_000,     # Kill at 100K tokens
    max_calls=50,           # Kill after 50 calls
    alert_at_pct=0.8,       # Alert at 80%
))

# Agent is automatically killed when budget exceeded
panel.log("research-agent", model="gpt-4o", tokens=5000, cost=0.025)

Kill Switch

# Manual kill
panel.kill("rogue-agent", reason="suspicious activity detected")

# Check before executing
if panel.is_alive("my-agent"):
    do_work()
else:
    print("Agent is dead. Standing down.")

Decorators

from acp import monitor, budget, kill_switch

@budget("expensive-agent", max_cost_usd=50.0)
@kill_switch("expensive-agent")
@monitor("expensive-agent")
def run_analysis():
    # Your agent code here
    ...

CLI

# Scan for shadow agents
acp scan

# Check agent status
acp status

# Kill a rogue agent
acp kill marketing-gen --reason "unauthorized spend"

How It Works

ACP wraps your LLM client calls (same pattern as OpenTelemetry):

  1. Before each call: Check if agent is alive + within budget
  2. After each call: Log tokens, cost, latency, model
  3. On budget exceeded: Kill the agent, block future calls
  4. Background: Flush events to ACP dashboard every 5 seconds

No code changes needed beyond the initial patch_openai() call.

Dashboard

Connect to agentmolt.dev for:

  • Real-time agent monitoring
  • Cost tracking per agent
  • Security scoring
  • Audit trails
  • One-click kill switch

License

MIT — agentmolt.dev

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentmolt-0.1.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentmolt-0.1.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file agentmolt-0.1.0.tar.gz.

File metadata

  • Download URL: agentmolt-0.1.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for agentmolt-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9a8c3ed48be882346e1e306bb6c94d07ab4b1506f4fe2a6bad55b5973ca74bb4
MD5 e28699e866a49e4f0ebd2293ee43e609
BLAKE2b-256 15dec880d48dece5c5af864767609088908a996688df291ea12a5426dad30a72

See more details on using hashes here.

File details

Details for the file agentmolt-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: agentmolt-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for agentmolt-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36297bdd23cbc0e164d084ce09ef2cf9c108bc17738a2c0d7358cc4f65f3dc05
MD5 cea4e99104bb7283864bca1c4ebe0673
BLAKE2b-256 3bd98dcdc97b3f52f89b2aea9ba5edda14289a5c1b9fe2f76684f141bc51f558

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page