OpenAI Agents SDK
Pakai OpenAI Agents SDK (Python & TypeScript) dengan Hostlinku lewat Responses API — set_default_openai_client, tracing dimatikan, tools & handoff tetap berjalan
OpenAI Agents SDK secara default memakai
Responses API, yang disediakan Hostlinku di POST /v1/responses. Cukup
berikan client OpenAI dengan base_url Hostlinku, dan matikan tracing (tracing diekspor ke
platform OpenAI, bukan lewat gateway).
Instal
pip install openai-agents # Python
npm install @openai/agents openai # TypeScript / Node.jsPython
import os
from openai import AsyncOpenAI
from agents import Agent, Runner, function_tool, set_default_openai_client, set_tracing_disabled
client = AsyncOpenAI(
base_url="https://api.hostlinku.com/v1",
api_key=os.environ["HOSTLINKU_API_KEY"],
)
set_default_openai_client(client, use_for_tracing=False)
set_tracing_disabled(True)
@function_tool
def cuaca(kota: str) -> str:
"""Cuaca saat ini di sebuah kota."""
return f"Cuaca di {kota}: cerah, 31°C"
agent = Agent(
name="Asisten",
instructions="Jawab singkat dalam bahasa Indonesia.",
model="claude-sonnet-4-6",
tools=[cuaca],
)
result = Runner.run_sync(agent, "Bagaimana cuaca di Jakarta hari ini?")
print(result.final_output)TypeScript
import OpenAI from "openai";
import { Agent, run, tool, setDefaultOpenAIClient, setTracingDisabled } from "@openai/agents";
import { z } from "zod";
setDefaultOpenAIClient(
new OpenAI({ baseURL: "https://api.hostlinku.com/v1", apiKey: process.env.HOSTLINKU_API_KEY })
);
setTracingDisabled(true);
const cuaca = tool({
name: "cuaca",
description: "Cuaca saat ini di sebuah kota",
parameters: z.object({ kota: z.string() }),
execute: async ({ kota }) => `Cuaca di ${kota}: cerah, 31°C`,
});
const agent = new Agent({
name: "Asisten",
instructions: "Jawab singkat dalam bahasa Indonesia.",
model: "gpt-5-5",
tools: [cuaca],
});
const result = await run(agent, "Bagaimana cuaca di Jakarta hari ini?");
console.log(result.finalOutput);Verifikasi
Jalankan skrip; dua request (giliran tool call dan giliran jawaban) muncul di console → Log
Permintaan dengan ID resp_….
Tanpa mengubah kode: environment variable
SDK OpenAI membaca OPENAI_BASE_URL dan OPENAI_API_KEY, sehingga Agents SDK bisa diarahkan ke
Hostlinku tanpa menyentuh kode — cukup matikan tracing lewat env juga:
export OPENAI_BASE_URL=https://api.hostlinku.com/v1
export OPENAI_API_KEY=sk-isi-api-key-kamu # API key Hostlinku
export OPENAI_AGENTS_DISABLE_TRACING=1
python agent.pyResponses API atau Chat Completions?
Default SDK adalah Responses API (/v1/responses) — disarankan, karena mendukung item reasoning
dan alur tool yang paling lengkap. Bila ingin Chat Completions (/v1/chat/completions):
from agents import set_default_openai_api
set_default_openai_api("chat_completions")import { setOpenAIAPI } from "@openai/agents";
setOpenAIAPI("chat_completions");Keduanya memakai API key, saldo, dan Request Logs yang sama.
Yang didukung lewat gateway
Troubleshooting
- Log penuh error tracing export 401 — tracing belum dimatikan; panggil
set_tracing_disabled(True)/setTracingDisabled(true)atau setOPENAI_AGENTS_DISABLE_TRACING=1. 400 previous_response_id tidak didukung— hapus penggunaanprevious_response_id/conversation_id; lihat callout di atas.404 model_not_found—model=harus slug Hostlinku, bukan nama model OpenAI/Anthropic asli.