حافظه مشترک و الگوهای تخته سیاه
Type: Learn + Build
Languages: Python (stdlib, threading)
Prerequisites: Phase 16 · 04 (Primitive Model), Phase 16 · 09 (Parallel Swarm Networks)
Time: ~75 minutes
مشکل
سیستم های چند عامل نیاز به مکانی برای اشتراک گذاری حقایق دارند. یک گزینه واقعی "همه چیز را در پیام ها منتقل کنید" است. اما این حالت به اشتراک گذاشته شده را با کپی اضافی دوباره اختراع می کند. دیگری "به همه یک دفترچه جهانی بدهید" است. اما دفترچه های جهانی بدون محدودیت رشد می کنند و به راحتی مسموم می شوند. سوم این است که "یک نمایش را به هر عامل" است. مقیاس پذیر اما طرح سنگین.
وقتی یکی از عوامل توهم می زند و توهم را به حالت مشترک می نویسد، هر عامل پایین تر که این حالت را می خواند توهم را به عنوان واقعیت پذیرفته است. تا زمانی که انسان متوجه می شود، زنجیره استدلال پنج قدم عمیق است و علت اصلی سومین پیام نوشته شده است. خراب کردن دقت چند عامل سخت تر از خراب کردن یک تصادف است.
این مسمومیت حافظه است. این دومین خانواده شکست در طبقه بندی MAST است (Cemri et al., arXiv:2503.13657) و ساختار است: هر طرح حافظه مشترک بدون اصل و یک تأیید کننده غیر قابل نوشتن در نهایت آن را نشان می دهد.
مفهوم
دو توپولوژی اصلی
Full message pool.هر عامل هر پیام را می خواند. AutoGen GroupChat و MetaGPT از این استفاده می کنند. ساده، شفاف، قابل بازرسی، اما فراتر از ~ 10 عامل نمی شود زیرا زمینه هر عامل با کار سایر عوامل پر می شود.
agent-A ──write──▶ ┌────────────────┐ ◀──read── agent-D
│ message pool │
agent-B ──write──▶ │ │ ◀──read── agent-E
│ (global log) │
agent-C ──write──▶ └────────────────┘ ◀──read── agent-FBlackboard with subscription.عوامل علاقه مند به موضوعات را اعلام می کنند؛ مسیرهای زیربنایی فقط پیام های مرتبط را نشان می دهند. CA-MCP (arXiv:2601.11595) و چارچوب غیرمتمرکز ماتریکس (arXiv:2511.21686) از این استفاده می کنند. مقیاس بیشتر، اما نیاز به طراحی طرح پیش از پیش برای ایجاد معنی اشتراک گذاری دارد.
┌─ topic: prices ──┐
agent-A ──pub────▶ │ │ ──▶ agent-D (subscribed)
├─ topic: orders ──┤
agent-B ──pub────▶ │ │ ──▶ agent-E (subscribed)
├─ topic: alerts ──┤
agent-C ──pub────▶ │ │ ──▶ agent-F (subscribed)
└──────────────────┘وقتی هرکدوم برنده میشوند
- Full poolدر این مورد، اگر عوامل کمی (< 10) ، متغیر و مکالمه کوتاه مدت باشد، برنده می شود. استدلال در مورد اینکه چه کسی گفت و چه چیزی معمولی است، وقتی همه همه همه چیز را می بینند.
- Blackboardدر این حالت، بازیگرها در زمان بسیاری از عوامل، یکسانی در نقش اما تعداد زیادی در مثال (سوارز) برنده می شوند و مکالمه طولانی مدت است. روتینگ هزینه های رمزنگاری و آلودگی زمینه را صرفه جویی می کند.
سیستم های تولید اغلب مخلوط می شوند: یک استخر کوچک کامل در بالا (طبق برنامه ریزی) ، صفحه سیاه در پایین (طبق کارگر).
مسمومیت حافظه، در یک سناریو
سه مامور در يک کار تحقيقي کار ميکنن مامور "ا" مامور بازيافتي است مامور "ب" خلاصه کننده است مامور "سي" تحلیلگر
- یک صفحه را می آورد و یک پیام را به حالت مشترک می نویسد: "دراست گزارش می دهد که 42 درصد دقت بهبود یافته است".
- صفحه که به دست آوردم نوشته بود "4.2 درصد بهبود"
- B، مطالعه وضعیت مشترک، می نویسد: "بزرگ 42٪ افزایش دقت گزارش شده (مصدر: A) ".
- C، خواندن دولت مشترک، می نویسد: "تبدیل توصیه می شود 42٪ افزایش تبدیل کننده است".
- گزارش نهایی، ۴۲ درصد را که هرگز وجود نداشت، ذکر می کند.
هيچ مامور سقوط نکرد هيچ تستي شکست نخورد سیستم "کار کرد" توطئه از سياق يک مامور به استدلال هر مامور پايين سير از طريق حالت مشترک عبور کرد
چرا این ساختار
بدون حالت مشترک، توهم عامل A در زمینه A باقی می ماند. عوامل پایین جریان دوباره می آیند یا دوباره مشتق می شوند و ممکن است خطای را بگیرند. با حالت مشترک ساده، زمینه A به زمینه همه تبدیل می شود و توهم به واقعیت تبدیل می شود.
مشکل در خود دولت مشترک نیست این دولت مشترک است without provenance and without an independent verifierسه روش کاهش این مشکل رو حل می کنه:
- Attribute provenance on every write.هر ورودی در سوابق دولتی مشترک که آن را نوشته است، چه زمانی، تحت چه پیامک، و (اگر قابل اطلاق) چه منبع عامل اشاره کرد.
- Version writes; treat them as append-only.اصلاح یک ورودی جدید است که جایگزین ورودی قدیمی می شود نه یک بروزرسانی در محل.
- Keep at least one agent that cannot write to shared state.یک عامل تایید کننده فقط برای خواندن نمونه های ورودی را می گیرد، منابع را دوباره پیدا می کند و عدم مطابقت را نشان می دهد.
پیشینه ی تخته سیاه (Hayes-Roth، 1985)
الگوی تخته سیاه چهار دهه پیش از عوامل LLM است. هیز-روث (1985, "ارشیکتوری صفحه سیاه برای کنترل") منابع دانش متخصص را توصیف کرد که یک صفحه سیاه جهانی را مشاهده می کنند، راه حل های جزئی را ارائه می دهند و منابع دیگر را تحریک می کنند. صفحه سیاه 2026 (CA-MCP، ماتریکس) با عوامل LLM مانند منابع دانش و بلوک های JSON به عنوان راه حل های جزئی یکسان است. ادبیات قدیمی راه حل هایی برای نوشتن اختلافات، کنترل فرصت طلب و ثبات را مستند کرده است که سیستم های مدرن دوباره کشف می کنند.
پروژکتور در مقابل نمایش کامل
یک صفحه سیاه خالص به هر مشترک یک طرح مشابه (بر اساس موضوع) می دهد. طراحی پرجوش تر است.per-agent projection: هر عامل یک دیدگاه سفارشی برای نقش خود را دریافت می کند. کاهش دهنده های حالت LangGraph اجرای 2026 کانونیک است عملکرد کاهش دهنده حالت جهانی را به یک قطعه خاص نقش می کند.
پروژکتور هر عامل به اندازه ی بیشتر می رسد اما به یک طرح نیاز دارد بدون یک طرح، شما در هر پروژکتور به طور موقت پروژکتور را بازسازی می کنید.
الگوهای محتوای نوشتن
چندین عامل در یک زمان می نویسند یک مشکل همزمان است، نه فقط یک مشکل LLM. سه الگوی کار می کنند:
- Sequential writer (single producer).همه ی نوشته ها از طریق یک عامل هماهنگ کننده که سریالیز می کند می روند.
- Optimistic concurrency with versioning.هر ورژن یک نسخه دارد، نویسندگان در عدم مطابقت نسخه و دوباره تلاش می کنند. تکنیک پایگاه داده کلاسیک.
- Topic partitioning.ماموران مختلف موضوعات متفاوتی دارند، هیچ بحثی در میان موضوعاتی وجود ندارد، نیاز به مرزهای طراحی شده تقسیم بندی دارد.
بیشتر چارچوب های 2026 به عنوان پیش فرض به نویسنده دنباله دار به دلیل تماس های LLM به اندازه کافی کند است که دعوا نادر است و گلو بطری آسیب نمی رساند.
تایید کننده غیر قابل نوشتن
بیشترین کاهش بار، تایید کننده تنها برای خواندن است. قوانین پیاده سازی:
- تایید کننده با تیم وضعیت را به اشتراک می گذارد (تابلوی سیاه یا پول را می خواند).
- تایید کننده هیچ دستی برای نوشتن به اشتراک گذاری حالت فقط به یک کانال تأیید جداگانه ندارد.
- .محقق به طور مستقل منابع مورد اشاره در نوشته ها رو ميگيره
- خروجی های خود تایید کننده به یک انسان یا یک عامل تصمیم گیری جداگانه هدایت می شوند، هرگز به حوضچه باز نمی گردند.
بدون این جدایی، تولیدات تأیید کننده به ورودی های جدید در حاشیه تبدیل می شوند، به این معنی که حاشیه مسموم، تأیید کننده را مسموم می کند که به بررسی های آن مسموم می شود.
آن را بسازید
code/main.pyهر دو توپولوژی رو در Stdlib Python اجرا ميکنه و علاوه بر حمله مسموميت بازي و سه تخفيف
MessagePoolثبت فقط به عنوان یک ضمیمه با خواندن کاملBlackboardپاب/سوب با کلید موضوعی با اشتراک هر نماینده.ProvenanceEntryهر رکوردی را بنویسید (نویسنده، زمان، prompt_hash، source_uri).PoisoningScenarioیک کار تحقیقاتی سه عامل را اجرا می کند که در آن عامل A یک دهات را هالوسین می کند. گزارش نهایی را چاپ می کند.Verifierیک عامل فقط برای خواندن است که منابع را دوباره پیدا می کند و عدم مطابقت را نشان می دهد.
راه رفتن:
python3 code/main.pyتولید انتظار می رود:
- مرحله 1 (بدون تأیید کننده): 42% هالوسین شده به گزارش نهایی منتقل می شود.
- اجرا 2 (با تایید کننده): تایید کننده عدم سازگاری را نشان می دهد، مجموعه "برنامه شده" را برچسب می گیرد، گزارش نهایی شامل بازخورد است.
ازش استفاده کن
outputs/skill-memory-auditor.mdاین مهارت است که طراحی حافظه مشترک هر سیستم چند عامل را برای سرچشمه، ورژن سازی و جداسازی تأیید کننده بررسی می کند. آن را قبل از تولید در معماری های جدید چند عامل اجرا کنید.
-باده
برای هر طرح حافظه مشترک:
- ثبت اصل هر نوشته:
(writer, timestamp, prompt_hash, tool_calls_cited, source_uri). . - فقط به دفترچه اضافه کنید. اصلاحات ورودی جدید است که به ورودی جایگزین اشاره دارد.
- حداقل یک عامل تأیید کننده تنها برای خواندن با دسترسی مستقل به منبع را پیاده سازی کنید.
- راه راست تایید کننده به یک کانال جداگانه، نه به سمت جمع مشترک.
- ثبت نسبت نوشته هایی که جایگزین هستند نسبت افزایش یافته شواهد اولیه ی الگوهای توهم است.
تمرینات
- فرار کن
code/main.py. تایید کن که مرحله اول توحال رو گسترش میده و مرحله دوم توحال رو میگیر - یک توهم دوم اضافه کنید: عامل B اندازه مجموعه داده ای را اختراع می کند. تایید کننده باید هر دو را بدون تنظیم دستی برای هر دو بگیرد.
- تمام استخر را به یک صفحه سیاه با پارتیشن های موضوع تبدیل کنید (
prices،summaries،analyses) چه شرایط مسمومیت را تقسیم بندی موضوعی سخت تر می کند و در کدام شرایط کمک نمی کند؟ - هایز-روث (1985) را بخوانید. دو الگوی کنترل را از مقاله ای که در این درس مورد بحث قرار نگرفته است که سیستم های 2026 از آن بهره مند خواهند شد، شناسایی کنید.
- CA-MCP را بخوانید (arXiv:2601.11595). ذخیره کنست مشترک آن را به کلاس MessagePool یا Blackboard در
code/main.py. کدوم از ابتدایی ها را CA-MCP اضافه می کند؟
اصطلاحات کلیدی
| Term | What people say | What it actually means |
|---|---|---|
| Message pool | "Shared chat history" | Append-only log that every agent reads. Full transparency, poor scaling. |
| Blackboard | "Shared workspace" | Topic-keyed pub/sub. Agents subscribe to relevant topics. Scales farther. |
| Provenance | "Who wrote what" | Metadata on each write: writer, timestamp, prompt, sources. |
| Memory poisoning | "Hallucinations spreading" | One agent's error enters shared state, downstream agents adopt it as fact. |
| Append-only | "No in-place updates" | Corrections are new entries that supersede. Preserves audit trail. |
| Unwritable verifier | "Independent auditor" | Read-only agent that re-fetches sources and flags inconsistencies. |
| Projection | "Scoped view" | Per-agent view computed from global state. LangGraph reducers are the canonical case. |
| Knowledge Source | "Specialist agent" | Hayes-Roth's 1985 term for a blackboard participant. |
خواندن بیشتر
- Cemri et al. — Why Do Multi-Agent LLM Systems Fail? تاکسونومی MAST؛ مسمومیت حافظه یک فرعی از شکست های هماهنگی است
- CA-MCP — Context-Aware Multi-Server MCP ذخیره کنست مشترک برای سرورهای هماهنگ MCP
- Matrix — decentralized multi-agent framework صفحه سیاه مبتنی بر خط خط پیام بدون یک آرکستر مرکزی
- LangGraph state and reducers الگوی پروژکتور در تولید
- Anthropic — How we built our multi-agent research system یادداشت های اصلی و تأیید از یک انتشار تولید
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.