Skip to main content
ActGuard patches Anthropic request paths and tracks usage for Messages API calls.

Requirements

RequirementVersion
anthropic SDK>=0.83.0
Python>=3.9
pip install "anthropic>=0.83.0"

Patched methods

  • anthropic._base_client.SyncAPIClient.request
  • anthropic._base_client.AsyncAPIClient.request
Only /v1/messages requests are budget-tracked.

Usage with ActGuard runtime

import actguard
import anthropic

client = actguard.Client.from_env()
ant = anthropic.Anthropic()

with client.run(user_id="alice", run_id="run-anthropic"):
    with client.budget_guard(usd_limit=0.10) as guard:
        message = ant.messages.create(
            model="claude-3-5-sonnet-latest",
            max_tokens=256,
            messages=[{"role": "user", "content": "Hello"}],
        )

print(guard.tokens_used, guard.usd_used)
Streaming responses are supported; usage is read from message_start and message_delta events.