ساخت یک چتبات ساده با یک مدل زبانی بزرگ (LLM) کار سادهای است. با این حال، ساخت یک سیستم چندعاملی مقاوم و درجه تولید که بتواند وظایف پیچیده را بهطور قابلاعتماد اجرا کند، وضعیت پایدار را مدیریت نماید و در صورت بروز خطا بهخوبی بازیابی شود، چالش مهندسی کاملاً متفاوتی است. با حرکت هوش مصنوعی از مرحله آزمایش به زیرساخت اصلی، تمرکز از مهندسی پرامپت به معماری نرمافزار مقاوم تغییر میکند.
پیچیدگی وضعیت در سیستمهای چندعاملی
در یک گردشکار چندعاملی، «وضعیت» (State) تنها یک متغیر در حافظه نیست. بلکه زمینه مشترک، تاریخچه گفتگو، خروجی ابزارها و مراحل استدلال میانی است که عاملها برای هماهنگی به آن نیاز دارند. بدون یک استراتژی مدیریت وضعیت تعریفشده، عاملها منحرف میشوند، کارها را تکرار میکنند یا زمینههای حیاتی را از دست میدهند.
یک گردشکار پشتیبانی مشتری را در نظر بگیرید که شامل یک «عامل دریافت» (Intake Agent)، یک «عامل حل مسئله» (Resolution Agent) و یک «عامل اعتبارسنجی» (Validation Agent) است. عامل دریافت دادههای کاربر را جمعآوری کرده و آنها را ذخیره میکند. عامل حل مسئله باید به این دادهها دسترسی داشته باشد بدون اینکه از کاربر مجدداً سوال بپرسد. این امر نیازمند یک ذخیرهسازی وضعیت متمرکز، مانند Redis یا یک پایگاه داده ساختاریافته، است و نه تکیه صرف بر پنجره زمینه مدل زبانی بزرگ.
در اینجا یک نمونه سادهشده از نحوه ساخت یک شیء وضعیت مشترک در پایتون با استفاده از چارچوبی مانند LangGraph یا یک هماهنگساز سفارشی آورده شده است:
class AgentState(TypedDict):
user_id: str
intent: str
collected_entities: dict
tool_outputs: list
final_report: str
error_history: list
def update_state(current_state: AgentState, next_action: str) -> AgentState:
"""
وضعیت جهانی را بر اساس اجرای عامل بهروز میکند.
"""
new_state = current_state.copy()
if next_action == "COLLECT_DATA":
new_state["collected_entities"]["name"] = "John Doe"
new_state["collected_entities"]["email"] = "john@example.com"
return new_state
با تعریف صریح طرح وضعیت (State Schema)، ایمنی نوع را تضمین میکنید و به عاملهای مختلف اجازه میدهید تا به بخشهای خاصی از گردشکار بدون ایجاد شرایط مسابقه (Race Conditions) یا فساد دادهها، خوانده و نوشته کنند.
استفاده مقاوم از ابزارها و اعتبارسنجی ورودی
ابزارها دستهای عاملهای هوش مصنوعی شما هستند. در محیط تولید، ابزارها باید به عنوان سرویسهای خارجی با نقاط شکست بالقوه در نظر گرفته شوند. یک مدل زبانی بزرگ ممکن است آرگومانهای توهمی تولید کند یا یک ابزار ممکن است فرمت غیرمنتظرهای را بازگرداند. برای کاهش این خطرات، باید اعتبارسنجی ورودی سختگیرانه و تجزیه خروجی را پیادهسازی کنید.
هرگز به خروجی خام مدل زبانی بزرگ برای عملیات حیاتی اعتماد نکنید. از یک لایه اعتبارسنجی، مانند Pydantic، برای اعمال طرحها قبل از اجرای ابزار استفاده کنید. اگر اعتبارسنجی شکست بخورد، عامل باید وارد یک حلقه خطا شود تا از مدل زبانی بزرگ بخواهد با پارامترهای اصلاحشده مجدداً تلاش کند، به جای اینکه با دادههای نادرست پیش برود.
from pydantic import BaseModel, Field
from typing import Optional
class CreateTicketParams(BaseModel):
subject: str = Field(..., min_length= 1)
priority: str = Field(..., pattern="^(low|medium|high|critical)$")
description: str
def execute_create_ticket(params: dict) -> str:
try:
validated_params = CreateTicketParams(**params)
# ادامه با فراخوانی API
return f"Ticket created for {validated_params.subject}"
except Exception as e:
raise ValueError(f"Invalid parameters: {str(e)}")
بازیابی خطا و استراتژیهای جایگزین
خطاها در سیستمهای هوش مصنوعی اجتنابناپذیرند. مدلها توهم تولید میکنند، APIها زمانبر میشوند و توکنها تمام میشوند. یک معماری آماده برای تولید باید شامل مکانیسمهای صریح بازیابی خطا باشد. این شامل منطق تلاش مجدد با تأخیر نمایی، جایگزینی با مدلهای سادهتر یا سیستمهای مبتنی بر قانون، و ارتقا با دخالت انسان است.
وقتی یک عامل با خطای مداوم مواجه میشود، باید شکست را در کلید وضعیت error_history ثبت کند. هماهنگساز میتواند سپس این تاریخچه را تحلیل کند تا تصمیم بگیرد که آیا تلاش مجدد انجام شود، استراتژی تغییر کند یا یک اپراتور انسانی مطلع شود. برای مثال، اگر «عامل حل مسئله» دو بار برای یافتن راهحل شکست بخورد، گردشکار میتواند بهطور خودکار تیکت را به یک عامل پشتیبانی انسانی ارجاع دهد.
نتیجهگیری
معماری عاملهای هوش مصنوعی آماده برای تولید، بیشتر به مقاومت سیستم اطراف مربوط است تا هوش مدل. با پیادهسازی مدیریت وضعیت سختگیرانه، اعتبارسنجی دقیق ورودیهای ابزار و طراحی مسیرهای جامع بازیابی خطا، میتوانید گردشکارهای چندعاملی بسازید که نه تنها باهوش، بلکه قابلاعتماد و مقیاسپذیر باشند. با بلوغ صنعت، این شیوههای مهندسی به استاندارد هر برنامه هوش مصنوعی جدی تبدیل خواهند شد.