Loop Block YAML Schema
Loop блокийн YAML тохиргооны лавлах
Схемийн тодорхойлолт
type: object
required:
- type
- name
- connections
properties:
type:
type: string
enum: [loop]
description: Блокийн төрлийг тодорхойлох таних тэмдэг
name:
type: string
description: Loop блокийн дэлгэцэнд харагдах нэр
inputs:
type: object
description: Заавал биш. Хэрэв орхивол анхдагч утгууд ашиглагдана.
properties:
loopType:
type: string
enum: [for, forEach]
description: Гүйцэтгэх давталтын төрөл
default: for
iterations:
type: number
description: Давталтын тоо ( `for` төрлийн давталтад )
default: 5
minimum: 1
maximum: 1000
collection:
type: string
description: Давталт хийх цуглуулга ( `forEach` төрлийн давталтад )
default: ""
maxConcurrency:
type: number
description: Зэрэгцээ гүйцэтгэх дээд тоо
default: 1
minimum: 1
maximum: 10
connections:
type: object
properties:
# Давхарласан формат (зөвлөмж болгосон)
loop:
type: object
properties:
start:
type: string
description: Давталтын дотор гүйцэтгэх блокийн ID
end:
type: string
description: Давталт дууссаны дараах блокийн ID (заавал биш)
# Шууд handle формат (өөр хувилбар)
loop-start-source:
type: string | string[]
description: Давталтын дотор гүйцэтгэх блокийн ID (шууд формат)
loop-end-source:
type: string | string[]
description: Давталт дууссаны дараах блокийн ID (шууд формат, заавал биш)
error:
type: string
description: Алдаа боловсруулах блокийн ID
note: Давхарласан `loop` форматыг ЭСВЭЛ `loop-start-source` шууд форматыг ашиглана, хоёуланг нь хамтад нь бүү ашиглаХолболтын тохиргоо
Loop блок нь хоёр төрлийн холболтын форматыг дэмжинэ.
Шууд Handle формат (Өөр хувилбар)
Copy code
connections:
loop-start-source: <string> # Давталтын дотор гүйцэтгэх блокийн ID
loop-end-source: <string> # Давталт дууссаны дараах блокийн ID (заавал биш)
error: <string> # Алдаа боловсруулах блокийн ID (заавал биш)Хоёр формат нь ижил зарчмаар ажиллана. Аль тохиромжтойг нь сонгон ашиглаж болно.
Хүүхэд блокийн тохиргоо Loop-ийн доторх блокууд нь parentId-г тухайн loop блокийн ID-р тохируулсан байх ёстой. extent шинж чанар автоматаар 'parent' утгатай болдог тул заавал заах шаардлагагүй.
Copy code
loop-1:
type: loop
name: "Process Items"
inputs:
loopType: forEach
collection: <start.items>
connections:
loop:
start: process-item
end: final-results
# Loop доторх хүүхэд блок
process-item:
type: agent
name: "Process Item"
parentId: loop-1 # Loop блокийг заана
inputs:
systemPrompt: "Process this item"
userPrompt: <loop.currentItem>
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'Жишээнүүд
For Loop (Тогтмол тооны давталт)
countdown-loop:
type: loop
name: "Countdown Loop"
inputs:
loopType: for
iterations: 5
connections:
loop:
start: countdown-agent
end: countdown-complete
countdown-agent:
type: agent
name: "Countdown Agent"
parentId: countdown-loop
inputs:
systemPrompt: "Generate a countdown message"
userPrompt: "Count down from 5. Current number: <loop.index>"
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'ForEach Loop (Цуглуулга боловсруулах)
Copy code
email-processor-loop:
type: loop
name: "Email Processor Loop"
inputs:
loopType: forEach
collection: <start.emails>
connections:
loop:
start: process-single-email
end: all-emails-processed
process-single-email:
type: agent
name: "Process Single Email"
parentId: email-processor-loop
inputs:
systemPrompt: "Classify and respond to this email"
userPrompt: "Email content: <loop.currentItem>"
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'Олон салбар блоктой давталт Loop
Copy code
data-analysis-loop:
type: loop
name: "Data Analysis Loop"
inputs:
loopType: forEach
collection: <data-fetcher.records>
maxConcurrency: 3
connections:
loop:
start: validate-record
end: generate-report
error: handle-loop-error
(кодын агуулга өөрчлөгдөөгүй)Зэрэгцээ боловсруулалттай Loop
Copy code
parallel-processing-loop:
type: loop
name: "Parallel Processing Loop"
inputs:
loopType: forEach
collection: <start.tasks>
maxConcurrency: 5
connections:
loop:
start: process-task
end: aggregate-resultsШууд Handle формат ашигласан жишээ
my-loop:
type: loop
name: "Process Items"
inputs:
loopType: forEach
collection: <start.items>
connections:
loop-start-source: process-item
loop-end-source: final-results
error: handle-errorХамгийн энгийн Loop жишээ (Анхдагч утгууд)
inputs хэсгийг бүрэн орхиж болно. Энэ тохиолдолд loopType: 'for', iterations: 5 гэж автоматаар тохируулагдана.
simple-loop:
type: loop
name: "Simple Loop"
connections:
loop-start-source: process-step
loop-end-source: completeЭнэ loop нь анхдагчаар 5 удаа давтагдана.
Loop хувьсагчууд
Loop-ийн доторх бүх хүүхэд блокуудад дараах тусгай хувьсагчууд ашиглагдана.
<loop.index> # Одоогийн давталтын индекс (0-оос эхэлнэ)
<loop.currentItem> # Одоогоор боловсруулж буй элемент (forEach-д)
<loop.items> # Бүх цуглуулга (forEach-д)Гаралтын лавлагаа
Loop дууссаны дараа дараах байдлаар нийлбэр үр дүнг ашиглаж болно.
final-processor:
inputs:
all-results: <loop-name.results> # Бүх давталтын үр дүнгийн массив
total-count: <loop-name.count> # Гүйцэтгэсэн давталтын тооШилдэг туршлагууд
Хэт урт гүйцэтгэлээс зайлсхийхийн тулд давталтын хязгаарыг зохистой тогтоох
Цуглуулга боловсруулахад forEach, тогтмол тоонд for ашиглах
I/O ихтэй ажиллагаанд maxConcurrency ашиглах талаар бодолцох
Найдвартай ажиллагаанд алдаа боловсруулах холболт заавал нэмэх
Loop-ийн доторх блокуудад ойлгомжтой, тодорхой нэр өгөх
Том цуглуулгад орохоос өмнө жижиг өгөгдлөөр турших
Том цуглуулгын үед гүйцэтгэлийн хугацааг хянах