
Araç Çağırma Aracısı
FlowHunt'taki Araç Çağırma Aracısı'nı keşfedin—yapay zeka aracıların karmaşık sorguları yanıtlamak için harici araçları akıllıca seçip kullanmasını sağlayan gel...
Sağlam ve ölçeklenebilir AI aracıları için 12 faktörü keşfedin: doğal dil dönüşümünden istem sahipliğine, insan iş birliğinden durumsuz tasarıma kadar. Gerçek iş değeri sunan üretime hazır AI sistemleri kurun.
Faktörlere geçmeden önce, “AI aracıları”ndan ne kastettiğimizi netleştirelim. Temelde, bunlar doğal dil taleplerini yorumlayabilen, bağlama göre karar alabilen ve araçlar ya da API’ler üzerinden belirli eylemleri gerçekleştirebilen; bunları yaparken de tutarlı ve sürekliliği olan etkileşimler sürdürebilen sistemlerdir.
En güçlü aracı sistemler, dil modellerinin akıl yürütme yeteneklerini deterministik kodun güvenilirliğiyle birleştirir. Ancak bu dengeyi kurmak, dikkatli tasarım seçimleri gerektirir ve bu faktörler tam olarak bunu hedefler.
Doğal dildeki talepleri yapılandırılmış araç çağrılarına dönüştürebilmek, bir aracının temel işlevselliğidir. Bu, “Şubat AI Tinkerers buluşması için Terri’ye 750 $’lık bir ödeme bağlantısı oluştur” gibi basit bir komutu, düzgün biçimlendirilmiş bir API çağrısına dönüştürmeyi sağlar.
{
"function": {
"name": "create_payment_link",
"parameters": {
"amount": 750,
"customer": "cust_128934ddasf9",
"product": "prod_8675309",
"price": "prc_09874329fds",
"quantity": 1,
"memo": "Hey Jeff - see below for the payment link for the February AI Tinkerers meetup"
}
}
}
Bunun güvenilir şekilde çalışmasını sağlamanın anahtarı, dil modelinizden gelen yapılandırılmış çıktıyı işlemek için deterministik kod kullanmaktır. Hataları önlemek için API yüklerini her zaman yürütmeden önce doğrulayın ve LLM’inizin güvenilir şekilde ayrıştırılabilir, tutarlı JSON formatı döndürdüğünden emin olun.
İstemler, uygulamanız ile dil modeli arasındaki arayüzdür—onları birinci sınıf kod olarak ele alın. İstemleri soyutlayan çerçeveler kullanışlı görünebilir ancak çoğu zaman talimatların LLM’e nasıl iletildiğini gizler ve ince ayar yapmayı zorlaştırır hatta imkânsız hale getirir.
Bunun yerine, istemlerinizi açıkça yazarak doğrudan kontrol edin:
function DetermineNextStep(thread: string) -> DoneForNow | ListGitTags | DeployBackend | DeployFrontend | RequestMoreInformation {
prompt #"
{{ _.role("system") }}
You are a helpful assistant that manages deployments for frontend and backend systems.
...
{{ _.role("user") }}
{{ thread }}
What should the next step be?
"#
}
Bu yaklaşım size şu avantajları sunar:
Bağlam penceresi, istemleri, konuşma geçmişini ve harici verileri kapsayan LLM’in girişidir. Bu pencereyi optimize etmek, performansı ve token verimliliğini artırır.
Standart mesaj tabanlı formatların ötesine geçip, bilgi yoğunluğunu en üst düzeye çıkaran özel yapılar kullanın:
<slack_message>
From: @alex
Channel: #deployments
Text: Can you deploy the backend?
</slack_message>
<list_git_tags>
intent: "list_git_tags"
</list_git_tags>
<list_git_tags_result>
tags:
- name: "v1.2.3"
commit: "abc123"
date: "2024-03-15T10:00:00Z"
</list_git_tags_result>
Bu yaklaşımın sunduğu faydalar şunlardır:
Temelde, araçlar yalnızca LLM’den çıkan ve kodunuzda deterministik eylemleri tetikleyen JSON çıktılardır. Bu, AI karar alma ile yürütme mantığı arasında net bir ayrım sağlar.
Araç şemalarını net olarak tanımlayın:
class CreateIssue {
intent: "create_issue";
issue: {
title: string;
description: string;
team_id: string;
assignee_id: string;
};
}
class SearchIssues {
intent: "search_issues";
query: string;
what_youre_looking_for: string;
}
Ardından LLM JSON çıktıları için güvenilir ayrıştırma oluşturun, deterministik kodla eylemleri yürütün ve sonuçları yinelemeli iş akışları için tekrar bağlama ekleyin.
Pek çok aracı çerçevesi, yürütme durumunu (ör. süreçteki mevcut adım) iş durumundan (ör. araç çağrıları ve sonuçlarının geçmişi) ayrı tutar. Bu ayrım, gereksiz karmaşıklık ekler.
Bunun yerine, tüm durumu doğrudan bağlam penceresinde tutun ve yürütme durumunu olaylar dizisinden çıkarın:
<deploy_backend>
intent: "deploy_backend"
tag: "v1.2.3"
environment: "production"
</deploy_backend>
<error>
error running deploy_backend: Failed to connect to deployment service
</error>
Bu birleşik yaklaşım şu avantajları sağlar:
Üretim düzeyinde aracıların, harici sistemlerle sorunsuz entegre olması, uzun süren görevler için duraklayabilmesi ve webhook veya diğer olaylarla tetiklendiğinde devam edebilmesi gerekir.
Ajanları başlatan, duraklatan ve devam ettiren; işlemler arasında sağlam durum depolaması sunan API’ler uygulayın. Bu sayede:
AI aracıları, yüksek riskli kararlar veya belirsiz durumlar için sıkça insan girdisine ihtiyaç duyar. Yapılandırılmış araç çağrılarıyla bu etkileşim sorunsuz olur:
class RequestHumanInput {
intent: "request_human_input";
question: string;
context: string;
options: {
urgency: "low" | "medium" | "high";
format: "free_text" | "yes_no" | "multiple_choice";
choices: string[];
};
}
Bu yaklaşım, etkileşim türü ve aciliyetini açıkça belirtir, birden fazla kullanıcıdan girdi almayı destekler ve kalıcı iş akışları için API’lerle iyi bir şekilde birleşir.
Özel kontrol akışı, insan onayı için duraklatma, sonuçları önbelleğe alma veya oran sınırlaması uygulama imkanı sunar—aracınızın davranışını özel ihtiyaçlarınıza göre şekillendirin:
async function handleNextStep(thread: Thread) {
while (true) {
const nextStep = await determineNextStep(threadToPrompt(thread));
if (nextStep.intent === 'request_clarification') {
await sendMessageToHuman(nextStep);
await db.saveThread(thread);
break;
} else if (nextStep.intent === 'fetch_open_issues') {
const issues = await linearClient.issues();
thread.events.push({ type: 'fetch_open_issues_result', data: issues });
continue;
}
}
}
Bu yaklaşımla şu avantajlara sahip olursunuz:
Hataları doğrudan bağlam penceresine eklemek, AI aracılarının başarısızlıklardan öğrenmesini ve yaklaşımını ayarlamasını sağlar:
try {
const result = await handleNextStep(thread, nextStep);
thread.events.push({ type: `${nextStep.intent}_result`, data: result });
} catch (e) {
thread.events.push({ type: 'error', data: formatError(e) });
}
Bunun etkili olması için:
3–20 adımlı küçük aracı sistemler, yönetilebilir bağlam pencereleriyle LLM performansını ve güvenilirliğini artırır. Bu yaklaşım şu avantajları sağlar:
LLM’ler gelişmeye devam ettikçe, bu küçük aracıların kapsamı büyüyebilir ve kalite korunarak uzun vadeli ölçeklenebilirlik sağlanır.
Aracılarınıza Slack, e-posta veya olay sistemlerinden tetikleme imkanı sunarak, kullanıcıların zaten çalıştığı yerlerde erişilebilirliğini artırın.
Çeşitli kanallardan aracı başlatan ve aynı ortamdan yanıt veren API’ler uygulayın. Bu sayede:
Aracıları, giriş bağlamını çıktı eylemlerine dönüştüren durumsuz fonksiyonlar gibi ele almak; durum yönetimini basitleştirir, öngörülebilirliği ve hata ayıklamayı kolaylaştırır.
Bu kavramsal yaklaşım, aracıları hiçbir iç durum tutmayan saf fonksiyonlar olarak görür ve şunları sağlar:
AI aracıları alanı hızla evrilse de, bu temel ilkeler, alttaki modeller gelişse bile geçerliliğini koruyacaktır. Bu uygulamaları takip eden küçük ve odaklanmış aracılarla başlayarak, bugün değer sunan ve gelecekteki gelişmelere uyum sağlayan sistemler oluşturabilirsiniz.
En etkili AI aracılarının, dil modellerinin akıl yürütme yeteneğini deterministik kodun güvenilirliğiyle birleştirdiğini unutmayın—ve bu 12 faktör, bu dengeyi kurmanıza yardımcı olur.
FlowHunt olarak, bu ilkeleri müşterilerimiz için otomatik iş akışları oluşturan kendi AI aracımızı geliştirerek pratiğe döktük. İşte, güvenilir ve üretime hazır bir sistem oluşturmak için 12 faktör metodolojisini nasıl uyguladık:
12 Faktörlü AI Aracısı metodolojisi, 12 faktörlü uygulama modelinden esinlenen, geliştiricilerin gerçek dünya üretim ortamlarında güvenilir, bakımı kolay ve ölçeklenebilir AI aracıları kurmasına yardımcı olan en iyi uygulamalar bütünüdür.
Bağlam yönetimi, AI aracılarının ilgili konuşma geçmişini, istemleri ve durumu korumasını sağlayarak performansı optimize eder, token kullanımını azaltır ve karar doğruluğunu artırır.
FlowHunt AI aracıları, gerektiğinde insan girdisi talep etmek için araç çağrılarını yapılandırır; bu sayede karmaşık veya yüksek öneme sahip senaryolarda sorunsuz iş birliği, onaylar ve kalıcı iş akışları sağlanır.
Durumsuz AI aracıları öngörülebilirdir, hata ayıklaması daha kolaydır ve ölçeklendirmesi basittir; çünkü giriş bağlamını gizli bir iç durum tutmadan çıktı eylemlerine dönüştürürler.
Arshia, FlowHunt'ta bir Yapay Zeka İş Akışı Mühendisidir. Bilgisayar bilimi geçmişi ve yapay zekaya olan tutkusu ile, yapay zeka araçlarını günlük görevlere entegre eden verimli iş akışları oluşturmada uzmanlaşmıştır ve bu sayede verimlilik ile yaratıcılığı artırır.
Sağlam, üretime hazır AI aracıları oluşturmaya hazır mısınız? FlowHunt'un araçlarını keşfedin ve 12 faktör metodolojisinin otomasyonunuzu nasıl dönüştürebileceğini görün.
FlowHunt'taki Araç Çağırma Aracısı'nı keşfedin—yapay zeka aracıların karmaşık sorguları yanıtlamak için harici araçları akıllıca seçip kullanmasını sağlayan gel...
FlowHunt'ta AI Aracıları ve araç çağıran ajanları kullanarak gelişmiş AI sohbet robotları oluşturmak için görevleri otomatikleştiren, birden fazla aracı entegre...
FlowHunt'taki Yapay Zeka Aracısı bileşeni, iş akışlarınıza özerk karar verme ve araç kullanma yetenekleri kazandırır. Büyük dil modellerinden güç alır ve çeşitl...