Skip to main content
Loading navigation
Back to prompt library

Agent Setup and Tool Definition

Linked challenge: AI Policy Audit Agent with OpenAI Agents

Prompt source

planning60 lines9 sectionsNo variables1 code block
Initialize your OpenAI Agent using `OpenAI Agents SDK`. Define a tool named `policy_retriever` that can query the Supabase vector database for relevant policy documents based on a search query. Also, define a tool named `mem0_saver` to persist critical audit findings or contextual information to Mem0 for long-term memory. Your agent should be configured to use `GPT-4o` as its underlying model.

```python
from openai import OpenAI
import os

# Assume Supabase client and Mem0 client are initialized elsewhere
# from supabase_client import get_policy_documents
# from mem0_client import save_to_mem0

client = OpenAI(api_key=os.environ.get('OPENAI_API_KEY'))

def policy_retriever(query: str):
    # This function would interact with your Supabase Vector DB
    print(f"Searching Supabase for policies related to: {query}")
    # Example: return get_policy_documents(query)
    return ["Policy A: Data retention policies.", "Policy B: Consent guidelines."]

def mem0_saver(key: str, value: str):
    # This function would save information to Mem0
    print(f"Saving to Mem0: {key} = {value}")
    # Example: save_to_mem0(key, value)
    return {"status": "success"}

# Tool definitions for OpenAI Agents SDK
tools = [
    {
        "type": "function",
        "function": {
            "name": "policy_retriever",
            "description": "Retrieves relevant policy documents from a vector database based on a search query.",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string", "description": "The search query for policy documents."}
                },
                "required": ["query"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "mem0_saver",
            "description": "Persists key-value information into long-term memory via Mem0.",
            "parameters": {
                "type": "object",
                "properties": {
                    "key": {"type": "string", "description": "The key for the information to save."}, 
                    "value": {"type": "string", "description": "The value (content) to save."
                    }
                },
                "required": ["key", "value"]
            }
        }
    }
]

# Initialize the Assistant
assistant = client.beta.assistants.create(
    name="AI Policy Auditor",
    instructions="You are an expert AI policy auditor. Your task is to analyze documents for compliance with ethical guidelines and regulations. Use the provided tools to retrieve relevant policies and save your findings.",
    model="gpt-4o", # Or a specific model like 'gpt-4o'
    tools=tools
)

print(f"Assistant created with ID: {assistant.id}")
```