All integrations
AutoGen
Inject Cheqpoint approval checkpoints into AutoGen multi-agent conversations before sensitive tools execute.
Install
pip install cheqpoint pyautogenpip 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",
)