@dogfood-lab/study-swarm 0.6.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/PROTOCOL.md +30 -2
- package/README.es.md +68 -31
- package/README.fr.md +69 -32
- package/README.hi.md +67 -30
- package/README.it.md +71 -34
- package/README.ja.md +73 -36
- package/README.md +41 -4
- package/README.pt-BR.md +73 -36
- package/README.zh.md +74 -37
- package/SECURITY.md +6 -6
- package/bin/study-swarm.mjs +176 -48
- package/examples/study-swarm-ci.yml +28 -0
- package/examples/study-swarm-self.dispatch.md +46 -0
- package/package.json +2 -1
package/README.hi.md
CHANGED
|
@@ -13,51 +13,53 @@
|
|
|
13
13
|
<img src="https://img.shields.io/badge/cited%20research-verified-1f6feb" alt="Cited research, verified">
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
|
-
**आधारभूत
|
|
16
|
+
**आधारभूत शोध में डिज़ाइन संबंधी निर्णयों को स्थापित करें — फिर किसी भी चीज़ के मानक बनने से पहले एक *अलग* मॉडल परिवार के साथ उद्धरणों की पुष्टि करें।**
|
|
17
17
|
|
|
18
|
-
`study-swarm` एक प्रोटोकॉल है, उपकरण नहीं। जब आप
|
|
18
|
+
`study-swarm` एक प्रोटोकॉल है, उपकरण नहीं। जब आप LLM के साथ कोई महत्वपूर्ण डिज़ाइन निर्णय ले रहे हों—एक नया उत्पाद परत, एक आर्किटेक्चर विकल्प, या "क्या हमें यहां मॉडल पर भरोसा करना चाहिए" —तो बुनियादी सिद्धांतों से तात्कालिक रूप से काम करने से ऐसे डिज़ाइन सामने आते हैं जो पुराने हो चुके हैं, और स्मृति से उद्धरणों का हवाला देने से ऐसे डिज़ाइन सामने आते हैं जो उन स्रोतों पर आधारित होते हैं जो मौजूद नहीं हैं या वे कुछ ऐसा नहीं कहते हैं जैसा आप सोचते हैं। study-swarm दोनों को बदल देता है: समानांतर अनुसंधान एजेंट भेजें, विशिष्ट उद्धृत निष्कर्षों की मांग करें, और किसी भी उद्धरण को डिज़ाइन में शामिल करने से पहले एक **विभिन्न मॉडल परिवार के बाहरी सत्यापनकर्ता** के माध्यम से जांच करें।
|
|
19
19
|
|
|
20
|
-
यह अपनी ही दवा का उपयोग करता है। प्रोटोकॉल उन प्रणालियों के लिए सत्यापनकर्ता-संरक्षित एन्वलप निर्धारित करता है जिन्हें यह डिज़ाइन करने में मदद करता
|
|
20
|
+
यह अपनी ही दवा का उपयोग करता है। प्रोटोकॉल उन प्रणालियों के लिए सत्यापनकर्ता-संरक्षित एन्वलप निर्धारित करता है जिन्हें यह डिज़ाइन करने में मदद करता है—इसलिए यह स्वयं पर भी ऐसा करता है। **कोई भी मॉडल अपने गृहकार्य का मूल्यांकन नहीं करता, जिसमें वह मॉडल भी शामिल है जो प्रोटोकॉल चला रहा है।**
|
|
21
21
|
|
|
22
22
|
## प्रोटोकॉल पाँच चरणों में
|
|
23
23
|
|
|
24
|
-
1. **पहचानें** 3-5 भार-असर वाले डिज़ाइन प्रश्न
|
|
25
|
-
2. **भेजें** प्रत्येक प्रश्न के लिए एक अनुसंधान एजेंट, समानांतर
|
|
26
|
-
3. **संश्लेषित करें** निष्कर्षों को
|
|
27
|
-
4. **बाह्य रूप से सत्यापित
|
|
28
|
-
5. **प्रत्येक वास्तुशिल्प विकल्प को संख्या द्वारा
|
|
24
|
+
1. **पहचानें** 3-5 भार-असर वाले डिज़ाइन प्रश्न जहाँ अनुभवजन्य प्रमाण उत्तर को बदल देंगे।
|
|
25
|
+
2. **भेजें** प्रत्येक प्रश्न के लिए एक अनुसंधान एजेंट, समानांतर रूप से। प्रत्येक को पेपर शीर्षक + लेखक + वर्ष + URL + एक वाक्य निष्कर्ष लौटाना होगा—व्यापकता की तुलना में विशिष्टता ("6-8 अच्छी तरह से संदर्भित निष्कर्ष 20 अस्पष्ट संकेतों से बेहतर हैं")।
|
|
26
|
+
3. **संश्लेषित करें** निष्कर्षों को *अनुसंधान आधार* अनुभाग में: `N. <निष्कर्ष>. <लेखक> <वर्ष> (<arXiv/DOI>). <डिज़ाइन निहितार्थ>।`
|
|
27
|
+
4. **बाह्य रूप से सत्यापित करें**—एक *विभिन्न मॉडल परिवार*, तर्क-मुक्त, दो चरणों में प्रत्येक उद्धरण की जांच करता है: एक **पुनर्प्राप्ति ओरेकल** पुष्टि करता है कि पेपर मौजूद है (कभी भी मॉडल की स्मृति नहीं), फिर एक **आधारितता** लेंस पुष्टि करता है कि निष्कर्ष स्रोत से मेल खाता है। यदि सत्यापनकर्ता या पुनर्प्राप्ति ओरेकल अनुपलब्ध है, तो **बनाए गए/गलत रूप से बताए गए उद्धरणों पर रोक लगाएं; रोकें और आगे बढ़ाएं** (कभी भी अनुपस्थिति को "उद्धरण ठीक हैं" के रूप में न मानें)।
|
|
28
|
+
5. **प्रत्येक वास्तुशिल्प विकल्प को संख्या द्वारा किसी निष्कर्ष से जोड़ें। डिज़ाइन निहितार्थ के बिना उद्धरण शोर हैं।**
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
पूर्ण निष्पादन योग्य विवरण—रोक तालिका, सोर्सिंग मानक, एन्सेम्बल नियम—**[PROTOCOL.md](PROTOCOL.md)** में है।
|
|
31
31
|
|
|
32
32
|
## एक *अलग* परिवार, तर्क-मुक्त क्यों?
|
|
33
33
|
|
|
34
34
|
क्योंकि विफलता के तरीके प्रलेखित हैं, काल्पनिक नहीं:
|
|
35
35
|
|
|
36
|
-
-
|
|
37
|
-
- **समान-परिवार के न्यायाधीश स्वयं को प्राथमिकता देते हैं।** पैनिकसेरी, बोमन और फेंग 2024 ([arXiv:2404.13076](https://arxiv.org/abs/2404.13076))
|
|
38
|
-
- **उद्धरण वे स्थान हैं
|
|
39
|
-
- **जनरेटर के तर्क को छिपाएं।** खलीफा एट अल. 2026 ([arXiv:2601.14691](https://arxiv.org/abs/2601.14691), "जज को धोखा देना")
|
|
40
|
-
- **विविधता
|
|
36
|
+
- **LLM अपने स्वयं के आउटपुट को विश्वसनीय रूप से सत्यापित नहीं कर सकते।** हुआंग एट अल. 2023 ([arXiv:2310.01798](https://arxiv.org/abs/2310.01798)); कंबाम्पाती एट अल. 2024 ([arXiv:2402.01817](https://arxiv.org/abs/2402.01817), LLM-मॉड्यूलो); स्टेचली एट अल. 2024 ([arXiv:2402.08115](https://arxiv.org/abs/2402.08115))—बाहरी सत्यापनकर्ता लाभ प्रदान करता है; आत्म-आलोचना सामग्री निष्क्रिय है।
|
|
37
|
+
- **समान-परिवार के न्यायाधीश स्वयं को प्राथमिकता देते हैं।** पैनिकसेरी, बोमन और फेंग 2024 ([arXiv:2404.13076](https://arxiv.org/abs/2404.13076))—आत्म-पहचान *रैखिक रूप से* आत्म-वरीयता के साथ सहसंबंधित है, इसलिए आंशिक अंधापन मदद नहीं करता है। वर्गा एट अल. 2024 ([arXiv:2404.18796](https://arxiv.org/abs/2404.18796), PoLL)—अलग-अलग परिवारों में एक पैनल लगभग 7 गुना कम लागत पर कम पक्षपाती है।
|
|
38
|
+
- **उद्धरण वे स्थान हैं जहाँ LLM झूठ बोलते हैं।** वाल्टर्स और वाइल्डर 2023 ([doi:10.1038/s41598-023-41032-5](https://doi.org/10.1038/s41598-023-41032-5))—GPT-3.5 के 55% / GPT-4 के 18% उद्धरण बनाए गए हैं। ऑनवेलेर एट अल. 2026 ([arXiv:2605.06635](https://arxiv.org/abs/2605.06635))—लिंक >94% समय तक हल होते हैं, फिर भी केवल 39-77% उद्धृत सामग्री वास्तव में दावे का समर्थन करती है। इसलिए अस्तित्व की जाँच **पुनर्प्राप्ति द्वारा की जानी चाहिए, न कि स्मरण द्वारा।**
|
|
39
|
+
- **जनरेटर के तर्क को छिपाएं।** खलीफा एट अल. 2026 ([arXiv:2601.14691](https://arxiv.org/abs/2601.14691), "द जज को धोखा देना")—केवल हेरफेर किए गए चेन-ऑफ-थॉट से न्यायाधीश के झूठे सकारात्मकों में 90% तक की वृद्धि होती है, जबकि क्रियाएं स्थिर रहती हैं। टर्पिन एट अल. 2023 ([arXiv:2305.04388](https://arxiv.org/abs/2305.04388))—CoT पोस्ट-हॉक तर्कसंगतता है। सत्यापनकर्ता केवल नंगे उद्धरण दावे को देखता है, कभी भी "मैंने इसे क्यों शामिल किया" नहीं।
|
|
40
|
+
- **विविधता संख्या से बेहतर है।** राजन 2025 ([arXiv:2511.16708](https://arxiv.org/abs/2511.16708))—जोड़ीदार सहसंबंध ρ ∈ [0.05, 0.25] पर चार सत्यापनकर्ता उपमॉड्यूलर कवरेज के माध्यम से किसी भी एक स्मार्ट न्यायाधीश को हराते हैं। किम एट अल. 2025 ([arXiv:2506.07962](https://arxiv.org/abs/2506.07962))—LLM त्रुटियां *सहसंबंधित* होती हैं, इसलिए भार-असर चर लेंस विविधता है, न कि कच्ची संख्या।
|
|
41
41
|
|
|
42
42
|
## क्या यह वास्तव में काम करता है? (प्रमाण)
|
|
43
43
|
|
|
44
|
-
एक परीक्षण के रूप में, प्रोटोकॉल को अपने स्वयं के उद्धरणों
|
|
44
|
+
एक परीक्षण के रूप में, प्रोटोकॉल को अपने स्वयं के उद्धरणों पर चलाया गया था। दो असंबंधित गैर-क्लाउड परिवार—**मिस्ट्रल** (`mistral-small:24b`) और **आईबीएम ग्रेनाइट** (`granite4.1:30b`)—ने एक उद्धरण सेट की जांच की, तर्क-मुक्त, जिसमें दो अंधा जाल थे:
|
|
45
45
|
|
|
46
|
-
| रोपा गया जाल | मिस्ट्रल | आईबीएम ग्रेनाइट |
|
|
46
|
+
| रोपा गया जाल | मिस्ट्रल | आईबीएम ग्रेनाइट | सत्य |
|
|
47
47
|
|---|---|---|---|
|
|
48
|
-
| "नकामुरा और ओल्सन" को जिम्मेदार चेन-ऑफ-थॉट प्रॉम्प्टिंग | छोड़ दिया | **पकड़ा गया** (गलत रूप से बताया गया → वास्तव में वेई एट अल. 2022) | गलत रूप से बताया गया |
|
|
49
|
-
| एक
|
|
48
|
+
| "नकामुरा और ओल्सन" को जिम्मेदार चेन-ऑफ-थॉट प्रॉम्प्टिंग | छोड़ दिया गया | **पकड़ा गया** (गलत रूप से बताया गया → वास्तव में वेई एट अल. 2022, arXiv:2201.11903) | गलत रूप से बताया गया |
|
|
49
|
+
| एक निर्मित "98% त्रुटियों को हटा दिया गया, किसी ओरेकल की आवश्यकता नहीं है" पेपर | **caught** (fabricated) | **caught** (fabricated) | बनाया गया |
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
दोनों परिवारों ने अकेले दोनों जालों को नहीं पकड़ा—लेकिन उनके **संघ ने 2/2 जाल पकड़े।** एक एकल न्यायाधीश गलत आरोप को जारी कर देगा। अलग से, पुनर्प्राप्ति ओरेकल ने हमारे अपने डिज़ाइन दस्तावेज़ों में दो *वास्तविक* गलत आरोपों को पकड़ लिया (गलत पहले लेखक के तहत उद्धृत पेपर), जिन्हें किसी भी पैरामीट्रिक LLM द्वारा चिह्नित नहीं किया जा सकता था—और इसने सही ढंग से वास्तविक 2026 पत्रों की पुष्टि की, जिन्हें दोनों LLM ने केवल इसलिए बनाया हुआ बताया क्योंकि वे पेपर उनके प्रशिक्षण के बाद लिखे गए थे। वह अंतिम बिंदु पूरी तरह से कारण है कि चरण 4 में अस्तित्व की जाँच **एक पुनर्प्राप्ति ओरेकल होनी चाहिए, कभी भी एक LLM नहीं।**
|
|
52
52
|
|
|
53
|
-
यह एकल रन लघु रूप में थीसिस है: **असंबंधित लेंस + अस्तित्व के लिए एक पुनर्प्राप्ति ओरेकल किसी भी एक स्मार्ट न्यायाधीश
|
|
53
|
+
यह एकल रन लघु रूप में थीसिस है: **असंबंधित लेंस + अस्तित्व के लिए एक पुनर्प्राप्ति ओरेकल किसी भी एक स्मार्ट न्यायाधीश को हराते हैं।**
|
|
54
54
|
|
|
55
55
|
## यह कैसे जुड़ा हुआ है
|
|
56
56
|
|
|
57
|
-
आप प्रोटोकॉल को मैन्युअल रूप से चला सकते हैं
|
|
57
|
+
आप प्रोटोकॉल को मैन्युअल रूप से चला सकते हैं - किसी भिन्न मॉडल परिवार के साथ और स्वयं arXiv/DOI का समाधान करके चरण 4 पूरा किया जा सकता है। दो संबंधित उपकरण इसे एक कमांड बनाते हैं:
|
|
58
58
|
|
|
59
|
-
- **[prism-verify](https://github.com/mcp-tool-shop-org/prism-verify)**
|
|
60
|
-
- **[role-os](https://github.com/mcp-tool-shop-org/role-os)**
|
|
59
|
+
- **[prism-verify](https://github.com/mcp-tool-shop-org/prism-verify)** - रनटाइम सत्यापनकर्ता: परिवार-भिन्न रूटिंग, तर्क से रहित, बहु-लेंस निर्णय, एक निश्चित पुनर्प्राप्ति अस्तित्व सीमा (arXiv → क्रॉसरेफ), और हस्ताक्षरित रसीदें।
|
|
60
|
+
- **[role-os](https://github.com/mcp-tool-shop-org/role-os)** - `roleos verify-citations <dispatch>` प्रदान करता है, जो एक रनर है जो किसी डिस्पैच की उद्धरणों को निकालता है और उन्हें प्रिज्म के माध्यम से संसाधित करता है।
|
|
61
|
+
|
|
62
|
+
हैंडऑफ़ स्वयं डिस्पैच प्रारूप है: एक निष्कर्ष जिसे `N. **निष्कर्ष.** लेखक वर्ष (arXiv|DOI). निहितार्थ.` के रूप में लिखा गया है - प्रत्येक निष्कर्ष के लिए **एक समाधान योग्य पहचानकर्ता** - ठीक वही है जो `roleos verify-citations` प्राप्त करता है और संसाधित करता है। एक `lint`-सफाई वाला डिस्पैच आसानी से संसाधित होता है; एक गलत उद्धरण वह है जिसे रनर अपार्स किए गए रूप में चिह्नित करता है। यह अनुबंध वही है जिसकी `study-swarm lint` स्थानीय रूप से जांच करता है, इसलिए चरण 3 और चरण 4 इस बात पर सहमत हैं कि एक उद्धरण क्या है।
|
|
61
63
|
|
|
62
64
|
## सीएलआई
|
|
63
65
|
|
|
@@ -67,23 +69,58 @@ npm i -g @dogfood-lab/study-swarm # or run ad-hoc: npx @dogfood-lab/study-sw
|
|
|
67
69
|
|
|
68
70
|
| कमांड | यह क्या करता है |
|
|
69
71
|
|---|---|
|
|
70
|
-
| `study-swarm protocol` | पूरे प्रोटोकॉल को प्रिंट करें
|
|
71
|
-
| `study-swarm new <slug>` |
|
|
72
|
-
| `study-swarm lint <
|
|
72
|
+
| `study-swarm protocol` | पूरे प्रोटोकॉल को प्रिंट करें - पांच चरण, स्टॉप टेबल, सोर्सिंग मानक। |
|
|
73
|
+
| `study-swarm new <slug>` | पांच-चरणीय ढांचे के साथ `<slug>.dispatch.md` बनाएं ताकि इसे भरा जा सके। |
|
|
74
|
+
| `study-swarm lint [--json] <path…>` | किसी डिस्पैच की *अनुसंधान नींव* की जांच सोर्सिंग मानक के विरुद्ध करें - प्रत्येक निष्कर्ष में एक लेखक, एक वर्ष और एक समाधान योग्य पहचानकर्ता (arXiv / DOI / URL) होना चाहिए; "अध्ययन दिखाते हैं..." जैसे अस्पष्ट कथन अस्वीकार किए जाते हैं। उल्लंघन होने पर `1` से बाहर निकलें, इसलिए यह सीआई को संसाधित करता है। `<path>` एक फ़ाइल, एक निर्देशिका (जो `*.dispatch.md` के लिए पुनरावर्ती रूप से जांच की जाती है), या stdin के लिए `-` हो सकता है; `--json` मशीन-पठनीय रिपोर्ट उत्सर्जित करता है। |
|
|
75
|
+
|
|
76
|
+
`lint` निश्चित है - शून्य मॉडल कॉल - इसलिए यह सीआई में सुरक्षित है। यह स्थानीय रूप से **चरण 3 के सोर्सिंग मानक** को लागू करता है; मॉडल-आधारित **चरण 4** सत्यापन अभी भी [`roleos verify-citations`](https://github.com/mcp-tool-shop-org/role-os) → प्रिज्म पर निर्भर करता है।
|
|
73
77
|
|
|
74
|
-
|
|
78
|
+
एक विशिष्ट लूप:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
study-swarm new my-decision # creates my-decision.dispatch.md
|
|
82
|
+
# …fill in the questions, run the research dispatch, write the findings…
|
|
83
|
+
study-swarm lint my-decision.dispatch.md # enforce the sourcing standard (Step 3)
|
|
84
|
+
roleos verify-citations my-decision.dispatch.md # model-based Step 4 (different family, via prism)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
एक पूर्ण, `lint`-सफाई वाला डिस्पैच - अध्ययन-स्वार्म को स्वयं के डिज़ाइन पर लागू किया गया - [`examples/study-swarm-self.dispatch.md`](examples/study-swarm-self.dispatch.md) में एक उदाहरण संदर्भ के रूप में शामिल है।
|
|
88
|
+
|
|
89
|
+
### इसे सीआई में संसाधित करें
|
|
90
|
+
|
|
91
|
+
`lint` एक फ़ाइल, एक निर्देशिका (जो `*.dispatch.md` के लिए पुनरावर्ती रूप से जांच की जाती है), या stdin के लिए `-` लेता है, और `--json` मशीन-पठनीय रिपोर्ट उत्सर्जित करता है। इसे अपने रिपो में डालें ताकि प्रत्येक डिस्पैच के सोर्सिंग को प्रत्येक पीआर पर संसाधित किया जा सके (एक कॉपी-पेस्ट नमूना [`examples/study-swarm-ci.yml`](examples/study-swarm-ci.yml) में भी मौजूद है):
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
# .github/workflows/dispatches.yml
|
|
95
|
+
name: study-swarm lint
|
|
96
|
+
on:
|
|
97
|
+
pull_request:
|
|
98
|
+
paths: ['**/*.dispatch.md', '.github/workflows/dispatches.yml']
|
|
99
|
+
workflow_dispatch:
|
|
100
|
+
concurrency:
|
|
101
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
102
|
+
cancel-in-progress: true
|
|
103
|
+
jobs:
|
|
104
|
+
lint:
|
|
105
|
+
runs-on: ubuntu-latest
|
|
106
|
+
steps:
|
|
107
|
+
- uses: actions/checkout@v4
|
|
108
|
+
- uses: actions/setup-node@v4
|
|
109
|
+
with: { node-version: '20' }
|
|
110
|
+
- run: npx @dogfood-lab/study-swarm@latest lint dispatches/
|
|
111
|
+
```
|
|
75
112
|
|
|
76
113
|
## यह कैसे काम करता है, एक वाक्य में
|
|
77
114
|
|
|
78
|
-
**वर्तमान**
|
|
115
|
+
**वर्तमान** - क्षेत्र तेजी से आगे बढ़ रहा है; विशिष्ट अध्ययनों के साथ जोर देने से डिज़ाइन 18 महीने पीछे नहीं रहते हैं। **कार्यात्मक** - सबूत दिखाते हैं कि *क्या विफल होता है*, न कि केवल यह कि क्या काम करता है (व्याख्याएं *गलत* एआई पर अत्यधिक निर्भरता बढ़ा सकती हैं - बंसल एट अल. 2021, [arXiv:2006.14779](https://arxiv.org/abs/2006.14779))। **सुरक्षित** - सत्यापनकर्ता-संरक्षित क्षेत्र वह आर्किटेक्चर है जिसका सबूत समर्थन करता है, और प्रोटोकॉल इसे अपने स्वयं के आउटपुट पर लागू करता है। सोर्सिंग कोई अकादमिक नाटक नहीं है; यह साक्ष्य का मार्ग है।
|
|
79
116
|
|
|
80
117
|
## सुरक्षा
|
|
81
118
|
|
|
82
|
-
`study-swarm` एक
|
|
119
|
+
`study-swarm` एक **पतली, शून्य-निर्भरता सीएलआई** (`study-swarm`) को पद्धति के साथ भेजता है। यह **कोई नेटवर्क या मॉडल कॉल नहीं करता है** और **कोई टेलीमेट्री एकत्र नहीं करता है**; स्रोत में कोई गुप्त जानकारी या क्रेडेंशियल नहीं हैं। रनटाइम पर यह केवल उस फ़ाइल को पढ़ता है जिसे आप `lint` में पास करते हैं और वर्तमान निर्देशिका में एक एकल `<slug>.dispatch.md` लिखता है ताकि `new` हो (ओवरराइट करने से इनकार करता है, और कभी भी कार्यशील निर्देशिका के बाहर नहीं)। मॉडल-आधारित सत्यापन जो पद्धति का वर्णन करती है (चरण 4) संबंधित उपकरणों द्वारा किया जाता है, न कि इस पैकेज द्वारा। [SECURITY.md](SECURITY.md) देखें।
|
|
83
120
|
|
|
84
121
|
## स्थिति
|
|
85
122
|
|
|
86
|
-
एक कार्यशील प्रोटोकॉल,
|
|
123
|
+
एक कार्यशील प्रोटोकॉल, जिसे इसकी अपनी मशीनरी द्वारा बाहरी रूप से सत्यापित किया गया है - एक अलग मॉडल परिवार इसके उद्धरणों की जांच करता है (ऊपर प्रमाण देखें)। यह रिपो सार्वजनिक संदर्भ है; [PROTOCOL.md](PROTOCOL.md) निष्पादन योग्य आकार है। [dogfood-lab](https://github.com/dogfood-lab) परिवार का हिस्सा - एआई युग में निर्माण के लिए विधियां और प्रदर्शन।
|
|
87
124
|
|
|
88
125
|
एमआईटी लाइसेंस प्राप्त।
|
|
89
126
|
|
package/README.it.md
CHANGED
|
@@ -13,51 +13,53 @@
|
|
|
13
13
|
<img src="https://img.shields.io/badge/cited%20research-verified-1f6feb" alt="Cited research, verified">
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
|
-
**
|
|
16
|
+
**Fonda le decisioni di progettazione su ricerche citate — quindi verifica le citazioni con una *famiglia* di modelli diversa prima che tutto questo diventi parte integrante del progetto.**
|
|
17
17
|
|
|
18
|
-
`study-swarm` è un protocollo, non uno strumento. Quando si prende una decisione di progettazione importante con un LLM (un nuovo livello di prodotto, una scelta architettonica, una decisione
|
|
18
|
+
`study-swarm` è un protocollo, non uno strumento. Quando si prende una decisione di progettazione importante con un LLM (Large Language Model) — un nuovo livello di prodotto, una scelta architettonica, una decisione sul fatto che "dovremmo fidarci del modello in questo caso" — improvvisare partendo dai principi fondamentali porta a progetti obsoleti e citare articoli dalla memoria porta a progetti basati su fonti che non esistono o che non dicono quello che si pensa. `study-swarm` sostituisce entrambi: invia agenti di ricerca paralleli, richiede risultati specifici dalle ricerche citate e sottopone ogni citazione a un **verificatore esterno proveniente da una famiglia di modelli diversa** prima che influenzi la progettazione.
|
|
19
19
|
|
|
20
|
-
Applica la propria
|
|
20
|
+
Applica la propria medicina. Il protocollo prevede l'utilizzo di "buste" protette dal verificatore per i sistemi che aiuta a progettare, quindi lo applica anche a se stesso. **Nessun modello valuta il proprio lavoro, incluso quello che esegue il protocollo.**
|
|
21
21
|
|
|
22
|
-
## Il protocollo in cinque passaggi
|
|
22
|
+
## Il protocollo in cinque passaggi:
|
|
23
23
|
|
|
24
|
-
1. **
|
|
25
|
-
2. **
|
|
26
|
-
3. **
|
|
27
|
-
4. **
|
|
28
|
-
5. **
|
|
24
|
+
1. **Identifica** 3-5 domande di progettazione fondamentali a cui una prova empirica cambierebbe la risposta.
|
|
25
|
+
2. **Invia** un agente di ricerca per ogni domanda, in parallelo. Ognuno deve restituire titoli degli articoli + autori + anni + URL + un risultato riassunto in una frase (la specificità è più importante dell'ampiezza: "6-8 risultati ben documentati sono meglio di 20 affermazioni vaghe").
|
|
26
|
+
3. **Sintetizza** i risultati in una sezione intitolata *Fondamento della ricerca*: `N. **<risultato>.** <Autori> <anno> (<arXiv/DOI>). <implicazione per la progettazione>.`
|
|
27
|
+
4. **Verifica esternamente**: una *famiglia di modelli diversa*, priva di capacità di ragionamento, verifica ogni citazione in due fasi: un **oracolo di recupero** conferma che l'articolo esiste (non si basa mai sulla memoria del modello), quindi una "lente di fondatezza" conferma che il risultato corrisponde alla fonte. **Interrompi** se la citazione è fabbricata o attribuita erroneamente; **interrompi e segnala** se il verificatore o l'oracolo di recupero non sono disponibili (non interpretare mai l'assenza come "le citazioni sono corrette").
|
|
28
|
+
5. **Collega** ogni scelta architettonica a un risultato specifico, tramite numero. Le citazioni che non hanno implicazioni per la progettazione sono rumore.
|
|
29
29
|
|
|
30
|
-
I dettagli completi e eseguibili
|
|
30
|
+
I dettagli completi e eseguibili — la tabella di interruzione, lo standard di riferimento, la regola dell'insieme — si trovano in **[PROTOCOL.md](PROTOCOL.md)**.
|
|
31
31
|
|
|
32
|
-
## Perché
|
|
32
|
+
## Perché una *famiglia* diversa, priva di capacità di ragionamento?
|
|
33
33
|
|
|
34
34
|
Perché le modalità di errore sono documentate, non ipotetiche:
|
|
35
35
|
|
|
36
36
|
- **Gli LLM non possono verificare in modo affidabile i propri risultati.** Huang et al. 2023 ([arXiv:2310.01798](https://arxiv.org/abs/2310.01798)); Kambhampati et al. 2024 ([arXiv:2402.01817](https://arxiv.org/abs/2402.01817), LLM-Modulo); Stechly et al. 2024 ([arXiv:2402.08115](https://arxiv.org/abs/2402.08115)) — il verificatore esterno offre i vantaggi; il contenuto di autocritica è inerte.
|
|
37
|
-
- **I giudici della stessa famiglia tendono ad auto-preferirsi.** Panickssery, Bowman & Feng 2024 ([arXiv:2404.13076](https://arxiv.org/abs/2404.13076)) — l'auto-riconoscimento è correlato *linearmente* con l'auto-preferenza, quindi un'
|
|
38
|
-
- **Le citazioni sono il punto in cui gli LLM mentono.** Walters & Wilder 2023 ([doi:10.1038/s41598-023-41032-5](https://doi.org/10.1038/s41598-023-41032-5)) — il 55% delle citazioni di GPT-3.5 / il 18% di GPT-4 sono fabbricate. Onweller et al. 2026 ([arXiv:2605.06635](https://arxiv.org/abs/2605.06635)) — i collegamenti risolvono il >94% delle volte, ma solo il 39-77% del contenuto citato supporta effettivamente l'affermazione. Pertanto, l'esistenza deve essere verificata tramite **recupero, non richiamo**.
|
|
39
|
-
- **
|
|
40
|
-
- **La diversità
|
|
37
|
+
- **I giudici della stessa famiglia tendono ad auto-preferirsi.** Panickssery, Bowman & Feng 2024 ([arXiv:2404.13076](https://arxiv.org/abs/2404.13076)) — l'auto-riconoscimento è correlato *linearmente* con l'auto-preferenza, quindi un'attenuazione parziale non aiuta. Verga et al. 2024 ([arXiv:2404.18796](https://arxiv.org/abs/2404.18796), PoLL) — un gruppo proveniente da famiglie diverse è meno influenzato a un costo inferiore di circa 7 volte.
|
|
38
|
+
- **Le citazioni sono il punto in cui gli LLM mentono.** Walters & Wilder 2023 ([doi:10.1038/s41598-023-41032-5](https://doi.org/10.1038/s41598-023-41032-5)) — il 55% delle citazioni di GPT-3.5 / il 18% delle citazioni di GPT-4 sono fabbricate. Onweller et al. 2026 ([arXiv:2605.06635](https://arxiv.org/abs/2605.06635)) — i collegamenti risolvono il >94% delle volte, ma solo il 39-77% del contenuto citato supporta effettivamente l'affermazione. Pertanto, l'esistenza deve essere verificata tramite **recupero, non richiamo**.
|
|
39
|
+
- **Nascondi il ragionamento del generatore.** Khalifa et al. 2026 ([arXiv:2601.14691](https://arxiv.org/abs/2601.14691), "Gaming the Judge") — la sola manipolazione della catena di pensiero aumenta i falsi positivi di un giudice fino al 90%, mantenendo le azioni fisse. Turpin et al. 2023 ([arXiv:2305.04388](https://arxiv.org/abs/2305.04388)) — la catena di pensiero è una razionalizzazione post-hoc. Il verificatore vede solo l'affermazione della citazione, mai il "perché l'ho inclusa".
|
|
40
|
+
- **La diversità batte la quantità.** Rajan 2025 ([arXiv:2511.16708](https://arxiv.org/abs/2511.16708)) — quattro verificatori con una correlazione a coppie ρ ∈ [0.05, 0.25] superano qualsiasi singolo verificatore tramite copertura submodulare. Kim et al. 2025 ([arXiv:2506.07962](https://arxiv.org/abs/2506.07962)) — gli errori degli LLM sono *correlati*, quindi la variabile più importante è la diversità delle "lenti", non la quantità assoluta.
|
|
41
41
|
|
|
42
42
|
## Funziona davvero? (prova)
|
|
43
43
|
|
|
44
|
-
Come test, il protocollo è stato
|
|
44
|
+
Come test, il protocollo è stato applicato alle proprie citazioni. Due famiglie di modelli decorrelate e diverse da Claude — **Mistral** (`mistral-small:24b`) e **IBM Granite** (`granite4.1:30b`) — hanno verificato un insieme di citazioni, senza capacità di ragionamento, con due "trappole" nascoste:
|
|
45
45
|
|
|
46
|
-
| Trappola
|
|
46
|
+
| Trappola piazzata | Mistral | IBM Granite | Verità |
|
|
47
47
|
|---|---|---|---|
|
|
48
|
-
| Il ragionamento della catena di pensiero è attribuito a "Nakamura & Olsen" | mancato | **rilevato** (
|
|
49
|
-
| un articolo fabbricato con la
|
|
48
|
+
| Il ragionamento della catena di pensiero è attribuito a "Nakamura & Olsen" | mancato | **rilevato** (attribuito erroneamente → in realtà Wei et al. 2022, arXiv:2201.11903) | attribuito erroneamente |
|
|
49
|
+
| un articolo fabbricato con la frase "il 98% degli errori è stato eliminato, non è necessario alcun oracolo" | **caught** (fabricated) | **caught** (fabricated) | fabbricato |
|
|
50
50
|
|
|
51
|
-
Nessuna delle due famiglie ha rilevato entrambe le trappole da sola, ma la loro **unione ha rilevato 2/2**. Un singolo giudice avrebbe accettato l'attribuzione errata.
|
|
51
|
+
Nessuna delle due famiglie ha rilevato entrambe le trappole da sola, ma la loro **unione ha rilevato 2/2**. Un singolo giudice avrebbe accettato l'attribuzione errata. Inoltre, separatamente, l'oracolo di recupero ha individuato due *vere* attribuzioni errate nei nostri documenti di progettazione (articoli citati con il primo autore sbagliato) che nessun LLM parametrico avrebbe potuto segnalare e ha confermato correttamente articoli reali del 2026 che entrambi gli LLM hanno erroneamente contrassegnato come fabbricati semplicemente perché gli articoli sono successivi alla loro data di addestramento. Quest'ultimo punto è il motivo per cui il controllo dell'esistenza nel passaggio 4 **deve** essere effettuato tramite un oracolo di recupero, mai tramite un LLM.
|
|
52
52
|
|
|
53
|
-
Questa singola esecuzione
|
|
53
|
+
Questa singola esecuzione rappresenta la tesi in miniatura: **lenti decorrelate + un oracolo di recupero per l'esistenza superano qualsiasi singolo giudice intelligente.**
|
|
54
54
|
|
|
55
55
|
## Come è strutturato
|
|
56
56
|
|
|
57
|
-
È possibile eseguire il protocollo manualmente: qualsiasi modello di famiglia diversa
|
|
57
|
+
È possibile eseguire il protocollo manualmente: qualsiasi modello di famiglia diversa, insieme alla risoluzione autonoma di arXiv/DOI, soddisfa il passaggio 4. Due strumenti complementari lo rendono un unico comando:
|
|
58
58
|
|
|
59
|
-
- **[prism-verify](https://github.com/mcp-tool-shop-org/prism-verify)
|
|
60
|
-
- **[role-os](https://github.com/mcp-tool-shop-org/role-os)
|
|
59
|
+
- **[prism-verify](https://github.com/mcp-tool-shop-org/prism-verify)**: il verificatore in fase di esecuzione: instradamento tra famiglie diverse, ragionamento semplificato, valutazione multilente, un limite inferiore deterministico per l'esistenza dei risultati (arXiv → Crossref) e ricevute firmate.
|
|
60
|
+
- **[role-os](https://github.com/mcp-tool-shop-org/role-os)**: fornisce `roleos verify-citations <dispatch>`, lo strumento che estrae le citazioni di un documento e le elabora tramite prism.
|
|
61
|
+
|
|
62
|
+
Il passaggio è il formato del documento stesso: una scoperta scritta come `N. **scoperta.** Autori anno (arXiv|DOI). implicazione.` — con **un identificatore risolvibile per ogni scoperta** — è esattamente ciò che `roleos verify-citations` elabora e verifica. Un documento "pulito" secondo i criteri di linting viene elaborato correttamente; una citazione malformata è ciò che lo strumento segnala come non analizzata. Questo contratto è ciò che `study-swarm lint` controlla localmente, quindi il passaggio 3 e il passaggio 4 concordano su cosa sia una citazione.
|
|
61
63
|
|
|
62
64
|
## CLI
|
|
63
65
|
|
|
@@ -65,27 +67,62 @@ Questa singola esecuzione è la tesi in miniatura: **"lenti" non correlate + un
|
|
|
65
67
|
npm i -g @dogfood-lab/study-swarm # or run ad-hoc: npx @dogfood-lab/study-swarm <command>
|
|
66
68
|
```
|
|
67
69
|
|
|
68
|
-
| Comando |
|
|
70
|
+
| Comando | Cosa fa |
|
|
69
71
|
|---|---|
|
|
70
|
-
| `study-swarm protocol` | Stampa l
|
|
71
|
-
| `study-swarm new <slug>` | Crea
|
|
72
|
-
| `study-swarm lint <
|
|
72
|
+
| `study-swarm protocol` | Stampa l'intero protocollo: i cinque passaggi, la tabella di arresto, lo standard di riferimento. |
|
|
73
|
+
| `study-swarm new <slug>` | Crea uno scheletro `<slug>.dispatch.md` con i cinque passaggi da completare. |
|
|
74
|
+
| `study-swarm lint [--json] <path…>` | Verifica il *fondamento della ricerca* di un documento rispetto allo standard di riferimento: ogni scoperta deve avere un autore, un anno e un identificatore risolvibile (arXiv / DOI / URL); le affermazioni generiche del tipo "gli studi dimostrano..." vengono rifiutate. In caso di violazioni, viene restituito `1`, in modo da bloccare la CI. Un `<path>` può essere un file, una directory (analizzata ricorsivamente per i file `*.dispatch.md`) o `-` per l'input standard; `--json` emette un report leggibile dalla macchina. |
|
|
75
|
+
|
|
76
|
+
`lint` è deterministico: non effettua chiamate al modello, quindi è sicuro da utilizzare nella CI. Applica localmente lo **standard di riferimento del passaggio 3**; la verifica basata su modello del **passaggio 4** si affida ancora a [`roleos verify-citations`](https://github.com/mcp-tool-shop-org/role-os) → prism.
|
|
73
77
|
|
|
74
|
-
|
|
78
|
+
Un ciclo tipico:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
study-swarm new my-decision # creates my-decision.dispatch.md
|
|
82
|
+
# …fill in the questions, run the research dispatch, write the findings…
|
|
83
|
+
study-swarm lint my-decision.dispatch.md # enforce the sourcing standard (Step 3)
|
|
84
|
+
roleos verify-citations my-decision.dispatch.md # model-based Step 4 (different family, via prism)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Un documento completo e "pulito" secondo i criteri di linting (study-swarm applicato al proprio design) è disponibile in [`examples/study-swarm-self.dispatch.md`](examples/study-swarm-self.dispatch.md) come riferimento pratico.
|
|
88
|
+
|
|
89
|
+
### Bloccalo nella CI
|
|
90
|
+
|
|
91
|
+
`lint` accetta un file, una directory (analizzata ricorsivamente per i file `*.dispatch.md`) o `-` per l'input standard e `--json` emette un report leggibile dalla macchina. Inseriscilo nel tuo repository per controllare il riferimento di ogni documento in ogni PR (un esempio di copia-incolla è disponibile anche in [`examples/study-swarm-ci.yml`](examples/study-swarm-ci.yml)):
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
# .github/workflows/dispatches.yml
|
|
95
|
+
name: study-swarm lint
|
|
96
|
+
on:
|
|
97
|
+
pull_request:
|
|
98
|
+
paths: ['**/*.dispatch.md', '.github/workflows/dispatches.yml']
|
|
99
|
+
workflow_dispatch:
|
|
100
|
+
concurrency:
|
|
101
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
102
|
+
cancel-in-progress: true
|
|
103
|
+
jobs:
|
|
104
|
+
lint:
|
|
105
|
+
runs-on: ubuntu-latest
|
|
106
|
+
steps:
|
|
107
|
+
- uses: actions/checkout@v4
|
|
108
|
+
- uses: actions/setup-node@v4
|
|
109
|
+
with: { node-version: '20' }
|
|
110
|
+
- run: npx @dogfood-lab/study-swarm@latest lint dispatches/
|
|
111
|
+
```
|
|
75
112
|
|
|
76
|
-
##
|
|
113
|
+
## Perché funziona, in sintesi
|
|
77
114
|
|
|
78
|
-
**
|
|
115
|
+
**Attuale**: il settore si evolve rapidamente; richiedere studi specifici con indicazione dell'anno evita che i progetti siano pronti con 18 mesi di ritardo. **Funzionale**: le prove mostrano cosa *fallisce*, non solo cosa funziona (le spiegazioni possono aumentare l'eccessiva dipendenza da un'IA *errata* — Bansal et al. 2021, [arXiv:2006.14779](https://arxiv.org/abs/2006.14779)). **Sicuro**: l'ambito protetto dal verificatore è l'architettura supportata dalle prove e il protocollo lo applica ai propri risultati. Il riferimento non è un esercizio accademico; è la traccia delle prove.
|
|
79
116
|
|
|
80
117
|
## Sicurezza
|
|
81
118
|
|
|
82
|
-
`study-swarm`
|
|
119
|
+
`study-swarm` fornisce una **CLI sottile, con zero dipendenze** (`study-swarm`) insieme alla metodologia. Non effettua **chiamate di rete o al modello** e non raccoglie **dati di telemetria**: non ci sono segreti o credenziali nel codice sorgente. In fase di esecuzione legge solo il file che viene passato a `lint` e scrive un singolo file `<slug>.dispatch.md` nella directory corrente per `new` (rifiutando di sovrascriverlo e non scrivendo mai al di fuori della directory di lavoro). La verifica basata su modello descritta dalla metodologia (passaggio 4) viene eseguita dagli strumenti complementari, non da questo pacchetto. Vedere [SECURITY.md](SECURITY.md).
|
|
83
120
|
|
|
84
121
|
## Stato
|
|
85
122
|
|
|
86
|
-
Un protocollo funzionante, verificato esternamente dai propri
|
|
123
|
+
Un protocollo funzionante, verificato esternamente dai propri meccanismi: una famiglia di modelli diversa controlla le sue citazioni (vedere la prova sopra). Questo repository è il riferimento pubblico; [PROTOCOL.md](PROTOCOL.md) è la forma eseguibile. Fa parte della famiglia [dogfood-lab](https://github.com/dogfood-lab): metodi e esempi per costruire nell'era dell'IA.
|
|
87
124
|
|
|
88
|
-
|
|
125
|
+
Con licenza MIT.
|
|
89
126
|
|
|
90
127
|
---
|
|
91
128
|
|