| 123456789101112131415161718192021222324252627282930313233343536373839 |
- """Minimal output guardrail example."""
- import asyncio
- from agency_swarm import Agency, Agent, GuardrailFunctionOutput, RunContextWrapper, output_guardrail
- @output_guardrail(name="ForbidSensitiveEmail")
- async def forbid_sensitive_email(
- context: RunContextWrapper, agent: Agent, response_text: str
- ) -> GuardrailFunctionOutput:
- """Reject responses that include personal email addresses."""
- if "@" in response_text:
- print(f"Guardrail intercepted draft: {response_text}")
- return GuardrailFunctionOutput(
- output_info="Do not share email addresses. Offer to connect via the support portal instead.",
- tripwire_triggered=True,
- )
- return GuardrailFunctionOutput(output_info="", tripwire_triggered=False)
- support_agent = Agent(
- name="SupportPilot",
- instructions="You handle customer support. Official email: support@example.com.",
- model="gpt-5.4-mini",
- output_guardrails=[forbid_sensitive_email],
- validation_attempts=1, # 1 is the default, set to 0 for immediate fail-fast behavior
- )
- async def main() -> None:
- agency = Agency(support_agent)
- response = await agency.get_response("What is your support team's direct email address?")
- print("Final output:", response.final_output)
- if __name__ == "__main__":
- asyncio.run(main())
|