Dokümanlar menüsü
Modelini bağla
Bir ajan her AI SDK dil modelini alır. Bu sayfa OpenAI, Anthropic ve OpenAI uyumlu sağlayıcılar (NVIDIA, Groq, OpenRouter, yerel sunucu) için tek satırı gösterir; ve isteğinizi o sunucuların sahip olmadığı bir API'ye sessizce yollayan çağrıyı.
Ne işe yarar / ne zaman kullanılır#
GNL bir model getirmez. Bir ajanın model'i sıradan bir Vercel AI SDK dil modelidir; yani zaten kullandığınız sağlayıcı paketini getirir ve modelini ajana verirsiniz. Başlangıç projesi hiçbir şeyin anahtar istememesi için sahte bir modelle çalışır; gerçek bir model istediğiniz gün atılacak adım budur.
Bu adımda başlamadan önce okumaya değer bir tuzak var, çünkü geç patlar ve kendi kodunuzdaki bir hataya benzer: bir model nesnesinin hangi API'yi çağırdığı. Aşağıda 404 döndüren çağrı başlığında anlatılıyor.
Kurulum / import#
En hızlı yol CLI'dir. Model dosyasını yazar, bağımlılığı ekler ve değiştirmeniz gereken tek import satırını yazdırır. gnl.config.ts'e hiçbir şey yazılmaz: model ajan üzerinde seçilir.
npx gnl add model nvidia # or: openai · anthropic · openai-compatible
pnpm installsrc/models/<provider>.ts dosyasını ve o dosyanın okuduğu değişkenleri adlandıran bir .env.example yazar. Anahtarı .env'e koyun: gnl dev ve gnl studio onu açılışta yükler, kabuğunuzda zaten ayarlı olan her şey önceliklidir.
Adım adım kullanım#
OpenAI uyumlu sağlayıcılar — NVIDIA NIM, Groq, OpenRouter, vLLM, Ollama, bir gateway: Chat Completions biçimini konuşan her sunucu. createOpenAICompatible kullanın ve baseURL'i ona yöneltin. Çıplak provider(id) çağrısı zaten bir chat modelidir; provider.chatModel(id) aynısının açık yazılmışıdır. provider.chat(id) diye bir şey yoktur.
// src/models/nvidia.ts — written by `gnl add model nvidia`.
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
const nim = createOpenAICompatible({
name: 'nvidia',
baseURL: 'https://integrate.api.nvidia.com/v1',
apiKey: process.env.NVIDIA_API_KEY ?? '',
});
// The bare call nim(id) is already a chat model; nim.chatModel(id) is the same thing, written out.
// (There is no nim.chat(id).)
export const model = nim.chatModel(process.env.NVIDIA_MODEL ?? 'poolside/laguna-xs-2.1');Diğer sunucular yalnız name, baseURL ve anahtarda ayrılır: Groq https://api.groq.com/openai/v1, OpenRouter https://openrouter.ai/api/v1, yerel bir Ollama http://localhost:11434/v1. Model id'si o sunucunun sunduğu neyse, listelediği gibi aynen yazılır.
OpenAI — sağlayıcı paketinin varsayılan çağrısı api.openai.com için doğrudur. Anthropic — çıplak çağrı Anthropic'in kendi API'si için doğrudur.
// src/models/openai.ts — the bare call is right for api.openai.com
import { openai } from '@ai-sdk/openai';
export const model = openai(process.env.OPENAI_MODEL ?? 'gpt-5');
// src/models/anthropic.ts
import { anthropic } from '@ai-sdk/anthropic';
export const model = anthropic(process.env.ANTHROPIC_MODEL ?? 'claude-sonnet-5');
// @ai-sdk/openai pointed at an OpenAI-compatible server (baseURL): ask for Chat Completions
// createOpenAI({ baseURL, apiKey }).chat(id) // not the bare call, not .languageModel(id)Sonra modeli ajana verin. Ajan yapılandırmasının tek bir alanıdır:
import type { AgentConfig } from '@gnldev/durable';
import { model } from '../models/nvidia.js';
export const assistant: AgentConfig = {
model, // was: echoModel()
system: 'You are a helpful assistant.',
maxSteps: 4,
};@ai-sdk/openai, çıplak openai(id) çağrısını (ve openai.languageModel(id)'yi de) Responses API'sine (/v1/responses) gönderir. OpenAI için bu doğrudur. Ama OpenAI uyumlu sağlayıcılar (NVIDIA, Groq, OpenRouter ve çoğu diğeri) Responses değil Chat Completions sunar: baseURL ile onlardan birine yöneltilince istek 404 döner; mesaj eksik bir rota ya da fonksiyondan söz eder ve kendi kodunuzdaki bir hataya benzer. Böyle bir sunucu için @ai-sdk/openai'yi tutacaksanız openai.chat(id) çağırın; daha temiz seçenek, çıplak çağrısı ve chatModel(id)'si zaten chat modeli olan createOpenAICompatible'dır.assistant'ı yankıyla cevap verir; charge-demo ise ilk turda sabit bir siparişle demo chargeOrder tool'unu çağıran toolCallingModel'i kullanır; ne sorarsanız sorun, ve başka hiçbir tool'u asla çağırmaz. Anahtarsız exactly-once garantisini göstermek için vardır. Kendi tool'larınızı çalıştırmak için gerçek bir model gerekir: yukarıdaki adımla bir tane bağlayın.