تصور کنید تیمی از مهندسان تمام دادههای لازم برای درک یک پروژه را در اختیار دارند، اما هنوز نمیدانند چرا یک قابلیت خاص به شکل فعلی طراحی شده است. این «مسئلهی تبار» (Lineage Problem) هستهی مرکزی ThreadWeaver است که توسط سید علیرضا الحسینی المدرسیه توسعه یافته و در ۴ اوت ۲۰۲۶ عرضه میشود. با تبدیل روابط بین رویدادهای سازمانی به اشیاء دادهای درجه اول، این سیستم از بازیابی ساده فراتر رفته تا تاریخچه علّی کار را بازسازی کند.
بیشتر سامانههای هوش مصنوعی سازمانی، دانش را به صورت یک «وضعیت» میبینند؛ یعنی مجموعهای از اسناد که باید جستوجو شوند. طبق گزارشهای فنی، این رویکرد زمانی شکست میخورد که یک برنامهنویس بپرسد چرا سه ماه پیش یک تغییر (Commit) خاص در کد ایجاد شد. پاسخ این پرسش در یک سند واحد نیست، بلکه در زنجیرهای از شکایت مشتری، بحثهای Slack، تصمیم مدیر محصول و یک تیکت Jira پخش شده است. سامانههای تولید بازیابیافزا (RAG) — مثل دانشآموزی که قبل از جواب دادن، اول کتاب درسی را باز میکند و از آن نقل میآورد — ممکن است این اسناد را به دلیل شباهت معنایی پیدا کنند، اما نمیتوانند ثابت کنند که کدام اتفاق باعث وقوع اتفاق دیگر شده است.
بحران گسست زمینه
سازمانهای مهندسی مدرن با مشکلی عجیب روبهرو هستند: زمینهی بیش از حد. اطلاعات در سیلوهای جداگانهای پخش شدهاند. Slack محل بحث است، Jira محل ثبت خطا، GitHub محل اجرا، Notion محل مشخصات و سامانههای پشتیبانی، محل شکایتهای اولیه هستند.
وقتی کسی میپرسد «این قابلیت چرا ساخته شد؟»، فرآیند داخلی خستهکنندهای آغاز میشود. این فرآیند مستلزم باز کردن شش سیستم مختلف، جستوجو در دهها پیام، خواندن تیکتهای قدیمی Jira، بررسی کامیتها و ردیابی تنها شخصی است که تصمیم اصلی را به یاد دارد. این یک مشکل جستوجوی ساده نیست، بلکه یک مشکل تبار است. معنای سازمانی نه در خودِ اسناد، بلکه در روابط بین آنهاست.
زنجیره تصمیمات محصول را به این شکل ببینید:
- شکایت مشتری $\downarrow$
- بحث در Slack $\downarrow$
- تصمیم مدیر محصول $\downarrow$
- تیکت Jira $\downarrow$
- اجرای کد در GitHub $\downarrow$
- انتشار محصول
همانطور که در تحلیلهای قبلی ما دربارهی مدیریت دانش در سازمانهای توزیعشده اشاره کردیم، داده بدون تاریخچه، حافظهی سازمانی را میکشد. اگر این پیوندها حذف شوند، سازمان دادهها را دارد اما تاریخچه را گم میکند و این امر منجر به ایجاد یک شکاف هزینهبر در حافظه نهادی سازمان میشود. این چالش در مدیریت رویدادها مشابه رویکردهایی است که در پلتفرم Hermes برای مقابله با مدیریت پراکنده اطلاعات بررسی شده بود.
معماری گراف کار علّی
ThreadWeaver v3 گرافهای دانش سنتی را با «گراف کار علّی» جایگزین کرده است. در حالی که یک گراف معمولی نشان میدهد یک مشتری «مالک» یک حساب است یا تیکتی «باز کرده است»، گراف علّی گذار در جریان کار را نشان میدهد. برای مثال: شکایت مشتری $\rightarrow$ اثر گذاشت بر $\rightarrow$ بحث Slack $\rightarrow$ آگاه کرد $\rightarrow$ تصمیم مدیر محصول $\rightarrow$ ایجاد کرد $\rightarrow$ تیکت Jira $\rightarrow$ اجرا شد توسط $\rightarrow$ کامیت گیت $\rightarrow$ منتشر شد در $\rightarrow$ نسخه محصول.
این گراف شامل دو نوع اطلاعات اصلی است:
- گرهها (Nodes): چیزهایی که اتفاق افتادهاند یا وجود دارند، مانند پیامها، تصمیمات، تیکتها، کامیتها، نسخههای انتشار یافته، مشتریان یا قابلیتها.
- یالها (Edges): روابط بین این موارد، مانند
اشاره میکند به(mentions)،دنبال میکند(follows)،ارجاع میدهد(references)،اثر گذاشته است(influenced)،منجر شد به(resulted_in)،اجرا شده توسط(implemented_by)،تأیید شده توسط(validated_by) یاجایگزین شده توسط(superseded_by).
به نقل از مستندات سیستم، برای تضمین اعتماد، «یال» (اتصال بین دو اتفاق) به عنوان شیء اصلی داده در نظر گرفته شده است. هر یال شامل اطلاعات زیر است:
- مبدأ و مقصد: دو موجودیتی که متصل شدهاند (مثلاً
slack:msg_1842بهjira:issue_392). - رابطه: ماهیت لینک (مثلاً
resulted_in). - برچسب زمانی: زمان دقیق ایجاد رابطه (مثلاً
2026-07-21T14:32:00Z). - بازیگر (Actor): شخصی که باعث این انتقال شده است (مثلاً
user:pm_17). - میزان اطمینان (Confidence): یک مقدار عددی (مثلاً
0.91). - وضعیت علّی: مشخص میکند لینک
استنباطشده(inferred) است یاصریح(explicit). - شواهد (Evidence): اشارهگرهایی به دادههای خام (مثلاً
slack:msg_1842وjira:comment_992). - منبع اثر (Provenance): منشأ ادعای مربوط به رابطه.
قانون اصلی سختگیرانه است: هیچ یال علّی بدون «منبع اثر» پذیرفته نمیشود. اگر هوش مصنوعی ادعا کند یک پیام Slack منجر به یک تیکت Jira شده، باید بتواند پاسخ دهد: «چرا باور میکنی این دو اتفاق به هم مرتبطاند؟»
تفکیک شباهت از علیت
یکی از خطرناکترین نقاط شکست در گرافهای هوش مصنوعی، اشتباه گرفتن «شباهت معنایی» با «علیت» است. برای مثال، یک پیام در Slack درباره «خطای واردات CSV» و یک تیکت Jira برای «بهبود قابلیت اطمینان واردات CSV» شباهت معنایی بالایی دارند. یک مدل بردار معنایی (Embedding) — مثل کارت معرفی عددی برای هر واژه که میگوید این کلمه «همسایهی» چه کلمات دیگری است — امتیاز شباهت بالایی میدهد، اما این ثابت نمیکند که اولی باعث دومی شده است.
ممکن است تیکت Jira ماهها قبل از آن پیام Slack وجود داشته باشد. ThreadWeaver برای مدیریت این موضوع، روابط را به چهار دسته مجزا تقسیم میکند:
- معنایی (Semantic): ارتباط کلی و همحوزهای (مثلاً
related_to). - زمانی (Temporal): وقتی یک اتفاق صرفاً بعد از دیگری رخ میدهد (مثلاً
follows). - ارجاعی (Reference): وقتی یک سند صراحتاً به سند دیگر اشاره میکند (مثلاً
mentionsیاreferences). - علّی (Causal): وقتی یک اتفاق مستقیماً بر دیگری اثر گذاشته یا منجر به آن شده است (مثلاً
influenced,resulted_in,implemented_by,validated_by,superseded_by).
سیستم هرگز نباید به طور بیصدا یک رابطه «مشابه» را به رابطه «علّی» تبدیل کند. این تمرکز بر ثبت زنجیره علیت، یادآور راهکاری است که Causari برای پر کردن شکاف عیبیابی در کدنویسی عاملمحور به کار گرفت.
مدیریت عدم قطعیت و شواهد
به دلیل آشفتگی دادههای سازمانی در دنیای واقعی، سیستم برای هر رابطه یک «وضعیت علّی» تعیین میکند تا مدل اعتماد شفافی داشته باشد:
- صریح (EXPLICIT): شواهد مستقیم وجود دارد (مثلاً تصمیم مدیر محصول که مستقیماً به تیکت Jira لینک شده است).
- استنباطشده (INFERRED): بر اساس منطق یا زمانبندی استخراج شده است.
- محتمل (PROBABLE): احتمال بالاست اما لینک مستقیم ندارد (مثلاً بحثی در Slack که احتمالاً منجر به تیکت شده است).
- نامعلوم (UNKNOWN): شواهد کافی برای تعیین لینک وجود ندارد.
- ردشده (REJECTED): شواهد نشان میدهد رابطهای وجود ندارد.
برای محاسبه قدرت این اتصالات، پلتفرم از یک سیستم امتیازدهی وزنی استفاده میکند که در آن:CausalScore = w1 * explicit_reference + w2 * direct_link + w3 * temporal_proximity + w4 * semantic_similarity + w5 * actor_continuity + w6 * artifact_dependency.
محدودیتهای این امتیاز عبارتند از:
- امتیازی $\ge$ آستانهی A، یک «یال علّی کاندید» ایجاد میکند.
- امتیازی $\ge$ آستانهی B در ترکیب با شواهد صریح، یک «طبقهبندی علّی قوی» ایجاد میکند.
یک امتیاز بالا به تنهایی نمیتواند به طور خودکار یالی را «علّی» علامت بزند. وضعیت نهایی باید هم امتیاز عددی و هم وضعیت کیفی علّی را حفظ کند.
پیادهسازی فنی و حاکمیت دادهها
ThreadWeaver قصد ندارد یک انبار دادهی دوم باشد. معماری آن لایت است و محتوای خام در سیستمهای منبع میماند. گراف فقط شناسهها، اشارهگرها، متادیتا، بردارها و متادیتای مجوزها را ذخیره میکند.
طرح گراف شامل پنج شیء اصلی است:
- موجودیت (Entity): (id, type, source, source_id, canonical_id, metadata). مثال: مشتری، شخص، پروژه، قابلیت، مخزن کد.
- اتفاق (Event): (id, type, timestamp, actor, source, source_id). مثال: پیام Slack، تصمیم، ایجاد تیکت، کامیت، انتشار.
- یال (Edge): (id, source, target, relation, timestamp, confidence, causal_status).
- شواهد (Evidence): (id, edge_id, source, pointer, excerpt_hash, permission_context).
- مجوز (Permission): (principal, resource, action, source).
برای یکسانسازی هویتها (Identity Resolution)، استراتژی سه مرحلهای به کار میرود:
۱. قطعی (Deterministic): تطبیق شناسههای منحصربهفرد مثل ایمیل، حساب، تیکت، مخزن یا IDهای کاربر در Slack و GitHub.
۲. احتمالی (Probabilistic): استفاده از بردارها یا تطبیق بر اساس شباهت برای موارد مبهم.
۳. تأیید انسانی (Human Confirmation): تأیید دستی برای تطبیقهای حساس و نامطمئن. مثلاً اگر اطمینان سیستم ۰.۸۴ باشد، از کاربر پرسیده میشود: «آیا کاربر Alice در Slack همان alice-dev در GitHub است؟».
نسخه اولیه (MVP) بر روی یکپارچگی تنگاتنگ Slack، Jira و GitHub از طریق پروتکل زمینهٔ مدل (MCP) متمرکز است. در حالی که MCP به عنوان رابط یکپارچهساز عمل میکند، «قلعهی رقابتی» واقعی در ترکیب تفکیک موجودیتها، مدلسازی زمانی و مدلسازی روابط علّی متکی بر شواهد نهفته است. این رویکرد به تبدیل ایشیوه های مبهم گیتهاب به دادههای ماشینخوان نزدیک است، مشابه آنچه MonkeyCode در روش بازتولید دقیق خطاها پیاده کرده است.
ذخیرهسازی و پیمایش گراف
در نسخه MVP، برای سادگی عملیاتی از PostgreSQL به همراه pgvector برای پرسوجوهای رابطهای، پایداری تراکنشی و جستوجوی برداری استفاده شده است. با پیچیدهتر شدن پیمایشها (مثلاً حرکت از مشتری $\rightarrow$ بحث $\rightarrow$ تصمیم $\rightarrow$ تیکت $\rightarrow$ کامیت $\rightarrow$ انتشار)، احتمالاً یک پایگاهداده گراف اختصاصی پیادهسازی خواهد شد.
سیستم دو حالت پیمایش حیاتی را پشتیبانی میکند:
- پیمایش معکوس (Reverse Traversal): شروع از یک نسخه انتشار یافته برای تعیین علت یک تغییر خاص (Release 4.2 $\rightarrow$ Commit $\rightarrow$ Ticket $\rightarrow$ Decision $\rightarrow$ Discussion $\rightarrow$ Request). این عمل به عنوان تاریخچه نسخهی سازمانی عمل میکند.
- پیمایش مستقیم (Forward Traversal): شروع از شکایت مشتری برای دیدن اثرات پاییندستی آن (Complaint #771 $\rightarrow$ ارتقای پشتیبانی $\rightarrow$ تصمیم $\rightarrow$ Jira #392 $\rightarrow$ ۱۲ کامیت $\rightarrow$ Release 4.2 $\rightarrow$ ۳ حساب متأثر).
بازیابی محدود به گراف
برخلاف RAGهای سنتی که تکههایی از اسناد را بازیابی میکنند، ThreadWeaver از «بازیابی محدود به گراف» (Graph-Bounded Retrieval) استفاده میکند. این روش از بازیابی کل زمینه سازمان جلوگیری میکند. وقتی کاربر میپرسد «چرا نسخه ۲ واردات CSV منتشر شد؟»، سیستم مسیر دقیقی را طی میکند:
۱. شناسایی موجودیت: یافتن قابلیت (CSV Import v2).
۲. پیمایش زیرگراف: استخراج زیرگراف محدود مرتبط (درخواستهای مشتری $\rightarrow$ بحثهای Slack $\rightarrow$ تصمیمات $\rightarrow$ تیکتهای Jira $\rightarrow$ کامیتها $\rightarrow$ انتشار).
۳. بازیابی شواهد: جمعآوری شواهد خاص برای آن یالها.
۴. استدلال LLM: ارسال تنها این زمینه متمرکز به مدل زبانی بزرگ برای تولید پاسخ به زبان طبیعی.
این متد سطح توهم (Hallucination)، تأخیر و هزینه استنتاج (Inference) را به شدت کاهش میدهد. نکته حیاتی این است که مدل زبانی مالک گراف نیست؛ گراف یک زیرساخت دترمینیستیک است و LLM تنها روی آن برای خلاصهسازی و توضیح عمل میکند.
دسترسیها و امنیت
در سیستمهای زمینه سازمانی، مجوزها نباید به عنوان یک موضوع ثانویه دیده شوند. اگر یک پیام Slack خصوصی است، هر یالی که از آن پیام مشتق شده باید همان محدودیتهای دید را به ارث ببرد. مفهومی این است که دید یک یال به شواهد مرتبط با آن وابسته است. یک اصل ثابت این است که گراف هرگز نباید بیش از آنچه کاربر در سیستمهای منبع مجوز دیدنش را دارد، فاش کند.
مدل امنیتی MVP شامل موارد زیر است:
- OAuth برای هر یکپارچهساز
- مجوزهای محدودشده (Scoped Permissions)
- اعتبارنامههای رمزنگاری شده
- لاگهای حسابرسی (Audit Logs)
- مجوزدهی در سطح منبع
در ابتدا، سیستم فقط در حالت READ-only است تا پیش از هرگونه تلاش برای عملیات نوشتن جهت تغییر در سیستمهای سازمانی، توانایی بازسازی زمینه را اثبات کند.
سنجش «زمان رسیدن به چرا»
موفقیت پلتفرم با KPIهای خاص مبتنی بر گراف سنجیده میشود، نه ادعاهای کلی بهرهوری:
- زمان رسیدن به چرا (Time-to-Why): کاهش زمان بازسازی منشأ یک تصمیم از ۱۸ دقیقه به ۴۲ ثانیه.
- دقت بازسازی تبار: مقایسه زنجیرههای تولید شده توسط سیستم با حقیقت تاریخی (مثلاً حقیقت: A $\rightarrow$ B $\rightarrow$ C $\rightarrow$ D در مقابل خروجی سیستم).
- پوشش شواهد: درصد یالهای علّی که دارای شواهد قابل بازبینی هستند.
- نرخ علیت کاذب: درصد ادعاهای علّی که نادرست تشخیص داده شدهاند. اولویت با کاهش این نرخ است، زیرا یک سیستم قابل اعتماد باید ترجیح دهد بگوید «شواهد ناکافی است» تا یک توضیح تخیلی اما مطمئن ارائه دهد.
تحلیل: تغییر قلعه رقابتی هوش مصنوعی
این رویکرد نشاندهنده یک چرخش در نحوه تفکر ما درباره هوش مصنوعی سازمانی است. مزیت رقابتی (یا همان Moat) دیگر خودِ مدل LLM یا پایگاه داده برداری نیست، بلکه مالکیت تاریخچه ساختاریافته رویدادهای سازمان است: یعنی هستیشناسی روابط (Relationship Ontology)، تاریخچه تصمیمات و تاریخچه نتایج.
با ترسیم نحوه حرکت سازمان از وضعیت A به وضعیت B، ThreadWeaver یک آرشیو آشفته را به یک حافظه عملیاتی تبدیل میکند. این سیستم به جای «وضعیت»، بر «گذار» متمرکز است. فرآیند به این شکل مدل میشود: مسئله $\rightarrow$ بحث $\rightarrow$ تصمیم $\rightarrow$ اقدام $\rightarrow$ نتیجه $\rightarrow$ مسئله جدید.
برای اعتبارسنجی این سیستم، تست اعتبارسنجی ۶۰ ثانیهای بر روی نتیجه متمرکز است: کاربر میپرسد «چرا نسخه ۲ واردات CSV را ساختیم؟» و سیستم زنجیرهای شامل ۳ درخواست مشتری، ۲ بحث Slack، ۱ تصمیم PM، ۱ تیکت Jira، ۷ کامیت و Release 4.2 را ارائه میدهد. هر یال قابل بازرسی است، هر استنباط سطح اطمینان دارد و هر ادعا شواهدی دارد. اگر این تجربه بدون نیاز به توضیحات طولانی متقاعدکننده باشد، یعنی معماری درست کار میکند.
نتیجهگیری: ارزشمندترین زمینه در یک سازمان، رابطه بین رویدادهاست. یک شکایت مشتری به یک گفتگو، سپس به یک تصمیم، سپس به یک تیکت، سپس به کد و در نهایت به یک انتشار تبدیل میشود. ThreadWeaver v3 این زنجیره را به عنوان یک شیء محاسباتی درجه اول میبیند. با اولویت دادن به منبع اثر در برابر شباهت، و عدم قطعیت در برابر جعل، این سیستم نه تنها آنچه سازمان میداند، بلکه نحوه رسیدن به آن دانش را بازسازی میکند.
گام بعدی شما
- اگر مدیر محصول یا لیدر فنی هستید، بررسی کنید که چه مقدار از تصمیمات کلیدی تیم شما در اسنادی غیر از تیکتهای Jira (مثل بحثهای Slack) دفن شده است.
- مدلهای RAG فعلی خود را به چالش بکشید: آیا مدل شما فقط اسناد «مشابه» را مییابد یا میتواند «زنجیره علت و معلول» را ردیابی کند؟
- برای پیادهسازی مشابه، پروتکل MCP را برای اتصال مدلهای زبانی به دادههای ساختاریافته سازمان مطالعه کنید.
اما داستان سختافزاری مدیریت این حجم از گرافهای پیچیده حتی شگفتانگیزتر است — به تحلیل ما دربارهی بهینهسازی حافظه در سرویسهای استنتاج مراجعه کنید.




گفتگو