GPT-5.6 ile Programatik Araç Çağırma özelliğini yayınladık. Bu, araç kullanımı arttıkça aracı araçlarını ve modelleri odaklanmış tutma yöntemlerini özetlemek için iyi bir zaman.
Bir destek temsilcisine A-104 numaralı siparişin neden geciktiğini sorduğunuzda, temsilci siparişi okuyabilir, kargo şirketini arayabilir ve gecikmeyi açıklayabilir. Bu etkileşimin ardında bir döngü gizlidir: model bir eylem talep eder, bir çalışma zamanı bunu yürütür ve sonuç geri döner. Yerleşik araçlar, MCP, beceriler, Araç Arama ve Programatik Araç Çağırma, modelin ne gördüğünü ve neyin geri döndüğünü değiştirir.
1. Araç Çağırma 101: model ister; uygulama yürütür
İstemciye ait bir fonksiyon ile model, kodunuzu çalıştırmaz. Bir araç adı, JSON argümanları ve çağrı kimliği döndürür. Uygulamanız isteği kontrol eder, fonksiyonu çalıştırır ve aynı kimlikle function_call_output döndürür.

İstemciye ait araç döngüsü: uygulamanız 3. adımı yürütmeden hiçbir dış eylem gerçekleşmez. Codex'te GPT-Image-2 ile oluşturulmuştur.
Python'da, function_call_output döndürmek kontrolü tekrar modele verir:
1import json2from openai import OpenAI34client = OpenAI()56def get_order(order_id): return {"order_id": order_id, "promised_date": "2026-07-13"}78order_tool = {9 "type": "function", "name": "get_order", "strict": True,10 "description": "Bir sipariş için vaat edilen teslimat tarihini döndürür.",11 "parameters": {12 "type": "object",13 "properties": {"order_id": {"type": "string"}},14 "required": ["order_id"], "additionalProperties": False,15 },16 "output_schema": {17 "type": "object",18 "properties": {19 "order_id": {"type": "string"}, "promised_date": {"type": "string"},20 },21 "required": ["order_id", "promised_date"], "additionalProperties": False,22 },23}2425first = client.responses.create(26 model="gpt-5.6", tools=[order_tool], input="A-104 siparişi neden gecikti?",27 tool_choice={"type": "function", "name": "get_order"},28)29call = next(item for item in first.output if item.type == "function_call")30result = get_order(**json.loads(call.arguments))3132final = client.responses.create(33 model="gpt-5.6",34 tools=[order_tool],35 input=[*first.output, {36 "type": "function_call_output",37 "call_id": call.call_id,38 "output": json.dumps(result),39 }],40)41print(final.output_text)
Düzenek, model nihai bir mesaj döndürene kadar bu döngüyü tekrarlar. Katı şemalar argümanların düzgün şekillenmesini sağlar; yürütücü yine de izinleri kontrol eder.
2. Araç yürütme farklı yerlerde çalışabilir
Web arama, dosya arama ve barındırılan kabuk dahil olmak üzere yerleşik araçlar, OpenAI'in altyapısında çalışabilir. Bir uzak MCP sunucusu, araçları uzaktan kullanıma sunar ve çalıştırır; Responses bu sunucuları ve OpenAI tarafından sağlanan bağlayıcıları destekler ve varsayılan olarak veri paylaşmadan önce onay ister.
Bir beceri, talimatları ve dosyaları bir araya getirir. Bunu barındırılan kabuğa ekleyin; model, prosedürünü takip edebilir veya betiklerini çalıştırabilir. Önce becerinin adını, açıklamasını ve yolunu görür, ardından seçildiğinde SKILL.md dosyasını okur.
1carrier_mcp = {2 "type": "mcp",3 "server_label": "carrier",4 "server_url": "https://example.com/mcp",5 "allowed_tools": ["track_package"],6 "require_approval": "always",7}8incident_shell = {9 "type": "shell",10 "environment": {11 "type": "container_auto",12 "skills": [{"type": "skill_reference", "skill_id": "skill_..."}],13 },14}1516response = client.responses.create(17 model="gpt-5.6",18 tools=[carrier_mcp, incident_shell],19 input="Olay becerisini kullanarak A-104 siparişinin neden geciktiğini araştır.",20)
Düzenek bu yüzeyleri birleştirir: MCP uzak araçları kullanıma sunar, beceriler prosedürler ve dosyalar sağlar ve düzenek çağrıların nerede çalışacağını kontrol eder.
3. Araç Arama: bağlam kısıtlayıcı faktör haline geldiğinde
Görünür her araç tanımı bağlam alır. Adlar, açıklamalar ve şemalar girdi token'ları kullanır, benzer araçların birbirinden ayırt edilmesi zorlaşır ve büyük bir MCP kataloğu büyük bir istem haline gelir.
Araç Arama, uyumlu GPT-5.4 veya sonraki modellerin, ertelenmiş tanımları yalnızca ihtiyaç duyulduğunda yüklemesine olanak tanır:
1shipping = {2 "type": "namespace", "name": "shipping",3 "description": "Sipariş takibi ve teslimat araçları.",4 "tools": [{5 "type": "function", "name": "get_delivery_eta",6 "description": "Bir sipariş için tahmini varış süresini döndürür.",7 "defer_loading": True,8 "parameters": {9 "type": "object", "required": ["order_id"],10 "properties": {"order_id": {"type": "string"}},11 "additionalProperties": False,12 },13 }],14}1516response = client.responses.create(17 model="gpt-5.6",18 input="A-104 siparişi ne zaman gelir?",19 tools=[shipping, {"type": "tool_search"}],20)
Barındırılan Araç Arama, istekte bildirilen araçlar arasından seçim yapar; istemci tarafından yürütülen arama, geçerli kiracı veya proje için araçlar döndürebilir. Arama bir adım ekler, bu nedenle küçük kataloglar çok az kazanç sağlayabilir. Ertelenmiş bir fonksiyon yine de adını ve açıklamasını gösterirken, bir ad alanı veya MCP sunucusu kısa bir açıklamayla başlayabilir. Yüklenen araçlar, önbellek önekini korumak için eklenir. Beceriler talimatları ve dosyaları erteler; Araç Arama ise çağrılabilir şemaları erteler.
4. Öngörülebilir çoklu araç işleri için Programatik Araç Çağırma
Doğrudan çağrılar her sonucu modele döndürür. Bu, bir sonucun bir sonraki kararı değiştirmesi durumunda kullanışlıdır, ancak basit birleştirmeler, filtreler ve paralel aramalar, bağlamı kodun azaltabileceği verilerle doldurabilir.
Programatik Araç Çağırma, GPT-5.6'nın yeni, izole edilmiş bir V8 çalışma zamanında çalışan JavaScript yazmasına olanak tanır. V8, JavaScript'i Chrome içinde çalıştırır, ancak bu bir tarayıcı veya Node.js değildir. Üst düzey await, döngüler, koşullar ve paralel çağrıları destekler; paket kurulumu, doğrudan ağ erişimi, genel amaçlı dosya sistemi, alt işlemler, konsol veya kalıcı durum yoktur.

