> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting started with Control Tower

> Start monitoring your AI agents in Control Tower. Connect a supported framework, send traces, and watch your assets appear automatically.

Control Tower gives you real-time visibility into every AI agent running in your workspace: costs, token usage, errors, and performance, without manual instrumentation. You connect your framework once, send traces via OpenTelemetry, and Orq.ai does the rest.

**Orq.ai Agents, Deployments, and Models** used via the Orq Router, API or SDKs are monitored automatically—no additional setup required.

## Get Started

This guide uses **OpenAI Agents** to walk you through the setup. If you are using a different framework, see [Supported Agents](#supported-agents) below.

<Steps>
  <Step title="Get your API key">
    Your API key authenticates trace exports to Orq.ai. To find it:

    1. Open the [Orq.ai dashboard](https://my.orq.ai)
    2. Go to **Workspace Settings → API Keys**
    3. Copy an existing key or create a new one

    Store it as an environment variable:

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    export ORQ_API_KEY="<your-api-key>"
    ```

    <Note>
      Never commit your API key to source control. Use environment variables or a secrets manager.
    </Note>
  </Step>

  <Step title="Install dependencies">
    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    pip install orq-ai-sdk openai-agents \
                opentelemetry-sdk opentelemetry-instrumentation opentelemetry-exporter-otlp
    ```
  </Step>

  <Step title="Configure the tracer">
    Set up the OTLP exporter and instrument OpenAI Agents before running any code:

    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    import os
    from opentelemetry.sdk.trace import TracerProvider
    from opentelemetry.sdk.trace.export import BatchSpanProcessor
    from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
    from orq_ai_sdk.openai_agents_instrumentation import OpenAIAgentsInstrumentor

    os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://api.orq.ai/v2/otel"
    os.environ["OTEL_EXPORTER_OTLP_HEADERS"]  = f"Authorization=Bearer {os.environ['ORQ_API_KEY']}"

    tracer_provider = TracerProvider()
    tracer_provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))

    OpenAIAgentsInstrumentor().instrument(tracer_provider=tracer_provider)
    ```
  </Step>

  <Step title="Run your agent">
    Any OpenAI agent you run will now automatically send traces to Control Tower:

    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    from agents import Agent, Runner, function_tool

    @function_tool
    def get_weather(location: str) -> str:
        """Get weather for a location."""
        data = {"tokyo": "Sunny, 22°C", "paris": "Cloudy, 15°C"}
        return data.get(location.lower(), f"No data for {location}")

    agent = Agent(
        name="Weather Assistant",
        instructions="Use get_weather to answer weather questions.",
        tools=[get_weather],
        model="gpt-4o",
    )

    result = Runner.run_sync(agent, "What's the weather in Tokyo?")
    print(result.final_output)
    ```

    Orq.ai captures: `agent/Weather Assistant`, `tool/get_weather`, `model/gpt-4o`.
  </Step>

  <Step title="Verify in Control Tower">
    Open the [Assets page](/docs/control-tower/assets). Agents, tools, and models from your traces will appear automatically under their respective tabs.
  </Step>
</Steps>

## Next Steps

<CardGroup cols={2}>
  <Card title="Overview" icon="chart-mixed" href="/docs/control-tower/overview">
    Monitor all agents at a glance with summary metrics and the agents performance table.
  </Card>

  <Card title="Assets" icon="file-lines" href="/docs/control-tower/assets">
    Manage and inspect every agent, tool, deployment, and model captured in your workspace.
  </Card>
</CardGroup>

## Supported Agents

<CardGroup cols={2}>
  <Card title="Orq.ai Agents" icon="robot" href="/docs/agents/build">
    Native Orq.ai Agents with automatic asset capture. Build agents in the AI Studio or via API—monitoring is built-in.
  </Card>

  <Card title="OpenAI Agents" icon="https://mintcdn.com/orqai/d-t0Z04KwFlGVsS1/images/logos/openai.svg?fit=max&auto=format&n=d-t0Z04KwFlGVsS1&q=85&s=41cb629a8b2739dc90fac2ddea651c17" href="/docs/proxy/frameworks/openai-agents#asset-capture-in-the-control-tower" width="395" height="400" data-path="images/logos/openai.svg">
    Build agents with the OpenAI Agents SDK and automatically capture them in Control Tower via OpenTelemetry.
  </Card>

  <Card title="LangGraph" icon="https://mintcdn.com/orqai/d-t0Z04KwFlGVsS1/images/logos/langgraph.svg?fit=max&auto=format&n=d-t0Z04KwFlGVsS1&q=85&s=9af4b74f681cd7cc525c49260d572d24" href="/docs/proxy/frameworks/langgraph#observability" width="24" height="24" data-path="images/logos/langgraph.svg">
    Stateful, multi-actor agent framework with graph-based orchestration. Full asset capture support.
  </Card>

  <Card title="Vercel AI" icon="https://mintcdn.com/orqai/d-t0Z04KwFlGVsS1/images/logos/vercel.svg?fit=max&auto=format&n=d-t0Z04KwFlGVsS1&q=85&s=ec437307542a255bc9d3c75644766aff" href="/docs/proxy/frameworks/vercel-ai#asset-capture-in-the-control-tower" width="24" height="24" data-path="images/logos/vercel.svg">
    JavaScript/TypeScript SDK for AI-powered applications with streaming and multi-model support. Full asset capture support.
  </Card>
</CardGroup>
