All integrations

AutoGen

Inject Cheqpoint approval checkpoints into AutoGen multi-agent conversations before sensitive tools execute.

Install

pip install cheqpoint pyautogen
pip install cheqpoint pyautogen

Wrap AutoGen tools with Cheqpoint approval

Python
import autogen
from cheqpoint import CheqpointClient

client = CheqpointClient(api_key=os.environ["CHEQPOINT_API_KEY"])

def with_approval(action: str, risk_level: str = "high"):
    """Decorator to gate an AutoGen tool behind human approval."""
    def decorator(fn):
        def wrapper(*args, **kwargs):
            result = client.checkpoint(
                action=action,
                summary=f"AutoGen agent wants to: {action}",
                details={"args": args, "kwargs": kwargs},
                risk_level=risk_level,
            )
            if result["status"] != "APPROVED":
                raise PermissionError(f"Action rejected: {result.get('decisionNote', 'No reason')}")
            return fn(*args, **kwargs)
        return wrapper
    return decorator

@with_approval("process_refund", risk_level="high")
def process_refund(order_id: str, amount: float) -> dict:
    # Your actual refund logic here
    return {"success": True, "order_id": order_id, "amount": amount}
import autogen
from cheqpoint import CheqpointClient

client = CheqpointClient(api_key=os.environ["CHEQPOINT_API_KEY"])

def with_approval(action: str, risk_level: str = "high"):
    """Decorator to gate an AutoGen tool behind human approval."""
    def decorator(fn):
        def wrapper(*args, **kwargs):
            result = client.checkpoint(
                action=action,
                summary=f"AutoGen agent wants to: {action}",
                details={"args": args, "kwargs": kwargs},
                risk_level=risk_level,
            )
            if result["status"] != "APPROVED":
                raise PermissionError(f"Action rejected: {result.get('decisionNote', 'No reason')}")
            return fn(*args, **kwargs)
        return wrapper
    return decorator

@with_approval("process_refund", risk_level="high")
def process_refund(order_id: str, amount: float) -> dict:
    # Your actual refund logic here
    return {"success": True, "order_id": order_id, "amount": amount}

AutoGen agent configuration

Python
assistant = autogen.AssistantAgent(
    name="FinanceAgent",
    llm_config={"model": "gpt-4o"},
    system_message="You handle finance tasks. Always call process_refund for refunds.",
)

user_proxy = autogen.UserProxyAgent(
    name="UserProxy",
    human_input_mode="NEVER",
    function_map={"process_refund": process_refund},
)

user_proxy.initiate_chat(
    assistant,
    message="Please process a £300 refund for order #54321",
)
assistant = autogen.AssistantAgent(
    name="FinanceAgent",
    llm_config={"model": "gpt-4o"},
    system_message="You handle finance tasks. Always call process_refund for refunds.",
)

user_proxy = autogen.UserProxyAgent(
    name="UserProxy",
    human_input_mode="NEVER",
    function_map={"process_refund": process_refund},
)

user_proxy.initiate_chat(
    assistant,
    message="Please process a £300 refund for order #54321",
)