اگر امروز یک عامل هوش مصنوعی را برای استخراج داده از مستندات شرکتتان به کار میگیرید، احتمالاً با مشکل ارجاعات ساختگی یا همان توهمات مواجه شدهاید. تصور کنید سیستمی داشته باشید که فراخوانی ابزارها را بهجای متن خام، بهعنوان طرحوارههای تایپشده (Typed Schemas) پردازش کند. با بهکارگیری این رویکرد در یک معماری عاملمحور (Agentic) آماده برای محیط تولید با استفاده از OpenAI و Pydantic، توسعهدهندگان میتوانند قراردادهای مرزی سختگیرانهای را اعمال کنند تا ارجاعات توهمی حذف شوند. این سیستم اجازه میدهد هر شناسهی منبعی (Source ID) که در مرحله جستوجو واقعاً بازیابی نشده است، بهصورت برنامهریزیشده پاکسازی شود.
بر اساس مستندات منتشرشده در ۲۱ سپتامبر ۲۰۲۶، استفاده از این معماری اجازه میدهد تا یک لایه دفاعی معرفی شود که هر آرگومان ابزار و هر پاسخ نهایی را در برابر یک کلاس پایتون پیشتعریفشده اعتبارسنجی میکند. اکثر عاملهای هوش مصنوعی با مشکل «مبنیسازی» (Grounding) دستوپنجه نرم میکنند؛ وضعیتی که در آن مدل ادعا میکند یک حقیقت از سندی خاص استخراج شده، اما در واقع آن ارجاع را اختراع کرده است. این مشکل به این دلیل تداوم مییابد که خروجیهای استاندارد مدلهای زبانی بزرگ (LLM) ساختاریافته نیستند.
همانطور که در تحلیل قبلی ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، تکیه بر «درخواست از مدل برای صادق بودن» هرگز نتیجهبخش نیست. مدلهای زبانی — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن جواب میدهد — بهطور پیشفرض خروجیهای غیرساختاریافته تولید میکنند که کنترل آنها دشوار است.
حفاظهای فنی سیستم
این سامانه برای تضمین قابلیت اطمینان بر سه رکن اصلی استوار است:
- طرحوارههای تایپشده: با استفاده از Pydantic، عامل برای ورودیها
SearchParamsو برای خروجیهاGroundedAgentResponseرا تعریف میکند. درSearchParamsتعداد نتایج (top_k) بین ۱ تا ۵ محدود شده و یک فیلتر دستهبندی اختیاری گنجانده شده است. در مقابل،GroundedAgentResponseمدل را مجبور میکند بهجای نوشتن پاراگرافهای محاورهای، یک پاسخ مستقیم که از متن استخراج شده و لیستی دقیق از شناسههای تکههای متن (cited_chunk_ids) را برگرداند. - شبکهسازی دفاعی: ابزار
fetch_live_contentاز کتابخانه httpx با مهلت زمانی (Timeout) سختگیرانه ۴ ثانیهای (شامل ۲ ثانیه برای اتصال) استفاده میکند. این ابزار دارای مدیریت استثنا (Exception Handling) برای خطاهایHTTPStatusErrorوRequestErrorاست تا از کرش کردن عامل در زمان شکست APIهای خارجی جلوگیری کند. این ابزار دادههای خام JSON را از نقاط انتهایی مانندjsonplaceholder.typicode.comدریافت کرده و آنها را به اشیاء استانداردContentChunkتبدیل میکند که شامل URL منبع، متن و یک امتیاز (Score) است. - تأیید قطعی (Deterministic): در گام نهایی، یک مرحله سختگیرانه برای مقایسه شناسههای ارجاع داده شده توسط مدل با مجموعهی شناسههایی که واقعاً توسط ابزار جستوجو بازگردانده شدهاند، اجرا میشود. اگر مدل شناسهای را اختراع کند، سیستم هشدار
[Verification Alert]صادر کرده و آن را پیش از نمایش به کاربر بهطور خودکار حذف میکند.
گردشکار پیادهسازی
به نقل از گزارش فنی این پروژه، عامل یک حلقه چهارمرحلهای را اجرا میکند. ابتدا مدلی مانند gpt-4o-mini با یک پرامپت سیستمی (System Prompt) فراخوانی میشود که به آن دستور میدهد پاسخها را صرفاً و بهطور سختگیرانه بر اساس تکههای بازیابی شده بنا کند. مدل با استفاده از یک طرحواره tool_definitions که مستقیماً از Pydantic مشتق شده است، تصمیم میگیرد که آیا به ابزار نیاز دارد یا خیر.
در مرحله دوم، فراخوانی ابزار اجرا میشود. سیستم رشتهی func_args_str را از طریق Pydantic تجزیه میکند تا از خطاهای فرمت یا تزریق پرامپت (Injection) جلوگیری شود. اگر خطای ValidationError یا JSONDecodeError رخ دهد، بهجای توقف برنامه، یک پیام خطای ساختاریافته به مدل بازگردانده میشود تا مدل بتواند خطای خود را اصلاح کند.
سپس با استفاده از متد beta.chat.completions.parse تضمین میشود که پاسخ نهایی دقیقاً با طرحواره JSON مورد نیاز مطابقت دارد. این کار تضمین میکند که خروجی حتماً یک شیء معتبر از نوع GroundedAgentResponse باشد.
در نهایت، متد استاتیک _verify_citations اجرا میشود. این بررسی قطعی تضمین میکند که عامل هیچ شناسهی ارجاعی غیرموجود را اختراع نکرده باشد و بدین ترتیب اعتماد کاربر در سمت کلاینت حفظ شود.
این تغییر رویکرد، توسعه هوش مصنوعی را از «مهندسی پرامپت» (Prompt Engineering) — هنر سؤال درست پرسیدن برای گرفتن بهترین جواب — به سمت «مهندسی نرمافزار» میبرد. بهجای التماس به مدل برای اینکه در پرامپت سیستمی «صادق باشد»، توسعهدهندگان اکنون محدودیتهای سختافزاری را در زمان اجرا (Runtime) میسازند. این بدان معناست که قابلیت اطمینان عامل توسط کد تضمین میشود، نه توسط «خلقوخوی» مدل.
برای توسعهدهندگان، این یعنی کاهش شدید نیاز به بازبینی دستی پاسخها. با انتقال اعتماد از مدل به اعتبارسنج Pydantic، تیمها میتوانند عاملها را در محیطهای تولیدی که در آنها شواهد قابل تأیید یک الزام قانونی یا عملیاتی است، مستقر کنند.
گام بعدی شما
برای پیادهسازی این سیستم، شما باید کتابخانههای httpx و pydantic و openai را از طریق pip نصب کنید. سپس پیش از مقداردهی اولیه کلاینت OpenAI، مرزهای خروجی خود را بهصورت مدلهای Pydantic تعریف نمایید.
- نصب کتابخانههای مورد نیاز.
- تعریف مدلهای Pydantic برای ورودی و خروجی.
- جایگزینی متدهای Parse قدیمی با
beta.chat.completions.parseبرای اجبار مدل به خروجی JSON.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو