Agent iş akışları · 2026-10-14
Ücretsiz Qwen ile ajan kurmak: Qwen3.8 27B ile araç çağırma
Model kartı araç çağırmayı listeleyen Qwen3.8 27B ile 2 Kasım 2026'ya kadar ücretsiz ajan döngüsü: OpenAI SDK ile iki tur, max_tokens, 429, 402 ve 410.
Kısa yanıt: 2 Kasım 2026 00:00'a (TSİ) kadar ücretsiz
Qwen3.8 27B'yi 2 Kasım 2026 00:00 (TSİ) tarihine kadar ücretsiz çağırabilirsiniz ve model kartı araç/fonksiyon çağırmayı listeler; bir ajan döngüsünü bu satırla kurup kendi araçlarınızla deneyebilirsiniz. LLMTR (llmtr.com), Türkiye'de ve global sağlayıcılarda barındırılan dil modellerine tek, OpenAI uyumlu API'den erişim veren bir gateway'dir. Model kimliği heabsy/qwen3.8-27b-heabsy-free, adres https://llmtr.com/v1'dir. Bu tarihe kadar fiyat, 1 milyon girdi token'ı için de çıktı token'ı için de 0,00 $ olarak uygulanır ve krediden düşüm yapılmaz.
Kullanım hesap başına günlük bir sınırla açıktır. Model kartı görsel girdiyi de listeler; bağlam penceresi 262.144 token'dır. Bu yazı, OpenAI Python SDK ile iki turlu bir araç döngüsü kurmayı, ajan döngüsünde önemli olan ayarları ve döngünün 429, 402 ya da 410 gibi yanıtlarda nasıl davranması gerektiğini anlatır.
Ücretsiz Qwen ile araç çağıran bir ajan nasıl kurulur?
Bir ajanın temel döngüsü iki istekten oluşur. İlk istekte modele konuşmayı ve kullanabileceği araçların tanımını gönderirsiniz. Model bir araç çağırmaya karar verirse yanıttaki message.tool_calls alanı dolu gelir; her çağrıda aracın adı ve JSON biçimindeki argümanları bulunur. Aracı kendi kodunuzda çalıştırırsınız, araç çağrısını içeren assistant mesajını ve sonucu taşıyan bir tool mesajını geçmişe eklersiniz, ardından ikinci isteği gönderirsiniz. Model bu kez araç sonucuna dayanarak son yanıtı yazar.
Aşağıdaki örnekte tek bir araç var: get_weather(city). Gerçek bir hava durumu servisi yerine yerel bir taslak fonksiyon sabit bir sonuç döndürür; kendi aracınızı bağlarken yalnızca bu fonksiyonu değiştirirsiniz. tool mesajındaki tool_call_id, modelin döndürdüğü çağrı kimliğiyle aynı olmalıdır; model hangi sonucun hangi çağrıya ait olduğunu bu eşleşmeyle bilir. max_tokens değeri 4096'dır, çünkü akıl yürütme token'ları da bu sınıra dahildir.
Mevcut bir OpenAI istemcisinde üç şey değişir: base_url değeri https://llmtr.com/v1 olur, api_key alanına LLMTR anahtarınız yazılır ve model dizgesi heabsy/qwen3.8-27b-heabsy-free olur. SDK anahtarı sizin yerinize Authorization: Bearer başlığıyla gönderir.
OpenAI Python SDK ile get_weather aracını tanımlayan, model araç çağırırsa çağrıyı yerel bir fonksiyonla yanıtlayan ve ikinci istekte son yanıtı yazdıran iki turlu döngü.
import json
from openai import OpenAI
client = OpenAI(base_url="https://llmtr.com/v1", api_key="llmtr-your_key")
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}]
def get_weather(city):
# Local stub: replace it with a real weather lookup.
return {"city": city, "temperature_c": 18, "condition": "light rain"}
messages = [{"role": "user", "content": "Do I need an umbrella in Istanbul today?"}]
# Turn 1: the model decides whether to call a tool.
first = client.chat.completions.create(
model="heabsy/qwen3.8-27b-heabsy-free",
max_tokens=4096,
tools=tools,
messages=messages,
)
message = first.choices[0].message
if message.tool_calls:
# Keep the assistant turn that asked for the tools in the history.
messages.append({
"role": "assistant",
"content": message.content,
"tool_calls": [call.model_dump() for call in message.tool_calls],
})
for call in message.tool_calls:
args = json.loads(call.function.arguments)
result = get_weather(args["city"])
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result),
})
# Turn 2: the model answers from the tool result.
second = client.chat.completions.create(
model="heabsy/qwen3.8-27b-heabsy-free",
max_tokens=4096,
tools=tools,
messages=messages,
)
print(second.choices[0].message.content)
else:
print(message.content)
Ajan döngüsünde önemli ayarlar
Bağlam penceresi 262.144 token'dır; uzun araç çıktıları ve büyüyen mesaj geçmişi bu pencereye sığmalıdır. max_tokens en fazla 32.768 olabilir; daha büyük bir değer HTTP 400 invalid_request ile reddedilir. Akıl yürütme varsayılan olarak açıktır ve bu token'lar max_tokens sınırına dahildir. Modelin araç seçtiği turlarda ona yer bırakın: 4096 ya da daha fazlası iyi bir başlangıçtır. Yanıt finish_reason: "length" ile dönerse max_tokens değerini artırıp isteği yeniden gönderin.
reasoning_effort alanı bu modelde desteklenmez; alanı gönderen istek HTTP 400 invalid_request ile reddedilir, bu yüzden kullandığınız kütüphane ya da çatı bu alanı kendiliğinden ekliyorsa kapatın. stream: true kabul edilir, ancak yanıt tamamlandıktan sonra parçalar hâlinde gelir; istemcinizin ilk parçayı bekleme süresini buna göre ayarlayın. Model yalnızca /v1/chat/completions uç noktasından çağrılır; /v1/responses kullanılamaz.
| Ayar | Değer |
|---|---|
| Model kimliği | heabsy/qwen3.8-27b-heabsy-free |
| Fiyat (2 Kasım 2026 00:00 TSİ'ye kadar) | 0,00 $ girdi / 0,00 $ çıktı (1 milyon token) |
| Bağlam penceresi | 262.144 token |
| max_tokens üst sınırı | 32.768; üstü HTTP 400 invalid_request |
| Akıl yürütme | varsayılan açık; max_tokens'a dahil, araç turlarında 4096 ya da daha fazlası |
| reasoning_effort | desteklenmez; HTTP 400 invalid_request |
| Araç/fonksiyon çağırma | model kartında listelenir |
| Görsel girdi | model kartında listelenir |
| Akış (stream: true) | kabul edilir; yanıt tamamlandıktan sonra parçalar hâlinde gelir |
| Uç nokta | /v1/chat/completions; /v1/responses kullanılamaz |
Döngüyü sağlamlaştırmak
Bir turda kaç araç çağrısı geleceğini varsaymayın. tool_calls alanı boş, tek elemanlı ya da birden fazla elemanlı olabilir; kodunuz üç durumu da işlemeli ve her çağrı için ayrı bir tool mesajı eklemelidir. Alan boşsa modelin yanıtı son yanıttır. Argümanları çalıştırmadan önce JSON olarak ayrıştırın ve beklediğiniz alanların varlığını kontrol edin; ayrıştırılamayan bir argümanda aracı çalıştırmak yerine hatayı tool mesajı olarak modele geri gönderebilirsiniz.
Tur sayısını sınırlayın. Model araç çağırmayı sürdürdükçe döngü uzar; örneğin beş ya da on turdan sonra döngüyü durdurup o ana kadarki sonucu döndürün. Bu sınır hem bitmeyen bir döngüyü hem de günlük kullanımın tek bir görevde tükenmesini önler.
HTTP 429 yanıtı, ücretsiz kullanım sınırlarından birine ulaşıldığını bildirir; bu sınır günlük ya da dakika başına olabilir ve yanıt Retry-After başlığını taşır. Sınır kendiliğinden açılır; istemciniz başlıktaki süre kadar bekleyip isteği yeniden göndermelidir. Henüz bakiye yüklememiş bir hesapta bir süre kullanımdan sonra HTTP 402 dönebilir; hatanın details.reason alanı account_verification_required olur. Bu, otomatik kullanım korumasının hesabın bir kez doğrulanmasını istediğini bildirir: Dashboard > Faturalandırma sayfasından bir kez bakiye yükleyin ve bir dakika sonra yeniden deneyin; model bakiyenizden düşmez. HTTP 410 model_retired ise kalıcıdır: isteği tekrarlamak sonuç vermez, döngüyü durdurup model dizgesini değiştirmek gerekir.
Ajan çatılarından (framework) kullanmak
OpenAI uyumlu bir base_url, bir api_key ve bir model dizgesi kabul eden her çatı aynı şekilde bağlanır: base_url olarak https://llmtr.com/v1, api_key olarak LLMTR anahtarınız, model olarak heabsy/qwen3.8-27b-heabsy-free yazılır. Örneğin bir çatının OpenAI uyumlu sohbet istemcisi bu üç değerle yapılandırılır; araç tanımları ve döngü çatının kendi mekanizmasıyla çalışır, istekler yine /v1/chat/completions uç noktasına gider.
Çatı reasoning_effort gönderiyorsa bu alanı kapatın; Responses API kullanan bir istemciyi Chat Completions moduna alın. Üretime geçmeden önce modeli kendi araçlarınızla deneyin: araç çağırma desteği model kartının listelediği bir özelliktir, bu yüzden kendi araç şemalarınız ve kendi istem boyutlarınızla uçtan uca bir senaryo çalıştırıp modelin ne döndürdüğüne bakın.
Başlamadan önce ve 2 Kasım'dan sonra
Heabsy modelleri, hesabınız Heabsy için veri aktarım onayı vermeden çağrılamaz; onaysız her istek HTTP 403 provider_consent_required döner. Onayı Ayarlar sayfasındaki Veri aktarım onayları kartından verirsiniz; onay hesap düzeyindedir ve o hesabın bütün API anahtarları için geçerlidir. Heabsy'nin beyanına göre model AB/AEA'daki veri merkezlerinde çalışır; istemler ve yanıtlar saklanmaz ve eğitimde kullanılmaz.
Ücretsiz dönem 2 Kasım 2026 00:00'da (TSİ, Europe/Istanbul, UTC+3) biter. Bu andan sonra heabsy/qwen3.8-27b-heabsy-free kimliğine gelen istekler HTTP 410 model_retired döner ve hata ücretli heabsy/qwen3.8-27b-heabsy kimliğini bildirir. Ajanınızın model dizgesini bu kimlikle değiştirmeniz yeterlidir; araç tanımları ve döngü aynı kalır. Ücretli kimlik ön ödemeli krediden, 1 milyon token başına 0,40 $ girdi, 0,05 $ önbellekten okunan girdi ve 3,00 $ çıktı fiyatıyla faturalanır.
Ücretsiz Qwen3.8 27B ile araç çağıran ajan kurma
Heabsy onayını verin, API anahtarı oluşturun, araçlarınızı tanımlayın ve 2 Kasım 2026 00:00 (TSİ) öncesinde heabsy/qwen3.8-27b-heabsy-free ile iki turlu döngüyü çalıştırın.
- Onay ve anahtar. llmtr.com'da Ayarlar sayfasından Heabsy veri aktarım onayını verin, Dashboard > API Anahtarları altında bir anahtar oluşturun ve onu LLMTR_API_KEY ortam değişkeninde saklayın.
- Araçları tanımlayın. Her aracı OpenAI biçiminde bir function tanımıyla yazın: ad, açıklama ve JSON şeması olarak parametreler. Aracın kendisini kendi kodunuzda bir fonksiyon olarak hazırlayın.
- Döngüyü çalıştırın. İlk isteği tools ile gönderin; tool_calls gelirse aracı çalıştırın, sonucu tool_call_id ile bir tool mesajı olarak ekleyin ve ikinci istekle son yanıtı alın. 429'da Retry-After kadar bekleyin, 410'da durun.
Sık sorulan sorular
Qwen3.8 27B ile ajan çalıştırmak gerçekten ücretsiz mi?
Evet. heabsy/qwen3.8-27b-heabsy-free için fiyat, 2 Kasım 2026 00:00 (TSİ) tarihine kadar 1 milyon girdi ve çıktı token'ı başına 0,00 $'dır ve krediden düşüm yapılmaz. Kullanım hesap başına günlük bir sınırla açıktır; sınıra ulaşıldığında HTTP 429 ve Retry-After başlığı döner.
Ücretsiz Qwen araç çağırmayı destekliyor mu?
Model kartı araç/fonksiyon çağırmayı listeler. İstekte tools alanını OpenAI biçiminde gönderirsiniz; model çağrılarını message.tool_calls içinde döndürür. Üretime geçmeden önce kendi araçlarınızla deneyin.
2 Kasım 2026'dan sonra ajanıma ne olur?
İstekler HTTP 410 model_retired döner ve hata ücretli heabsy/qwen3.8-27b-heabsy kimliğini bildirir. Model dizgesini değiştirdiğinizde aynı ajan, 1 milyon token başına 0,40 $ girdi ve 3,00 $ çıktı fiyatıyla çalışmaya devam eder.