Skip to main content

Claude Agent SDK integration for MAO detection - real-time failure prevention via hooks

Project description

pisama-agent-sdk

Real-time failure detection hooks for the Claude Agent SDK. Catches infinite loops, hallucinations, and other failure modes before they cause damage.

Part of the Pisama platform for multi-agent failure detection.

Install

pip install pisama-agent-sdk

Quick Start

Passive Monitoring (hooks)

Add two lines to your Claude Agent SDK setup:

from pisama_agent_sdk import pre_tool_use_hook, post_tool_use_hook

agent.hooks.pre_tool_use = pre_tool_use_hook
agent.hooks.post_tool_use = post_tool_use_hook

Every tool call is now checked for failure patterns in real-time (<100ms). If a loop or other issue is detected, the hook returns a blocking signal to stop the agent.

Active Self-Check

Let the agent verify its own output:

from pisama_agent_sdk import check

result = await check(
    output="The server is healthy based on the metrics.",
    context={"query": "Is auth-service down?", "sources": [...]},
)
if not result["passed"]:
    # result["issues"] describes what went wrong
    print(result["issues"])

Custom Tool for Claude Agent SDK

Give the agent a tool it can call to self-check:

from pisama_agent_sdk import create_check_tool
from claude_agent_sdk import ClaudeAgentOptions

options = ClaudeAgentOptions(
    custom_tools=[create_check_tool()],
)

Configuration

from pisama_agent_sdk import configure_bridge, BridgeConfig

configure_bridge(BridgeConfig(
    fail_open=True,           # Allow execution if detection errors (default: True)
    detection_timeout_ms=80,  # Max detection time per hook (default: 80)
))

Tool Matchers

Control which tools get checked:

from pisama_agent_sdk import PreToolUseHook, create_matcher, FILE_TOOLS, SHELL_TOOLS

# Only check file and shell tools
hook = PreToolUseHook(matcher=create_matcher(include=[FILE_TOOLS, SHELL_TOOLS]))
agent.hooks.pre_tool_use = hook

Built-in matchers: ALL_TOOLS, FILE_TOOLS, SHELL_TOOLS, DANGEROUS_COMMANDS, AGENT_TOOLS.

How It Works

  1. Your agent makes a tool call
  2. pre_tool_use_hook converts the call into a Pisama Span
  3. Registered detectors run against the span + recent session context
  4. If a failure is detected (e.g., 5th consecutive Read of the same file), the hook returns a blocking result
  5. The agent receives the block signal and adjusts its behavior

Detection runs entirely locally using pisama-core detectors. No network calls unless you configure a remote endpoint.

Evaluator Mode

Use Pisama as an evaluator in multi-agent harnesses:

from pisama_agent_sdk import PisamaEvaluator

evaluator = PisamaEvaluator(endpoint="https://your-pisama-instance/api/v1")
result = await evaluator.evaluate(trace_data)
print(result.passed, result.failures)

Requires pip install pisama-agent-sdk[evaluator].

License

MIT

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

pisama_agent_sdk-0.1.1.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

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

pisama_agent_sdk-0.1.1-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file pisama_agent_sdk-0.1.1.tar.gz.

File metadata

  • Download URL: pisama_agent_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pisama_agent_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3d70b3ee67f3d9f029a056c285462173f5bbf27072bedc3fa8e53b3aae312bfe
MD5 15b710be5a4c6e2f4c9a52da2813dabc
BLAKE2b-256 a8450e4f0670527bb66d683e79e6901f3e62806d6d94a4c7c9ea3df67340ba9c

See more details on using hashes here.

File details

Details for the file pisama_agent_sdk-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pisama_agent_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1aafdf86457f6ede5a14ba5d94dee56eb0fd0ded679097261bba85107fdc2e46
MD5 0a2b9d4acd4e6e94966654a1a8fcb037
BLAKE2b-256 20192840bc69b9478d025ab139fcd8dfba3a860fe8b2c759857bd869720d09e4

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