جداسازی ایمیل‌های LLM در جریان‌های کاری خودکار

وقتی یک عامل LLM شروع به ارسال ایمیل یا تأیید تیکت‌ها می‌کند، مسئله تغییر می‌کند. دیگر بحث بر سر این نیست که آیا پرامپت شما کار می‌کند یا خیر. اکنون سیستم شما به سه لایه متکی است: تصمیم‌گیری، اجرا و تأیید.

اگر این لایه‌ها را با هم ترکیب کنید، تیم شما برای درک اینکه عامل واقعاً چه کاری انجام داده است، دچار مشکل خواهد شد.

مرحله ایمیل اغلب به عنوان پایان یک جریان کاری به نظر می‌رسد. در واقعیت، اینجاست که شکست‌ها اولین بار خود را نشان می‌دهند. یک عامل ممکن است یک درخواست را به درستی دسته‌بندی کند، اما آن را به شخص اشتباهی ارسال کند یا از یک لینک منقضی‌شده استفاده کند. شما باید تست‌ها و ردپاها (traces) را جداسازی کنید.

یک طراحی پایدار سعی نمی‌کند هوش را به طور یکجا تست کند. در عوض، سیستم خود را به قراردادهای کوچک تقسیم کنید:

  • قرارداد ورودی (Input Contract): تعریف کنید عامل از چه داده‌هایی استفاده می‌کند و چه اقداماتی می‌تواند درخواست کند.
  • قرارداد اجرا (Execution Contract): تعریف کنید چگونه یک اقدام به یک ایمیل مشخص تبدیل می‌شود.
  • قرارداد مشاهده‌پذیری (Observability Contract): پیوند دادن لاگ‌ها، پیام‌های دریافتی و وضعیت نهایی سیستم.

منطق ایمیل را از پرامپت آزاد (free prompt) جدا نگه دارید. LLM می‌تواند اقدامی مانند send_followup_email را پیشنهاد دهد. با این حال، مدل نباید درباره هدرها، گیرندگان یا سیاست‌های تلاش مجدد (retry policies) تصمیم بگیرد. برای این ترجمه‌ها از کد قطعی (deterministic code) استفاده کنید.

این رویکرد ریسک عملیاتی را کاهش می‌دهد. LLM پیشنهاد می‌دهد، سیستم تأیید می‌کند و اجراکننده ارسال می‌کند.

برای حفظ شفافیت، این چهار سیگنال را دنبال کنید:

  • تصمیمی که توسط عامل گرفته شده و زمینه (context) استفاده شده.
  • دستور نهایی ارسال شده به مجری ایمیل.
  • پیام دریافت شده در یک اینباکس ایزوله شده.
  • اثر نهایی پس از کلیک روی یک لینک یا تأیید یک اقدام.

از یک trace_id مشترک از رویداد اولیه تا کلیک نهایی استفاده کنید. این کار به شما کمک می‌کند تا خطاها را سریع پیدا کنید. خواهید فهمید که آیا شکست در مدل، سیاست ابزار، یا کارگر (worker) رخ داده است.

برای اتوماسیون بهتر، این چک‌لیست را دنبال کنید:

  • هر اجرا trace_id مخصوص به خود را دارد.
  • LLM فقط اقداماتی را در قالب یک طرحواره (schema) معتبر درخواست می‌کند.
  • مجری ایمیل، گیرنده و قالب را مجدداً اعتبارسنجی می‌کند.
  • هر سناریوی تست از اینباکس ایزوله شده خود استفاده می‌کند.
  • کلیک نهایی، تغییر وضعیت مورد انتظار را تأیید می‌کند.
  • لاگ‌ها به شما اجازه می‌دهند بدون حدس و گمان، مورد را دنبال کنید.

جدا کردن این مراحل، کمی کار بیشتر اضافه می‌کند. اما چیزی ارزشمند به شما می‌دهد: توانایی توضیح اینکه چرا یک ایمیل ارسال شده یا چرا با شکست مواجه شده است.

Source: https://dev.to/silviutech/como-aislar-emails-de-agentes-llm-en-flujos-automatizados-sin-perder-trazabilidad-26ac

Optional learning community: https://t.me/GyaanSetuAi