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

# OpenAI Agents SDK

> Bangun sistem multi-agent otonom dengan OpenAI Agents SDK dan Neosantara via LiteLLM atau client langsung.

[OpenAI Agents SDK](https://github.com/openai/openai-agents-python?utm_source=neosantara-docs\&utm_medium=referral) adalah framework orkestrasi agen resmi dari OpenAI untuk membangun alur kerja multi-agent, handoff otomatis antar-agen, dan pemanggilan tools. Framework ini mendukung integrasi fleksibel dengan Neosantara melalui ekstensi `LitellmModel` atau konfigurasi client langsung.

## Pengaturan

Instal library OpenAI Agents SDK beserta ekstensi LiteLLM:

```bash theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
pip install "openai-agents[litellm]"
```

<CodeGroup>
  ```bash Bash / zsh icon="terminal" theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
  export NEOSANTARA_API_KEY="nsk_your_api_key_here"
  ```

  ```env .env icon="file-code" theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
  NEOSANTARA_API_KEY=nsk_your_api_key_here
  ```

  ```powershell PowerShell icon="terminal" theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
  $env:NEOSANTARA_API_KEY="nsk_your_api_key_here"
  ```
</CodeGroup>

## Integrasi via LiteLLM Model

Gunakan kelas `LitellmModel` dengan prefix `neosantara/<model>` untuk menjalankan model gateway. Kredensial dibaca otomatis dari environment variable `NEOSANTARA_API_KEY`:

```python theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
import os
from agents import Agent, Runner, set_tracing_disabled
from agents.extensions.models.litellm_model import LitellmModel

# Nonaktifkan tracing OpenAI agar tidak memerlukan OPENAI_API_KEY
set_tracing_disabled(True)

# Inisialisasi agen dengan model Neosantara
agent = Agent(
    name="Researcher",
    instructions="Anda adalah analis teknologi yang menyajikan data secara ringkas dan objektif.",
    model=LitellmModel(model="neosantara/gemini-3.8-flash")
)

result = Runner.run_sync(agent, "Jelaskan keunggulan regional AI gateway dalam satu paragraf.")
print(result.final_output)
```

## Integrasi Client Langsung

Anda juga dapat mengarahkan client OpenAI default langsung ke endpoint gateway Neosantara (`https://api.neosantara.xyz/v1`):

```python theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
import os
from openai import AsyncOpenAI
from agents import Agent, Runner, set_default_openai_client, set_default_openai_api, set_tracing_disabled

set_tracing_disabled(True)

# Konfigurasi client Neosantara global
client = AsyncOpenAI(
    base_url="https://api.neosantara.xyz/v1",
    api_key=os.environ["NEOSANTARA_API_KEY"]
)
set_default_openai_client(client, use_for_tracing=False)
set_default_openai_api("chat_completions")

agent = Agent(
    name="ArchitectBot",
    instructions="Jawab pertanyaan teknis infrastruktur secara mendalam.",
    model="deepseek-v4.1-flash"
)

result = Runner.run_sync(agent, "Bandingkan efisiensi latensi server regional vs global.")
print(result.final_output)
```

## Eksekusi Tool Calling

Definisikan fungsi Python biasa dengan decorator `@function_tool` untuk memberikan kapabilitas tools pada agen:

```python theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
import os
from openai import AsyncOpenAI
from agents import Agent, Runner, function_tool, set_default_openai_client, set_default_openai_api, set_tracing_disabled

set_tracing_disabled(True)

client = AsyncOpenAI(
    base_url="https://api.neosantara.xyz/v1",
    api_key=os.environ["NEOSANTARA_API_KEY"]
)
set_default_openai_client(client, use_for_tracing=False)
set_default_openai_api("chat_completions")

@function_tool
def cek_kuota_tier(tier: str) -> str:
    """Mengecek batas throughput RPM dan ITPM untuk tier tertentu di Neosantara."""
    kuota = {
        "free": "10 RPM, 30.000 ITPM",
        "basic": "50 RPM, 500.000 ITPM",
        "standard": "1.000 RPM, 2.000.000 ITPM"
    }
    return kuota.get(tier.lower(), "Tier tidak ditemukan.")

agent = Agent(
    name="QuotaSupport",
    instructions="Gunakan tool cek_kuota_tier untuk menjawab pertanyaan seputar batasan rate limit.",
    model="gemini-3.8-flash",
    tools=[cek_kuota_tier]
)

result = Runner.run_sync(agent, "Berapa limit RPM dan ITPM untuk tier basic?")
print(result.final_output)
```

## Agent Handoffs

OpenAI Agents SDK mengandalkan mekanisme *handoff* untuk mentransfer sesi percakapan secara otonom dari satu agen ke agen spesialis lain:

```python theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
import os
from openai import AsyncOpenAI
from agents import Agent, Runner, set_default_openai_client, set_default_openai_api, set_tracing_disabled

set_tracing_disabled(True)

client = AsyncOpenAI(
    base_url="https://api.neosantara.xyz/v1",
    api_key=os.environ["NEOSANTARA_API_KEY"]
)
set_default_openai_client(client, use_for_tracing=False)
set_default_openai_api("chat_completions")

# Agen spesialis teknis (model penalaran mendalam)
code_specialist = Agent(
    name="CodeSpecialist",
    instructions="Anda spesialis algoritma dan perbaikan kode. Selesaikan masalah kode pengguna secara terperinci.",
    model="deepseek-v4.1-flash"
)

# Agen triage garis depan (model cepat & responsif)
triage_agent = Agent(
    name="TriageAgent",
    instructions="Evaluasi permintaan pengguna. Jika pengguna memerlukan bantuan pemrograman atau koding, serahkan tugas ke CodeSpecialist.",
    model="gemini-3.8-flash",
    handoffs=[code_specialist]
)

result = Runner.run_sync(triage_agent, "Saya mengalami error pada concurrency worker Go, tolong bantu optimasi.")
print(result.final_output)
```

## Langkah Berikutnya

* [Panduan Model Context Protocol (MCP)](/id/agents/overview)
* [Pilihan Model dan Harga](/id/gateway/models)
* [Integrasi LiteLLM Native](/id/integrations/litellm)
* [Integrasi Google ADK](/id/integrations/google-adk)


## Related topics

- [LiteLLM](/id/integrations/litellm.md)
- [Google ADK](/id/integrations/google-adk.md)
- [CrewAI](/id/integrations/crewai.md)
- [Chat Completions](/id/gateway/chat-completions.md)
