Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.goantiai.com/llms.txt

Use this file to discover all available pages before exploring further.

CrewAI Integration

import os
from crewai import Agent, Task, Crew, tool
from oculus_sdk import OculusClient

oculus = OculusClient(
    client_id=os.environ["AGENT_CLIENT_ID"],
    client_secret=os.environ["AGENT_CLIENT_SECRET"],
)

@tool("Read customer data")
def read_customer(customer_id: str) -> str:
    """Read customer data from the database."""
    import httpx
    token = oculus.get_token(scope="db:read")
    resp = httpx.get(
        f"https://api.myservice.com/customers/{customer_id}",
        headers={"Authorization": f"Bearer {token}"},
    )
    return resp.text

analyst = Agent(
    role="Customer Analyst",
    goal="Analyze customer data and provide insights",
    backstory="You are a data analyst with access to customer records.",
    tools=[read_customer],
    verbose=True,
)

task = Task(
    description="Analyze the top 10 customers by revenue",
    agent=analyst,
)

crew = Crew(agents=[analyst], tasks=[task])
result = crew.kickoff()
The key pattern: call oculus.get_token(scope=...) inside each tool function, right before the API call. The SDK caches the token so repeated calls within the same tool execution don’t hit Anti AI multiple times.