İçeriğe geç
ajan.io

Belgeler menüsü

Bu sayfada

Değişken kullanımı

Dinamik ve güçlü otomasyonlar oluşturmak için iş akışı düğümlerinizde değişkenlere nasıl erişeceğinizi, başvuracağınızı ve çalışacağınızı öğrenin.

Giriş

Değişkenler iş akışlarınızın can damarıdır—düğümler arasında veri taşırlar ve otomasyonlarınızı dinamik ve bağlama duyarlı kılarlar. Bir düğüm her yürütmeyi tamamladığında çıktısı, sonraki düğümlerin erişip kullanabileceği bir değişken olarak kullanılabilir hale gelir.

Değişkenleri konteyner olarak düşünün; veri iş akışınızda akarken onları tutarlar. Onlara nasıl erişip manipüle edeceğinizi anlamak, güçlü otomasyonlar kurmanın anahtarıdır.

Değişkenlere erişme

ajan, iş akışınızdaki önceki düğümlerden değişkenlere erişmek için iki sezgisel yol sunar:

Yöntem 1: Çift süslü ayraç ({{}})

Değişkenlere başvurmanın en doğrudan yolu çift süslü ayraç sözdizimidir. Herhangi bir alanda {{ yazmanız yeterlidir; önceki düğümlerden tüm kullanılabilir değişkenlerin bir açılır listesini görürsünüz.

Temel sözdizimi:

handlebars
{{node_name.output.field_name}}

Gerçek dünya örnekleri:

handlebars
{{form1.output.email}}
{{analyze_feedback.output.sentiment}}
{{api_call.output.data.userId}}
{{trigger.output.customer_name}}

Yöntem 2: Çıktı seçici

Destekleyen alanlarda, değişken yollarını elle yazmak yerine görsel çıktı seçiciyi kullanabilirsiniz. Özellikle tam veri yapısından emin olmadığınızda yardımcı olur.

Nasıl kullanılır:

  1. Değişken seçimini destekleyen bir alana tıklayın
  2. Değişken seçici simgesini veya açılır menüyü arayın
  3. Önceki düğümlerden kullanılabilir çıktılara göz atın
  4. İhtiyacınız olan tam alanı seçin

Çıktı seçici doğru değişken sözdizimini otomatik üretir; hataları azaltır ve yapılandırmayı hızlandırır.


Değişken yapısını anlama

Değişkenler öngörülebilir ve çalışması kolay tutarlı bir yapı izler:

handlebars
{{node_name.output.property}}

Bunu parçalayalım:

  • node_name: Düğüme verdiğiniz benzersiz ad (ör. form1, analyze_data, http_request)
  • output: Her düğümün ürettiği standart çıktı nesnesi
  • property: Erişmek istediğiniz spesifik veri alanı

İç içe veriye erişme

Gerçek dünya verisi genellikle iç içe yapılara sahiptir. Nokta notasyonuyla derin iç içe özelliklere erişebilirsiniz:

handlebars
{{node_name.output.user.profile.email}}
{{api_response.output.data.items[0].title}}
{{trigger.output.metadata.created_at}}

Dizilerle çalışma

Veriniz diziler içeriyorsa, belirli öğelere dizine göre erişebilirsiniz:

handlebars
{{http_request.output.results[0].name}}
{{trigger.output.attachments[2].url}}

Veya tüm diziye başvurun:

handlebars
{{trigger.output.tags}}
{{api_call.output.items}}

Ajan çıktı yapısı

Ajan düğümlerinin yapılandırmaya göre iki çıktı türü vardır:

Bir çıktı şeması tanımlandığında:

handlebars
{{agent.output.structured.summary}}
{{agent.output.structured.priority}}
{{agent.output.structured.action_items[0]}}

Şema tanımlanmadığında:

handlebars
{{agent.output.messages}}

structured özelliği yalnızca ajan düğümünde bir çıktı şeması yapılandırdığınızda vardır. Şema yoksa konuşmaya erişmek için messages dizisini kullanın.

? ile isteğe bağlı zincirleme

Var olmayabilecek özelliklere güvenle erişmek için ? kullanın:

handlebars
{{trigger.output.user?.email}}
{{agent.output.structured?.priority}}
{{http_request.output.data?.items?.[0]?.name}}

Bu, veri eksikken hataları önler. Yolun herhangi bir kısmı undefined veya null ise tüm ifade hata fırlatmak yerine undefined döner.


Düğümleri yeniden adlandırdığınızda ne olur?

Düğüm adları değişkenlere bağlıdır. Bir düğümü yeniden adlandırdığınızda, o düğüme başvuran tüm değişkenler iş akışınız boyunca otomatik güncellenir—elle düzeltme gerekmez.

Otomatik değişken güncellemeleri

Diyelim ki birden fazla yerde kullanılan form1 adlı bir form tetikleyicisi düğümünüz var:

handlebars
{{form1.output.email}}
{{form1.output.subject}}
{{form1.output.message}}

form1’i PMApplicantForm olarak yeniden adlandırırsanız tüm başvurular otomatik güncellenir:

handlebars
{{PMApplicantForm.output.email}}
{{PMApplicantForm.output.subject}}
{{PMApplicantForm.output.message}}

Bu otomatik olarak şuralarda olur:

  • Manuel mod alanları
  • Yapay zeka istemi modu talimatları
  • Kod düğümü başvuruları
  • Koşul düğümü karşılaştırmaları
  • Diğer tüm düğüm yapılandırmaları

En iyi uygulama: Düğümlere anlamlı adlar verin

Yeniden adlandırma sorunsuz olduğundan, düğümlere baştan net, açıklayıcı adlar vermeye zaman ayırın:

İyi düğüm adları:

  • ExtractCustomerData
  • AnalyzeSentiment
  • SendWelcomeEmail
  • CheckInventoryStatus

Genel adlardan kaçının:

  • ❌ agent1
  • ❌ http_node
  • ❌ trigger
  • ❌ action

Değişkenleri birden fazla düğümde yeniden kullanma

Değişkenlerin en güçlü özelliklerinden biri, birçok farklı düğümde birden fazla kez kullanılabilmeleridir. Bir düğüm çıktı ürettiğinde, o veri iş akışınızdaki tüm sonraki düğümler için kullanılabilir.

Temel değişken yeniden kullanımı

Aynı değişkeni birden fazla düğümde kullanın:

text
Trigger (form1) →
  ├─ Agent (analyze with {{form1.output.message}})
  ├─ HTTP Request (log {{form1.output.email}})
  └─ Notification (alert about {{form1.output.priority}})

Üç düğüm de tetikleyiciden sonra geldiği için form1.output’a eşzamanlı başvurabilir.

Kullanım senaryosu: Çok kanallı bildirimler

Aynı bilgiyi farklı kanallardan gönderin:

text
Agent (analyze_ticket) →
  ├─ Email (send {{analyze_ticket.output.summary}} to support team)
  ├─ Slack (post {{analyze_ticket.output.summary}} to #support)
  └─ Database (log {{analyze_ticket.output.priority}} and {{analyze_ticket.output.category}})

Gelişmiş değişken teknikleri

Birden fazla değişkeni birleştirme

Tek bir alanda farklı düğümlerden veri karıştırın:

handlebars
New order #{{trigger.output.order_id}} from {{customer_data.output.name}} for {{trigger.output.amount}}

Kod düğümlerinde değişkenler

Özel kodda değişkenlere erişmek için Kod düğümlerini kullanın. Kod düğümleri hakkında daha fazla bilgi.

Kod düğümleri yalnızca doğrudan başvurduğunuz slug’ların çıktılarını yükler. data veya diğer dinamik çıktı aramalarıyla her yukarı akış çıktısı yüklenir ve 5 MiB limitine sayılır.

javascript
const email = trigger.output.email;
const priority = analyze.output.structured?.priority || "medium";

return {
  email: email,
  priority: priority
};

Önceki düğümlerden dosya çıktıları, Python Kod düğümlerinin doğrudan open()’a iletebileceği bir path özelliği içerir:

python
file = trigger["output"]["resume"][0]

with open(file["path"], "rb") as f:
    content = f.read()

Tam örnek için Önceki düğümlerden dosya okuma sayfasına bakın.

Yapay zeka istemi modunda değişkenler

Yapay zeka talimatlarında birden fazla değişkene başvurun:

text
Analyze the customer message {{trigger.output.message}} and consider their history:
- Previous purchases: {{customer_data.output.purchase_count}}
- Last contact: {{customer_data.output.last_contact_date}}
- Sentiment from last interaction: {{previous_analysis.output.sentiment}}

Provide a personalized response addressing their concern.

Filtreleme ve dönüştürme

Veriyi filtrelemek veya dönüştürmek için değişkenleri kullanın:

Bir Koşul düğümünde:

handlebars
{{ trigger.output.amount > 1000 }}
{{ analyze.output.structured?.priority === "high" }}
{{ customer.output.status !== "inactive" }}

Tüm ifade {{ }} içinde olmalıdır. İfade JavaScript olarak değerlendirilir.

Filtreleme için bir Kod düğümünde:

javascript
const orders = trigger.output.orders;
const highValueOrders = orders.filter((order) => order.amount > 1000);

return { filtered_orders: highValueOrders };

Değişken sorun giderme

Değişken kullanılamıyor

Sorun: İstediğiniz değişken otomatik tamamlamada görünmüyor.

Yaygın nedenler:

  • Düğüm henüz bağlanmamış
  • Düğüm aşağı akışta (geçerli düğümden sonra)
  • Düğüm henüz bir test çalıştırmasında yürütülmemiş

Çözüm: Değişkeni üreten düğümün, iş akışı grafiğinizde onu kullanmaya çalışan düğümden önce geldiğinden emin olun.

Undefined veya null değerler

Sorun: Değişken var ama undefined veya null dönüyor.

Yaygın nedenler:

  • Kaynak düğüm başarısız oldu veya boş veri döndürdü
  • Alan yolu yanlış
  • İsteğe bağlı veri sağlanmadı

Kaynak düğüm Devam et (hata çıktısını kullanarak) stratejisiyle başarısız olduysa, çıktısı olağan alanlar yerine hatayı içerir. Buna {{node_name.output.error}} ile başvurun.

Çözüm:

javascript
// Provide defaults in Code nodes
const email = trigger.output.email || "unknown@example.com";
const amount = trigger.output.amount || 0;

// Check existence first
if (trigger.output && trigger.output.email) {
  // Safe to use
}

Yanlış veri türü

Sorun: Değişken beklenmeyen bir veri türü içeriyor.

Çözüm: Gerçek veri yapısını görmek için bir test çalıştırmasından sonra kaynak düğümün çıktı sekmesini kontrol edin.

javascript
// Debug by logging the variable
ld.log(typeof trigger.output.amount);
ld.log(JSON.stringify(trigger.output, null, 2));

Hızlı başvuru

Değişken sözdizimi kısa listesi

Kullanım senaryosuSözdizimiÖrnek
Temel alan erişimi{{node.output.field}}{{trigger.output.email}}
İç içe nesne{{node.output.object.property}}{{user.output.profile.age}}
Dizi öğesi{{node.output.array[index]}}{{items.output.list[0]}}
Dizide iç içe{{node.output.array[0].property}}{{orders.output.items[0].price}}
Tüm dizi{{node.output.array}}{{trigger.output.tags}}
Ajan yapılandırılmış çıktı{{agent.output.structured.field}}{{analyze.output.structured.summary}}
İsteğe bağlı zincirleme{{node.output.field?.property}}{{trigger.output.user?.email}}
Tek dizede birden fazlaOrder {{id}} for {{amount}}Order {{trigger.output.id}} for {{trigger.output.amount}}

En iyi uygulamalar

Değişkenlerin kendini belgelemesi için düğümleri net adlandırın: {{AnalyzeCustomerFeedback.output.sentiment}}, {{agent1.output.sentiment}}’ten çok daha nettir

Bir düğüm ekledikten sonra bir test çalıştırın ve çıktısını incelemek için düğüme tıklayın. Bu, aşağı akış düğümlerinde kullanmadan önce veri yapısını doğrular.

İsteğe bağlı alanlar için varsayılan değerler kullanın:

javascript
    const priority = analyze.output.priority || "medium";
    const tags = trigger.output.tags || [];

{{node.output.data.items[0].meta.tags[2].value}} gibi derin iç içe yollar yazıyorsanız, önce veri yapısını basitleştirmek için bir Kod düğümü kullanmayı düşünün.

Özellikle ekip iş akışlarında karmaşık değişken mantığı kullanırken Kod düğümlerine yorum veya düğümlere açıklama ekleyin.


Sonraki adımlar

Değişkenleri anladığınıza göre, bunları farklı bağlamlarda etkili kullanmayı keşfedin:

  • Alan modları — Değişkenleri Otomatik, Manuel ve Yapay zeka istemi modlarında nasıl kullanacağınızı öğrenin
  • Kod düğümü — Özel kodla değişkenleri dönüştürün ve manipüle edin
  • Koşul düğümü — Dinamik yönlendirme mantığı oluşturmak için değişkenleri kullanın
  • Temel kavramlar — Değişkenlerin büyük resme nasıl oturduğunu anlayın

SSS

Sonraki bir düğümün tetikleyiciden veya önceki bir düğümden veriye ihtiyacı olduğunda değişkenleri kullanın. Değişkenler, kullanıcı girdilerini, API yanıtlarını, üretilmiş metni veya çıkarılmış değerleri adımlar arasında ileterek iş akışlarını dinamik kılar.

Değişken yolunu, önceki düğümün gerçekten değeri üretip üretmediğini ve değerin geçerli çalıştırma için var olup olmadığını kontrol edin. Veri iç içeyse tam alan adını ve yapıyı doğrulayın.