8 أنواع
استخدام وإحالة ميدانية للعميل الوحيد، المجموعة، الوكيل القائمة، الشفرة، المصنّف، الولاية.
تقدم Braidrun حاليًا 8 أنواع من الخطوات. يجب تحديد وضع رئيسي واحد فقط لكل خطوة؛ الحقول الأخرى عبارة عن تحسينات (إعادة المحاولة، والحالة، والموافقة اليدوية، وما إلى ذلك).
1. واحد - وكيل واحد
الخطوة الأكثر شيوعًا: مطالبة الوكيل بأداء مهمة.
- step: plan
agent: planner
input: "Plan a daily report pipeline"
depends_on: [intro]
retry:
maxAttempts: 3
backoff: exponentialالتحسينات المدمجة المسموح بها: parallel、repeat_until、iterate_over.
2.group_chat — مناقشة متعددة الوكلاء
يتناوب العديد من الوكلاء في التحدث حول نفس الموضوع. يمكنك تحديد ترتيب التحدث، أو ترك الأمر للمنسق.
- step: peer_review
group_chat:
agents: [coder, reviewer]
topic: "Review the change"
max_rounds: 6
repeat_until: "score >= 8"repeat_until سيتم تقييم التعبير الشرطي بعد كل جولة؛ إذا تم استيفاء ذلك، ستنتهي الدردشة الجماعية.
3. agent_based — التفويض الديناميكي
يقوم الوكيل المنسق باختيار العاملين وإرسال المهام الفرعية في وقت التشغيل. بالمقارنة مع الدردشة الجماعية الثابتة، فهي أكثر ملاءمة لسيناريو "لا أعرف من هو المناسب، دع المخطط يقرر".
- step: delegate
agent_based:
orchestrator: planner
workers: [coder, analyst, writer]
input: "{{steps.plan.output}}"4. الكود — نص حتمي
Supports 7 languages: Python / JavaScript / TypeScript / Bash / Ruby / Lua / CLI. في الإنتاج، يَرْكضونَ في a حاوية صندلِ مِنْ قِبل الفشلِ.
code_preamble:
python:
inline: |
import json, os
workflow:
- step: transform
code:
language: python
timeout: 30
script: |
data = json.loads(os.environ.get("STEP_INPUTS", "{}"))
print(json.dumps({"rows": len(data)}))عندما تحتاج خطوات التعليمات البرمجية المتعددة إلى مشاركة الواردات أو وظائف الأداة المساعدة، استخدم المستوى الأعلى code_preambleمجمّعة بصيغة برمجة، في الوقت الحاضر هي مؤلفة تلقائياً لنص خطوات رمزية بنفس اللغة.
5. المصنف - متغير التوجيه
اسمح للوكيل بأخذ "الفئة التي ينتمي إليها السياق الحالي" كإخراج وكتابتها في متغير توجيه لاستخدامه حسب الشرط في الخطوات اللاحقة.
- step: classify_request
classifier:
agent: router
input: "Classify the user intent"
categories:
- name: coding
description: Needs code changes
- name: analysis
description: Needs investigation only
output_variable: route
- step: coding_path
agent: coder
condition: route == coding
depends_on: [classify_request]مُستَحسَن classifier + condition بدلا من المعقدة on_success.next مصفوفة السلسلة.
6.state_machine — آلة الحالة المتداخلة
تعمل كعقدة DAG مركبة، ويمكن أن تحتوي على العديد من الحالات والانتقالات بداخلها.
- step: triage
state_machine:
initial: ingest
states:
- name: ingest
agent: planner
transitions:
- condition: route == analysis
next: analyze
- condition: route == coding
next: code
- name: analyze
agent: analyst
transitions:
- next: DONE
- name: code
agent: coder
transitions:
- next: DONEلا تقم بتكوين موازية في الخطوات الخارجية؛ لا يوجد سوى تدفق واحد يدخل إلى حالة_الجهاز.
7. sub_workflow — وحدة سير العمل الفرعية
استدعاء وحدة منشورة أخرى. يلتزم الإدخال/الإخراج بالعقد المعلن بواسطة الوحدة؛ يتم إجراء الكشف عن الحلقة في وقت التشغيل.
- step: fetch_report
sub_workflow:
workflow_id: 0d2c…ab12 # UUID of the published module
version_strategy: pinned
pinned_version: "2.0.1"
inputs:
app_id: "{{var:app_id}}"
window: last_7d
outputs:
report_path: report_path # parent variable <- module outputقائمة بجميع الوحدات المضمنة: وحدة بناء مكتبة.
٨ - سير العمل - النواتج - قراءتها -
خطوة على مستوى المنظومة: فهي تقرأ القيم من النواتج التي تنشر عن طريق تنفيذ تدفق عمل آخر (انظر النشر -النواتج أدناه) وتكتبها في متغيرات سير العمل هذه. عن طريق التقصير، يقرأ زهرة المصدر أحدث تنفيذ ناجح.
- step: read_spend_report
workflow_output_read:
workflow_id: 7f3a…9c21 # source workflow UUID
selector:
mode: latest_successful
outputs:
report_url: spend_report_url # published name -> local variable
missing_policy: use_default
defaults:
report_url: ""selector.mode— (أحدث عملية تنفيذ ناجحة)؛ ويمكنك أيضاً أن تستخدم عملية تنفيذoutputs— المطلوب: رسم خريطة من أسماء النواتج المنشورة إلى الأسماء المتغيرة لسير العملmissing_policy— عندما يكون الناتج ناقصا: الفشل (العجز، أخطاء الخطى)، أو التجاوز (خطوة هذه الخطوة)، أو الاستخدام - التقصير (القيمة من التقصير)require_workflow_status— يجب أن يكون لتنفيذ المصدر مركز مكتمل
التحسينات على مستوى الخطوة
الحقول التالية ليست أنواع خطوت قائمة بذاتها ولكن تعزيز المقابس أضاف إلى خطوة.
manual_approval — الموافقة على الدليل
تضاف بوابة يدوية قبل أي خطوة: يتوقف التنفيذ ويخطر المستعرض، ويستمر عند الموافقة، ويتوقف عن الرفض أو الاستراحة.
- step: deploy
agent: deployer
input: "Deploy to production"
manual_approval:
enabled: true
approvers:
- team-lead@company.com
timeout: 3600
approval_message: "Ready to ship?"عرض قائمة المعلمات الكاملة وعملية الموافقة: الموافقة على الدليل.
publish_outputs — النواتج الخارجية
وبعد أن تتكلل خطوة بالنجاح، ننشر نواتج محددة لتدفقات العمل الأخرى لتقرأ عن طريق سير العمل - الناتج - القراء. عن طريق التقصير، لا تُنشر أيّ قطع أثرية داخلية.
- step: build_report
agent: analyst
input: "Summarize yesterday's spend"
publish_outputs:
- name: report_url
type: url
source: "{{steps.build_report.output}}"
description: Latest spend report link
visibility:
scope: teamsource— مطلوب: عبارة نموذجية تم تقييمها في وقت النشر، مثل الإشارة إلى ناتج هذه الخطوةtype— التقصير في النص؛ ويدعم أيضا التوقيف، والرقم، والبولان، والورل، والملف، والأكثرvisibility.scope— قائمة خاصة (مقبولة، فقط مالك سير العمل)، أو فريق، أو سير العمل - قائمة (مشفوعة بما يسمح به - سير العمل)
structured_output — الناتج النهائي الهيكلي
الخطوات التي يتخذها العُزُل الوحيد فقط: يستدعي الوكيل الأدوات كالمعتاد، ولكن رده النهائي يُدرج في نتيجة منظمة ضد شيمة مسجلة؛ وعندما يوضع الكتابة، تُدرج النتيجة أيضاً في ملف.
- step: final_commentary
agent: analyst
input: "Write the commentary"
structured_output:
schema: ai_commentary_parts
write_to: "{{var:output_dir}}/commentary.json"
fail_on_empty: trueschema— Required: the name of a registered structured schemawrite_to— اختياري: طريق الملف للكتابة إليه، بدعم نموذجي متوافر؛ والشكل الكتابي لا يؤيده في الوقت الراهن سوى jsonfail_on_empty— ما إذا كان الفشل خطوة عندما تكون النتيجة المنظمة فارغة؛ وعجز عن الحقيقة
نظرة سريعة على حدود التحرير والسرد
parallel— يمكن تكوين خطوات وكيل واحدة فقطrepeat_until— وكيل واحد فقط أو دردشة جماعيةiterate_over— وكيل واحد فقط أو رمز واحدstructured_output— الخطوات العازلة الوحيدةstate_machine— تعمل كعقدة مركبة DAG، ولا تقم بتكوين التوازي في الطبقة الخارجية