İzole edilmiş V8 çalışma zamanında üç doğrudan çağrı, üç paralel çağrıyla karşılaştırılmıştır. Codex'te GPT-Image-2 ile oluşturulmuştur.
Bir program istemciye ait bir fonksiyona ulaştığında, uygulamanız çağrıyı çalıştırırken duraklar; call_id ve caller'ını döndürmek onu devam ettirir. carrier_mcp ayrıca onay için duraklayabilir ve output_schema, JavaScript'e hangi alanları inceleyebileceğini söyler.
1for tool in (order_tool, carrier_mcp):2 tool["allowed_callers"] = ["programmatic"]34response = client.responses.create(5 model="gpt-5.6",6 tools=[7 order_tool,8 carrier_mcp,9 {"type": "programmatic_tool_calling"},10 ],11 input="A-104 siparişini kargo durumuyla karşılaştır ve gecikme kanıtlarını döndür.",12)
Programlar, fonksiyon ve özel araçları, MCP'yi, apply_patch'i, kabuğu ve kod yorumlayıcıyı çağırabilir, ancak web arama veya dosya aramayı çağıramaz. Üst düzey Araç Arama, program başlamadan önce ertelenmiş bir aracı yüklemelidir; çalışan bir program araç arayamaz.
Bir sonraki adım model yargısı, onay, alıntı veya bir yan etki gerektirdiğinde çağrıları doğrudan tutun. Net kuralların, kodun kanıt kaybetmeden daha küçük bir sonuç döndürmesine izin verdiği durumlarda bir program kullanın. Barındırılan yürütme, işin nerede çalıştığını değiştirir; Araç Arama, hangi tanımların bağlama girdiğini değiştirir; programatik çağrılar ise hangi sonuçların döndüğünü değiştirir. Bir değerlendirme, doğruluk korunurken token'ların, gecikmenin veya maliyetin iyileştiğini gösterdiğinde bunları birleştirin.
Bonus: uzun araç döngülerini tek bir bağlantıda tutun
Bir aracı, model ile istemciye ait araçlar arasında tekrar tekrar geçiş yapıyorsa, Responses WebSocket modu devamlılık yükünü azaltabilir. Soket, düzeneğinizi Responses'a bağlar; araçların daha hızlı çalışmasını sağlamaz. Fonksiyonlar, MCP, Araç Arama ve Programatik Araç Çağırma için aynı response.create alanlarını kabul eder, ancak belgeler her kombinasyonu kıyaslamaz. OpenAI, 20 veya daha fazla çağrı içeren dağıtımlarda %40'a varan daha hızlı yürütme gözlemlemiştir, bu nedenle iş akışınızı ölçün.
Aracınızla deneyin
Bu makalenin bir Appshot'ını alın, aracı projenizi Codex'te açın ve aşağıdakini yapıştırın:
Bu makaleyi ve mevcut kod tabanını kullanarak bu aracının araç yolunu yükseltin. Büyük veya seyrek kullanılan araçları gruplandırın ve bunları ertelemek için Araç Arama'yı etkinleştirin. Programatik Araç Çağırma'nın çağrıları paralel olarak çalıştırabileceği ve kompakt sonuçlar döndürebileceği sınırlı aşamaları bulun. Anlamsal kararları, onayları, alıntıları ve yan etkileri doğrudan çağrılar olarak tutun. Üretim yönlendirmesini değiştirmeden önce her iki yolu da doğruluk, kanıt kapsamı, araç başarısı, token'lar, gecikme, yeniden denemeler ve maliyet açısından karşılaştırın.





