Hostlinku

Hostlinku Docs

Dokumentasi

Menu

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.js

Python

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.py

Responses 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

Fitur Agents SDKStatus
function_tool / tool(), parallel tool callsYa
Handoffs antar agent (termasuk model berbeda per agent)Ya — campur claude-sonnet-4-6 dan gpt-5-5 dalam satu alur
Structured output (output_type / Zod)Ya pada model yang mendukung JSON schema
Streaming (Runner.run_streamed, run(..., { stream: true }))Ya
reasoning={"effort": …} via ModelSettingsYa, diteruskan ke model
Hosted tools OpenAI (WebSearchTool, FileSearchTool, CodeInterpreterTool)Tergantung model tujuan; jalankan tool sebagai function_tool sendiri bila tidak tersedia
Tracing ke platform OpenAITidak lewat gateway — matikan, atau gunakan trace processor pihak ketiga

Troubleshooting

  • Log penuh error tracing export 401 — tracing belum dimatikan; panggil set_tracing_disabled(True) / setTracingDisabled(true) atau set OPENAI_AGENTS_DISABLE_TRACING=1.
  • 400 previous_response_id tidak didukung — hapus penggunaan previous_response_id / conversation_id; lihat callout di atas.
  • 404 model_not_found — model= harus slug Hostlinku, bukan nama model OpenAI/Anthropic asli.