diff --git a/docs/docs.json b/docs/docs.json index e9352be310..7726ed78a5 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -325,6 +325,7 @@ "guides/example-projects/claude-thinking-chatbot", "guides/example-projects/human-in-the-loop-workflow", "guides/example-projects/meme-generator-human-in-the-loop", + "guides/example-projects/openai-agent-sdk-guardrails", "guides/example-projects/realtime-csv-importer", "guides/example-projects/realtime-fal-ai", "guides/example-projects/turborepo-monorepo-prisma", diff --git a/docs/guides/example-projects/openai-agent-sdk-guardrails.mdx b/docs/guides/example-projects/openai-agent-sdk-guardrails.mdx new file mode 100644 index 0000000000..7e1305e79d --- /dev/null +++ b/docs/guides/example-projects/openai-agent-sdk-guardrails.mdx @@ -0,0 +1,63 @@ +--- +title: "OpenAI Agent SDK guardrails examples" +sidebarTitle: "OpenAI Agent SDK guardrails" +description: "This example project demonstrates how to implement different types of guardrails using the OpenAI Agent SDK with Trigger.dev for AI safety and control." +--- + +import RealtimeLearnMore from "/snippets/realtime-learn-more.mdx"; + +The OpenAI Agent SDK is a Python library. + +## Overview + +This demo is a practical guide that demonstrates: + +- **Three types of AI guardrails**: Input validation, output checking, and real-time streaming monitoring +- Integration of the [OpenAI Agent SDK](https://openai.github.io/openai-agents-python/) with [Trigger.dev](https://trigger.dev) for production AI workflows +- **Educational examples** of implementing guardrails for AI safety and control mechanisms +- Real-world scenarios like math tutoring agents with content validation and complexity monitoring + +Guardrails are safety mechanisms that run alongside AI agents to validate input, check output, monitor streaming content in real-time, and prevent unwanted or harmful behavior. + +## GitHub repo + + + Click here to view the full code for this project in our examples repository on GitHub. You can + fork it and use it as a starting point for your own project. + + +## Video + + + +## Relevant code + +### Trigger.dev Tasks + +- **[inputGuardrails.ts](https://github.com/triggerdotdev/examples/blob/main/openai-agent-sdk-guardrails-examples/src/trigger/inputGuardrails.ts)** - Passes user prompts to Python script and handles `InputGuardrailTripwireTriggered` exceptions +- **[outputGuardrails.ts](https://github.com/triggerdotdev/examples/blob/main/openai-agent-sdk-guardrails-examples/src/trigger/outputGuardrails.ts)** - Runs agent generation and catches `OutputGuardrailTripwireTriggered` exceptions with detailed error info +- **[streamingGuardrails.ts](https://github.com/triggerdotdev/examples/blob/main/openai-agent-sdk-guardrails-examples/src/trigger/streamingGuardrails.ts)** - Executes streaming Python script and parses JSON output containing guardrail metrics + +### Python Implementations + +- **[input-guardrails.py](https://github.com/triggerdotdev/examples/blob/main/openai-agent-sdk-guardrails-examples/src/python/input-guardrails.py)** - Agent with `@input_guardrail` decorator that validates user input before processing (example: math tutor that only responds to math questions) +- **[output-guardrails.py](https://github.com/triggerdotdev/examples/blob/main/openai-agent-sdk-guardrails-examples/src/python/output-guardrails.py)** - Agent with `@output_guardrail` decorator that validates generated responses using a separate guardrail agent +- **[streaming-guardrails.py](https://github.com/triggerdotdev/examples/blob/main/openai-agent-sdk-guardrails-examples/src/python/streaming-guardrails.py)** - Processes `ResponseTextDeltaEvent` streams with async guardrail checks at configurable intervals (example: stops streaming if language is too complex for a 10-year-old) + +### Configuration + +- **[trigger.config.ts](https://github.com/triggerdotdev/examples/blob/main/openai-agent-sdk-guardrails-examples/trigger.config.ts)** - Uses the Trigger.dev Python extension + +### Learn more + +- [OpenAI Agent SDK documentation](https://openai.github.io/openai-agents-python/) +- [OpenAI Agent SDK guardrails](https://openai.github.io/openai-agents-python/guardrails/) +- Our [Python build extension](/config/extensions/pythonExtension#python) diff --git a/docs/guides/introduction.mdx b/docs/guides/introduction.mdx index 9a7e7761eb..451cca43d2 100644 --- a/docs/guides/introduction.mdx +++ b/docs/guides/introduction.mdx @@ -48,6 +48,7 @@ Example projects are full projects with example repos you can fork and use. Thes | [Batch LLM Evaluator](/guides/example-projects/batch-llm-evaluator) | Evaluate multiple LLM models and stream the results to the frontend. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/batch-llm-evaluator) | | [Claude thinking chatbot](/guides/example-projects/claude-thinking-chatbot) | Use Vercel's AI SDK and Anthropic's Claude 3.7 model to create a thinking chatbot. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/claude-thinking-chatbot) | | [Human-in-the-loop workflow](/guides/example-projects/human-in-the-loop-workflow) | Create audio summaries of newspaper articles using a human-in-the-loop workflow built with ReactFlow and Trigger.dev waitpoint tokens. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/article-summary-workflow) | +| [OpenAI Agent SDK guardrails](/guides/example-projects/openai-agent-sdk-guardrails) | Use the OpenAI Agent SDK to create a guardrails system for your AI agents. | — | [View the repo](https://github.com/triggerdotdev/examples/tree/main/openai-agent-sdk-guardrails-examples) | | [Python web crawler](/guides/python/python-crawl4ai) | Use Python, Crawl4AI and Playwright to create a headless web crawler with Trigger.dev. | — | [View the repo](https://github.com/triggerdotdev/examples/tree/main/python-crawl4ai) | | [Realtime CSV Importer](/guides/example-projects/realtime-csv-importer) | Upload a CSV file and see the progress of the task streamed to the frontend. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/realtime-csv-importer) | | [Realtime Fal.ai image generation](/guides/example-projects/realtime-fal-ai) | Generate an image from a prompt using Fal.ai and show the progress of the task on the frontend using Realtime. | Next.js | [View the repo](https://github.com/triggerdotdev/examples/tree/main/realtime-fal-ai-image-generation) |