@wentorai/research-plugins 1.2.2 → 1.3.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/README.md +16 -8
- package/openclaw.plugin.json +10 -3
- package/package.json +2 -5
- package/skills/analysis/dataviz/SKILL.md +25 -0
- package/skills/analysis/dataviz/chart-image-generator/SKILL.md +1 -1
- package/skills/analysis/econometrics/SKILL.md +23 -0
- package/skills/analysis/econometrics/robustness-checks/SKILL.md +1 -1
- package/skills/analysis/statistics/SKILL.md +21 -0
- package/skills/analysis/statistics/data-anomaly-detection/SKILL.md +1 -1
- package/skills/analysis/statistics/ml-experiment-tracker/SKILL.md +1 -1
- package/skills/analysis/statistics/{senior-data-scientist-guide → modeling-strategy-guide}/SKILL.md +5 -5
- package/skills/analysis/wrangling/SKILL.md +21 -0
- package/skills/analysis/wrangling/csv-data-analyzer/SKILL.md +1 -1
- package/skills/analysis/wrangling/data-cog-guide/SKILL.md +1 -1
- package/skills/domains/ai-ml/SKILL.md +37 -0
- package/skills/domains/biomedical/SKILL.md +28 -0
- package/skills/domains/biomedical/genomas-guide/SKILL.md +1 -1
- package/skills/domains/biomedical/med-researcher-guide/SKILL.md +1 -1
- package/skills/domains/biomedical/medgeclaw-guide/SKILL.md +1 -1
- package/skills/domains/business/SKILL.md +17 -0
- package/skills/domains/business/architecture-design-guide/SKILL.md +1 -1
- package/skills/domains/chemistry/SKILL.md +19 -0
- package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +1 -1
- package/skills/domains/cs/SKILL.md +21 -0
- package/skills/domains/ecology/SKILL.md +16 -0
- package/skills/domains/economics/SKILL.md +20 -0
- package/skills/domains/economics/post-labor-economics/SKILL.md +1 -1
- package/skills/domains/economics/pricing-psychology-guide/SKILL.md +1 -1
- package/skills/domains/education/SKILL.md +19 -0
- package/skills/domains/education/academic-study-methods/SKILL.md +1 -1
- package/skills/domains/education/edumcp-guide/SKILL.md +1 -1
- package/skills/domains/finance/SKILL.md +19 -0
- package/skills/domains/finance/akshare-finance-data/SKILL.md +1 -1
- package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +1 -1
- package/skills/domains/finance/stata-accounting-research/SKILL.md +1 -1
- package/skills/domains/geoscience/SKILL.md +17 -0
- package/skills/domains/humanities/SKILL.md +16 -0
- package/skills/domains/humanities/history-research-guide/SKILL.md +1 -1
- package/skills/domains/humanities/political-history-guide/SKILL.md +1 -1
- package/skills/domains/law/SKILL.md +19 -0
- package/skills/domains/math/SKILL.md +17 -0
- package/skills/domains/pharma/SKILL.md +17 -0
- package/skills/domains/physics/SKILL.md +16 -0
- package/skills/domains/social-science/SKILL.md +17 -0
- package/skills/domains/social-science/sociology-research-methods/SKILL.md +1 -1
- package/skills/literature/discovery/SKILL.md +20 -0
- package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +1 -1
- package/skills/literature/discovery/semantic-paper-radar/SKILL.md +1 -1
- package/skills/literature/fulltext/SKILL.md +26 -0
- package/skills/literature/metadata/SKILL.md +35 -0
- package/skills/literature/metadata/doi-content-negotiation/SKILL.md +4 -0
- package/skills/literature/metadata/doi-resolution-guide/SKILL.md +4 -0
- package/skills/literature/metadata/orcid-api/SKILL.md +4 -0
- package/skills/literature/metadata/orcid-integration-guide/SKILL.md +4 -0
- package/skills/literature/search/SKILL.md +43 -0
- package/skills/literature/search/paper-search-mcp-guide/SKILL.md +1 -1
- package/skills/research/automation/SKILL.md +21 -0
- package/skills/research/deep-research/SKILL.md +24 -0
- package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +1 -1
- package/skills/research/deep-research/in-depth-research-guide/SKILL.md +1 -1
- package/skills/research/funding/SKILL.md +20 -0
- package/skills/research/methodology/SKILL.md +24 -0
- package/skills/research/paper-review/SKILL.md +19 -0
- package/skills/research/paper-review/paper-critique-framework/SKILL.md +1 -1
- package/skills/tools/code-exec/SKILL.md +18 -0
- package/skills/tools/diagram/SKILL.md +20 -0
- package/skills/tools/document/SKILL.md +21 -0
- package/skills/tools/knowledge-graph/SKILL.md +21 -0
- package/skills/tools/ocr-translate/SKILL.md +18 -0
- package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +2 -0
- package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +2 -0
- package/skills/tools/scraping/SKILL.md +17 -0
- package/skills/writing/citation/SKILL.md +33 -0
- package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +2 -0
- package/skills/writing/composition/SKILL.md +22 -0
- package/skills/writing/composition/research-paper-writer/SKILL.md +1 -1
- package/skills/writing/composition/scientific-writing-wrapper/SKILL.md +1 -1
- package/skills/writing/latex/SKILL.md +22 -0
- package/skills/writing/latex/academic-writing-latex/SKILL.md +1 -1
- package/skills/writing/latex/latex-drawing-guide/SKILL.md +1 -1
- package/skills/writing/polish/SKILL.md +20 -0
- package/skills/writing/polish/chinese-text-humanizer/SKILL.md +1 -1
- package/skills/writing/templates/SKILL.md +22 -0
- package/skills/writing/templates/beamer-presentation-guide/SKILL.md +1 -1
- package/skills/writing/templates/scientific-article-pdf/SKILL.md +1 -1
- package/skills/analysis/dataviz/citation-map-guide/SKILL.md +0 -184
- package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +0 -171
- package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +0 -192
- package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +0 -267
- package/skills/analysis/econometrics/stata-regression/SKILL.md +0 -117
- package/skills/analysis/statistics/general-statistics-guide/SKILL.md +0 -226
- package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +0 -106
- package/skills/analysis/statistics/pywayne-statistics-guide/SKILL.md +0 -192
- package/skills/analysis/statistics/quantitative-methods-guide/SKILL.md +0 -193
- package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +0 -100
- package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +0 -197
- package/skills/domains/ai-ml/annotated-dl-papers-guide/SKILL.md +0 -159
- package/skills/domains/humanities/digital-humanities-methods/SKILL.md +0 -232
- package/skills/domains/law/legal-research-methods/SKILL.md +0 -190
- package/skills/domains/social-science/sociology-research-guide/SKILL.md +0 -238
- package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +0 -233
- package/skills/literature/discovery/paper-tracking-guide/SKILL.md +0 -211
- package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +0 -168
- package/skills/literature/search/arxiv-osiris/SKILL.md +0 -199
- package/skills/literature/search/deepgit-search-guide/SKILL.md +0 -147
- package/skills/literature/search/multi-database-literature-search/SKILL.md +0 -198
- package/skills/literature/search/papers-chat-guide/SKILL.md +0 -194
- package/skills/literature/search/pasa-paper-search-guide/SKILL.md +0 -138
- package/skills/literature/search/scientify-literature-survey/SKILL.md +0 -203
- package/skills/research/automation/ai-scientist-guide/SKILL.md +0 -228
- package/skills/research/automation/coexist-ai-guide/SKILL.md +0 -149
- package/skills/research/automation/foam-agent-guide/SKILL.md +0 -203
- package/skills/research/automation/research-paper-orchestrator/SKILL.md +0 -254
- package/skills/research/deep-research/academic-deep-research/SKILL.md +0 -190
- package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +0 -200
- package/skills/research/deep-research/corvus-research-guide/SKILL.md +0 -132
- package/skills/research/deep-research/deep-research-pro/SKILL.md +0 -213
- package/skills/research/deep-research/deep-research-work/SKILL.md +0 -204
- package/skills/research/deep-research/research-cog/SKILL.md +0 -153
- package/skills/research/methodology/academic-mentor-guide/SKILL.md +0 -169
- package/skills/research/methodology/deep-innovator-guide/SKILL.md +0 -242
- package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +0 -169
- package/skills/research/paper-review/paper-compare-guide/SKILL.md +0 -238
- package/skills/research/paper-review/paper-digest-guide/SKILL.md +0 -240
- package/skills/research/paper-review/paper-research-assistant/SKILL.md +0 -231
- package/skills/research/paper-review/research-quality-filter/SKILL.md +0 -261
- package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +0 -110
- package/skills/tools/diagram/clawphd-guide/SKILL.md +0 -149
- package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +0 -201
- package/skills/tools/document/md2pdf-xelatex/SKILL.md +0 -212
- package/skills/tools/document/openpaper-guide/SKILL.md +0 -232
- package/skills/tools/document/weknora-guide/SKILL.md +0 -216
- package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +0 -135
- package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +0 -156
- package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +0 -367
- package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +0 -198
- package/skills/tools/scraping/api-data-collection-guide/SKILL.md +0 -301
- package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +0 -182
- package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +0 -200
- package/skills/writing/composition/paper-debugger-guide/SKILL.md +0 -143
- package/skills/writing/composition/paperforge-guide/SKILL.md +0 -205
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: research-paper-orchestrator
|
|
3
|
-
description: "Master orchestrator coordinating 10 specialized subagents for papers"
|
|
4
|
-
metadata:
|
|
5
|
-
openclaw:
|
|
6
|
-
emoji: "🎼"
|
|
7
|
-
category: "research"
|
|
8
|
-
subcategory: "automation"
|
|
9
|
-
keywords: ["research orchestration", "multi-agent", "automated research", "paper production", "workflow automation", "agent coordination"]
|
|
10
|
-
source: "https://github.com/AcademicSkills/research-paper-orchestrator"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Research Paper Orchestrator
|
|
14
|
-
|
|
15
|
-
A master orchestrator skill that coordinates up to 10 specialized subagents to produce comprehensive research outputs. Each subagent handles a distinct phase of the research pipeline -- from literature search through data analysis to manuscript drafting -- while the orchestrator manages sequencing, data flow, quality gates, and synthesis across all components.
|
|
16
|
-
|
|
17
|
-
## Overview
|
|
18
|
-
|
|
19
|
-
Producing a research paper involves many distinct tasks: searching literature, reading and summarizing papers, analyzing data, generating figures, writing sections, formatting citations, and checking consistency. Each task requires different expertise and tools. The Research Paper Orchestrator decomposes the full research workflow into specialized roles, assigns each to a dedicated subagent, and coordinates their execution through a defined pipeline with quality checkpoints.
|
|
20
|
-
|
|
21
|
-
This approach mirrors how research teams operate in practice: a PI sets the direction and checks quality, a literature specialist handles the review, a statistician runs the analysis, a writer drafts the prose, and reviewers provide feedback. The orchestrator plays the PI role, ensuring all components align and meet quality standards before advancing to the next phase.
|
|
22
|
-
|
|
23
|
-
## Orchestrator Architecture
|
|
24
|
-
|
|
25
|
-
### The 10 Subagent Roles
|
|
26
|
-
|
|
27
|
-
```yaml
|
|
28
|
-
subagents:
|
|
29
|
-
1_planner:
|
|
30
|
-
role: "Research Planner"
|
|
31
|
-
responsibility: "Define research question, scope, methodology, and timeline"
|
|
32
|
-
inputs: ["user topic", "constraints"]
|
|
33
|
-
outputs: ["research_plan.yaml"]
|
|
34
|
-
|
|
35
|
-
2_literature_scout:
|
|
36
|
-
role: "Literature Scout"
|
|
37
|
-
responsibility: "Search databases, identify relevant papers, build bibliography"
|
|
38
|
-
inputs: ["research_plan", "search_queries"]
|
|
39
|
-
outputs: ["candidate_papers.json", "search_log.md"]
|
|
40
|
-
|
|
41
|
-
3_paper_reader:
|
|
42
|
-
role: "Paper Reader"
|
|
43
|
-
responsibility: "Read and extract structured summaries from selected papers"
|
|
44
|
-
inputs: ["candidate_papers"]
|
|
45
|
-
outputs: ["paper_summaries.json", "evidence_matrix.csv"]
|
|
46
|
-
|
|
47
|
-
4_gap_analyzer:
|
|
48
|
-
role: "Gap Analyzer"
|
|
49
|
-
responsibility: "Identify research gaps, contradictions, and opportunities"
|
|
50
|
-
inputs: ["paper_summaries", "evidence_matrix"]
|
|
51
|
-
outputs: ["gap_analysis.md", "positioning_statement.md"]
|
|
52
|
-
|
|
53
|
-
5_data_analyst:
|
|
54
|
-
role: "Data Analyst"
|
|
55
|
-
responsibility: "Clean, analyze, and model the research data"
|
|
56
|
-
inputs: ["research_data", "analysis_plan"]
|
|
57
|
-
outputs: ["results.json", "statistical_tests.md"]
|
|
58
|
-
|
|
59
|
-
6_figure_generator:
|
|
60
|
-
role: "Figure Generator"
|
|
61
|
-
responsibility: "Create publication-quality figures and tables"
|
|
62
|
-
inputs: ["results", "figure_specifications"]
|
|
63
|
-
outputs: ["figures/", "tables/"]
|
|
64
|
-
|
|
65
|
-
7_section_writer:
|
|
66
|
-
role: "Section Writer"
|
|
67
|
-
responsibility: "Draft each manuscript section following academic conventions"
|
|
68
|
-
inputs: ["research_plan", "paper_summaries", "results", "figures"]
|
|
69
|
-
outputs: ["draft_sections/"]
|
|
70
|
-
|
|
71
|
-
8_citation_manager:
|
|
72
|
-
role: "Citation Manager"
|
|
73
|
-
responsibility: "Format citations, build bibliography, check reference consistency"
|
|
74
|
-
inputs: ["draft_sections", "paper_summaries"]
|
|
75
|
-
outputs: ["references.bib", "citation_report.md"]
|
|
76
|
-
|
|
77
|
-
9_consistency_checker:
|
|
78
|
-
role: "Consistency Checker"
|
|
79
|
-
responsibility: "Verify internal consistency across sections, figures, and claims"
|
|
80
|
-
inputs: ["full_draft"]
|
|
81
|
-
outputs: ["consistency_report.md", "issues.json"]
|
|
82
|
-
|
|
83
|
-
10_quality_reviewer:
|
|
84
|
-
role: "Quality Reviewer"
|
|
85
|
-
responsibility: "Final quality assessment against journal standards"
|
|
86
|
-
inputs: ["full_draft", "consistency_report"]
|
|
87
|
-
outputs: ["review_comments.md", "quality_score"]
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Pipeline Execution Flow
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
Phase 1: PLANNING
|
|
94
|
-
[1_planner] → research_plan
|
|
95
|
-
Quality Gate: Is the plan specific, feasible, and novel?
|
|
96
|
-
|
|
97
|
-
Phase 2: LITERATURE
|
|
98
|
-
[2_literature_scout] → candidate_papers
|
|
99
|
-
[3_paper_reader] → paper_summaries, evidence_matrix
|
|
100
|
-
[4_gap_analyzer] → gap_analysis, positioning
|
|
101
|
-
Quality Gate: Is the literature coverage sufficient? Is the gap real?
|
|
102
|
-
|
|
103
|
-
Phase 3: ANALYSIS
|
|
104
|
-
[5_data_analyst] → results
|
|
105
|
-
[6_figure_generator] → figures, tables
|
|
106
|
-
Quality Gate: Are results statistically sound? Do figures accurately represent data?
|
|
107
|
-
|
|
108
|
-
Phase 4: WRITING
|
|
109
|
-
[7_section_writer] → draft_sections
|
|
110
|
-
[8_citation_manager] → formatted_references
|
|
111
|
-
Quality Gate: Does each section follow conventions? Are all claims cited?
|
|
112
|
-
|
|
113
|
-
Phase 5: REVIEW
|
|
114
|
-
[9_consistency_checker] → consistency_report
|
|
115
|
-
[10_quality_reviewer] → review_comments
|
|
116
|
-
Quality Gate: Overall quality score >= threshold?
|
|
117
|
-
|
|
118
|
-
If any quality gate fails → loop back to the relevant phase.
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Quality Gates
|
|
122
|
-
|
|
123
|
-
### Gate Definitions
|
|
124
|
-
|
|
125
|
-
```python
|
|
126
|
-
QUALITY_GATES = {
|
|
127
|
-
'planning': {
|
|
128
|
-
'checks': [
|
|
129
|
-
'Research question is specific and testable',
|
|
130
|
-
'Scope is achievable within stated constraints',
|
|
131
|
-
'Methodology matches the research question',
|
|
132
|
-
'Timeline is realistic'
|
|
133
|
-
],
|
|
134
|
-
'threshold': 4, # All checks must pass
|
|
135
|
-
'fallback': 'Return to planner with feedback'
|
|
136
|
-
},
|
|
137
|
-
'literature': {
|
|
138
|
-
'checks': [
|
|
139
|
-
'Minimum 20 relevant papers identified',
|
|
140
|
-
'Coverage spans last 5 years',
|
|
141
|
-
'Multiple databases searched',
|
|
142
|
-
'Gap analysis identifies a clear contribution',
|
|
143
|
-
'No critical papers obviously missing'
|
|
144
|
-
],
|
|
145
|
-
'threshold': 4, # At least 4 of 5 must pass
|
|
146
|
-
'fallback': 'Expand search with additional queries'
|
|
147
|
-
},
|
|
148
|
-
'analysis': {
|
|
149
|
-
'checks': [
|
|
150
|
-
'Statistical assumptions verified',
|
|
151
|
-
'Results are reproducible (seed set)',
|
|
152
|
-
'Effect sizes reported alongside p-values',
|
|
153
|
-
'Figures match reported statistics',
|
|
154
|
-
'Sensitivity analysis performed'
|
|
155
|
-
],
|
|
156
|
-
'threshold': 5, # All must pass
|
|
157
|
-
'fallback': 'Data analyst revises analysis'
|
|
158
|
-
},
|
|
159
|
-
'writing': {
|
|
160
|
-
'checks': [
|
|
161
|
-
'All sections present and complete',
|
|
162
|
-
'Every factual claim has a citation',
|
|
163
|
-
'No plagiarized passages',
|
|
164
|
-
'Consistent terminology throughout',
|
|
165
|
-
'Abstract accurately reflects content'
|
|
166
|
-
],
|
|
167
|
-
'threshold': 5,
|
|
168
|
-
'fallback': 'Section writer revises with specific feedback'
|
|
169
|
-
},
|
|
170
|
-
'review': {
|
|
171
|
-
'checks': [
|
|
172
|
-
'No internal contradictions found',
|
|
173
|
-
'Figures referenced correctly in text',
|
|
174
|
-
'References complete and formatted',
|
|
175
|
-
'Meets target journal formatting requirements',
|
|
176
|
-
'Overall quality score >= 7/10'
|
|
177
|
-
],
|
|
178
|
-
'threshold': 5,
|
|
179
|
-
'fallback': 'Loop back to relevant earlier phase'
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## Coordination Protocol
|
|
185
|
-
|
|
186
|
-
### Inter-Agent Communication
|
|
187
|
-
|
|
188
|
-
```python
|
|
189
|
-
class OrchestratorMessage:
|
|
190
|
-
"""
|
|
191
|
-
Standard message format for communication between orchestrator and subagents.
|
|
192
|
-
"""
|
|
193
|
-
def __init__(self, sender: str, receiver: str, msg_type: str, payload: dict):
|
|
194
|
-
self.sender = sender # e.g., "orchestrator", "data_analyst"
|
|
195
|
-
self.receiver = receiver # e.g., "figure_generator"
|
|
196
|
-
self.msg_type = msg_type # "task", "result", "feedback", "query"
|
|
197
|
-
self.payload = payload # task-specific data
|
|
198
|
-
self.timestamp = None
|
|
199
|
-
self.status = "pending" # pending, in_progress, completed, failed
|
|
200
|
-
|
|
201
|
-
# Example: Orchestrator assigns task to data analyst
|
|
202
|
-
msg = OrchestratorMessage(
|
|
203
|
-
sender="orchestrator",
|
|
204
|
-
receiver="data_analyst",
|
|
205
|
-
msg_type="task",
|
|
206
|
-
payload={
|
|
207
|
-
"action": "run_analysis",
|
|
208
|
-
"data_path": "data/experiment_results.csv",
|
|
209
|
-
"analysis_plan": "analysis_plan.yaml",
|
|
210
|
-
"output_format": "json",
|
|
211
|
-
"deadline": "phase_3_end"
|
|
212
|
-
}
|
|
213
|
-
)
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### Progress Tracking Dashboard
|
|
217
|
-
|
|
218
|
-
| Phase | Subagent | Status | Output | Quality Gate |
|
|
219
|
-
|-------|----------|--------|--------|-------------|
|
|
220
|
-
| Planning | Planner | Completed | research_plan.yaml | PASSED |
|
|
221
|
-
| Literature | Scout | Completed | 45 papers found | - |
|
|
222
|
-
| Literature | Reader | Completed | 28 papers summarized | - |
|
|
223
|
-
| Literature | Gap Analyzer | Completed | gap_analysis.md | PASSED |
|
|
224
|
-
| Analysis | Data Analyst | In Progress | 60% complete | - |
|
|
225
|
-
| Analysis | Figure Gen | Pending | waiting for results | - |
|
|
226
|
-
| Writing | Section Writer | Pending | - | - |
|
|
227
|
-
| Writing | Citation Mgr | Pending | - | - |
|
|
228
|
-
| Review | Consistency | Pending | - | - |
|
|
229
|
-
| Review | Quality Rev | Pending | - | - |
|
|
230
|
-
|
|
231
|
-
## Error Handling and Recovery
|
|
232
|
-
|
|
233
|
-
When a subagent fails or a quality gate is not met:
|
|
234
|
-
|
|
235
|
-
1. **Isolate the failure**: Determine which specific check failed and why.
|
|
236
|
-
2. **Provide targeted feedback**: Send the subagent specific, actionable instructions for revision.
|
|
237
|
-
3. **Limit retries**: Maximum 3 attempts per subagent before escalating to user.
|
|
238
|
-
4. **Preserve progress**: Never discard completed upstream work when re-running a downstream phase.
|
|
239
|
-
5. **Log everything**: Record all attempts, feedback, and revisions for debugging and improvement.
|
|
240
|
-
|
|
241
|
-
## Best Practices
|
|
242
|
-
|
|
243
|
-
- Run the pipeline end-to-end on a small scope first (e.g., 5 papers, 1 analysis) before scaling up.
|
|
244
|
-
- Human-in-the-loop at quality gates produces much better results than fully automated runs.
|
|
245
|
-
- The planner subagent is the most critical; invest extra time in the research plan.
|
|
246
|
-
- Allow the consistency checker to flag issues even if the quality reviewer has not yet run.
|
|
247
|
-
- Save intermediate outputs at each phase for debugging and incremental refinement.
|
|
248
|
-
- The orchestrator should not perform research tasks itself; its role is coordination and quality control.
|
|
249
|
-
|
|
250
|
-
## References
|
|
251
|
-
|
|
252
|
-
- Gu, J., et al. (2024). Agent Workflow Memory for Multi-Agent Systems. *arXiv:2409.07429*.
|
|
253
|
-
- Wu, Q., et al. (2023). AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation. *arXiv:2308.08155*.
|
|
254
|
-
- Hong, S., et al. (2023). MetaGPT: Meta Programming for Multi-Agent Collaborative Framework. *ICLR 2024*.
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: academic-deep-research
|
|
3
|
-
description: "Multi-cycle exhaustive investigation framework for academic topics"
|
|
4
|
-
metadata:
|
|
5
|
-
openclaw:
|
|
6
|
-
emoji: "🔬"
|
|
7
|
-
category: "research"
|
|
8
|
-
subcategory: "deep-research"
|
|
9
|
-
keywords: ["deep research", "exhaustive search", "multi-cycle investigation", "literature synthesis", "comprehensive review"]
|
|
10
|
-
source: "https://github.com/AcademicSkills/academic-deep-research"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Academic Deep Research
|
|
14
|
-
|
|
15
|
-
A structured multi-cycle investigation framework designed for exhaustive academic research. Unlike single-pass literature searches, this skill implements iterative deepening: each cycle expands the search scope, refines the query based on discovered themes, and synthesizes findings into an increasingly comprehensive knowledge map.
|
|
16
|
-
|
|
17
|
-
## Overview
|
|
18
|
-
|
|
19
|
-
Traditional literature searches follow a linear process: define keywords, search databases, screen results, extract data, synthesize. This approach works well for scoping reviews but often misses important connections across subfields, fails to surface grey literature, and stops too early when the obvious sources have been found. Academic Deep Research addresses these limitations through a multi-cycle approach where each cycle builds on the findings of the previous one, progressively expanding the search frontier.
|
|
20
|
-
|
|
21
|
-
The framework is inspired by systematic review methodology but optimized for speed and breadth rather than exhaustive recall within a single database. It is particularly useful for interdisciplinary research questions, emerging fields where terminology is not yet standardized, and complex topics where important insights may be scattered across diverse literatures.
|
|
22
|
-
|
|
23
|
-
## The Multi-Cycle Framework
|
|
24
|
-
|
|
25
|
-
### Cycle Architecture
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
Cycle 1: BREADTH (Survey Phase)
|
|
29
|
-
Purpose: Map the landscape, identify major themes and key authors
|
|
30
|
-
Sources: Google Scholar, Semantic Scholar, review articles
|
|
31
|
-
Output: Theme taxonomy, key author list, terminology inventory
|
|
32
|
-
Duration: 2-4 hours
|
|
33
|
-
|
|
34
|
-
Cycle 2: DEPTH (Focused Phase)
|
|
35
|
-
Purpose: Deep-dive into each identified theme
|
|
36
|
-
Sources: Discipline-specific databases (PubMed, IEEE, SSRN, etc.)
|
|
37
|
-
Output: Annotated bibliography, evidence matrix, gap identification
|
|
38
|
-
Duration: 4-8 hours
|
|
39
|
-
|
|
40
|
-
Cycle 3: CONNECTIONS (Synthesis Phase)
|
|
41
|
-
Purpose: Find cross-theme relationships, contradictions, and gaps
|
|
42
|
-
Sources: Citation networks, author collaboration networks
|
|
43
|
-
Output: Conceptual framework, research gap map, contradiction log
|
|
44
|
-
Duration: 2-4 hours
|
|
45
|
-
|
|
46
|
-
Cycle 4: FRONTIERS (Currency Phase)
|
|
47
|
-
Purpose: Capture the latest work and preprints
|
|
48
|
-
Sources: arXiv, bioRxiv, conference proceedings, working papers
|
|
49
|
-
Output: Trend analysis, emerging methods, future directions
|
|
50
|
-
Duration: 1-2 hours
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### Cycle Execution Protocol
|
|
54
|
-
|
|
55
|
-
```python
|
|
56
|
-
class ResearchCycle:
|
|
57
|
-
"""
|
|
58
|
-
Execute a single cycle of the deep research framework.
|
|
59
|
-
"""
|
|
60
|
-
def __init__(self, cycle_number: int, focus: str, prior_findings: dict = None):
|
|
61
|
-
self.cycle = cycle_number
|
|
62
|
-
self.focus = focus # 'breadth', 'depth', 'connections', 'frontiers'
|
|
63
|
-
self.prior = prior_findings or {}
|
|
64
|
-
self.findings = []
|
|
65
|
-
self.new_queries = []
|
|
66
|
-
self.gaps = []
|
|
67
|
-
|
|
68
|
-
def generate_queries(self, base_topic: str) -> list:
|
|
69
|
-
"""
|
|
70
|
-
Generate search queries adapted to the cycle's focus.
|
|
71
|
-
"""
|
|
72
|
-
if self.focus == 'breadth':
|
|
73
|
-
return [
|
|
74
|
-
f'"{base_topic}" review',
|
|
75
|
-
f'"{base_topic}" survey',
|
|
76
|
-
f'"{base_topic}" systematic review',
|
|
77
|
-
f'"{base_topic}" meta-analysis',
|
|
78
|
-
f'"{base_topic}" overview OR tutorial',
|
|
79
|
-
]
|
|
80
|
-
elif self.focus == 'depth':
|
|
81
|
-
# Use themes discovered in Cycle 1
|
|
82
|
-
themes = self.prior.get('themes', [])
|
|
83
|
-
return [f'"{base_topic}" AND "{theme}"' for theme in themes]
|
|
84
|
-
elif self.focus == 'connections':
|
|
85
|
-
# Cross-theme queries
|
|
86
|
-
themes = self.prior.get('themes', [])
|
|
87
|
-
queries = []
|
|
88
|
-
for i, t1 in enumerate(themes):
|
|
89
|
-
for t2 in themes[i+1:]:
|
|
90
|
-
queries.append(f'"{t1}" AND "{t2}"')
|
|
91
|
-
return queries
|
|
92
|
-
elif self.focus == 'frontiers':
|
|
93
|
-
return [
|
|
94
|
-
f'"{base_topic}" 2025 OR 2026',
|
|
95
|
-
f'"{base_topic}" preprint',
|
|
96
|
-
f'"{base_topic}" forthcoming OR "in press"',
|
|
97
|
-
]
|
|
98
|
-
return []
|
|
99
|
-
|
|
100
|
-
def evaluate_saturation(self) -> bool:
|
|
101
|
-
"""
|
|
102
|
-
Determine if additional searching is likely to yield new information.
|
|
103
|
-
Saturation is reached when >80% of new results are already in the corpus.
|
|
104
|
-
"""
|
|
105
|
-
if not self.findings:
|
|
106
|
-
return False
|
|
107
|
-
new_unique = sum(1 for f in self.findings if not f.get('seen_before'))
|
|
108
|
-
total = len(self.findings)
|
|
109
|
-
novelty_rate = new_unique / total if total > 0 else 1.0
|
|
110
|
-
return novelty_rate < 0.20 # Saturated when <20% new
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## Evidence Matrix Construction
|
|
114
|
-
|
|
115
|
-
### Structuring Findings Across Studies
|
|
116
|
-
|
|
117
|
-
| Study | Method | Sample | Key Finding | Effect Size | Relevance |
|
|
118
|
-
|-------|--------|--------|-------------|-------------|-----------|
|
|
119
|
-
| Author (Year) | RCT | n=200 | Treatment improved X by 15% | d=0.45 | High |
|
|
120
|
-
| Author (Year) | Survey | n=1500 | Factor Y predicts Z (beta=0.3) | R2=0.12 | Medium |
|
|
121
|
-
| Author (Year) | Qualitative | n=30 | Three themes emerged | N/A | High |
|
|
122
|
-
|
|
123
|
-
### Tracking Contradictions
|
|
124
|
-
|
|
125
|
-
```
|
|
126
|
-
Contradiction Log:
|
|
127
|
-
1. Study A (2023) finds positive effect of X on Y (d=0.4, n=200)
|
|
128
|
-
Study B (2024) finds null effect (d=0.02, n=500)
|
|
129
|
-
Possible explanations:
|
|
130
|
-
- Different populations (students vs. professionals)
|
|
131
|
-
- Different operationalization of X
|
|
132
|
-
- Study A may have publication bias
|
|
133
|
-
Resolution needed: moderator analysis or direct replication
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## Knowledge Map Generation
|
|
137
|
-
|
|
138
|
-
### From Findings to Conceptual Framework
|
|
139
|
-
|
|
140
|
-
After completing all cycles, synthesize findings into a knowledge map:
|
|
141
|
-
|
|
142
|
-
1. **Core concepts**: The fundamental constructs in the field.
|
|
143
|
-
2. **Established relationships**: Well-replicated findings supported by multiple studies.
|
|
144
|
-
3. **Contested relationships**: Findings with conflicting evidence.
|
|
145
|
-
4. **Unexplored areas**: Logical research questions that no study has addressed.
|
|
146
|
-
5. **Methodological gaps**: Approaches not yet applied to the topic.
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
Knowledge Map: [Topic]
|
|
150
|
-
|
|
151
|
-
Established:
|
|
152
|
-
A → B (strong evidence, 12 studies, meta-analytic d=0.5)
|
|
153
|
-
C moderates A → B (4 studies)
|
|
154
|
-
|
|
155
|
-
Contested:
|
|
156
|
-
D → E (3 positive, 2 null, 1 negative; likely moderator)
|
|
157
|
-
|
|
158
|
-
Unexplored:
|
|
159
|
-
F → B (theoretically plausible, no empirical studies)
|
|
160
|
-
A → B in context G (only studied in context H)
|
|
161
|
-
|
|
162
|
-
Methodological Gaps:
|
|
163
|
-
No longitudinal studies of A → B
|
|
164
|
-
No experimental manipulation of C
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
## Output Deliverables
|
|
168
|
-
|
|
169
|
-
Each deep research session produces:
|
|
170
|
-
|
|
171
|
-
1. **Executive summary** (500 words): Key findings, gaps, and recommended next steps.
|
|
172
|
-
2. **Annotated bibliography** (20-100 entries): Each source with a 2-3 sentence summary and relevance rating.
|
|
173
|
-
3. **Evidence matrix**: Tabular comparison of studies on key dimensions.
|
|
174
|
-
4. **Knowledge map**: Visual or structured representation of the field's state.
|
|
175
|
-
5. **Research gap inventory**: Prioritized list of unanswered questions.
|
|
176
|
-
6. **Search audit trail**: All queries, databases, dates, and result counts for reproducibility.
|
|
177
|
-
|
|
178
|
-
## Best Practices
|
|
179
|
-
|
|
180
|
-
- Start with Cycle 1 even if you think you know the field well. Survey-level searching often reveals adjacent literatures you did not know existed.
|
|
181
|
-
- Keep a running terminology inventory. The same concept may be called different things across subfields.
|
|
182
|
-
- Do not skip the contradiction log. Contested findings often point to the most productive research opportunities.
|
|
183
|
-
- Set a time budget for each cycle. Diminishing returns set in; use the saturation check to know when to move on.
|
|
184
|
-
- Save all search results with timestamps for PRISMA-style reporting if needed later.
|
|
185
|
-
|
|
186
|
-
## References
|
|
187
|
-
|
|
188
|
-
- Arksey, H. & O'Malley, L. (2005). Scoping Studies: Towards a Methodological Framework. *International Journal of Social Research Methodology*, 8(1), 19-32.
|
|
189
|
-
- Greenhalgh, T. & Peacock, R. (2005). Effectiveness and Efficiency of Search Methods in Systematic Reviews. *BMJ*, 331(7524), 1064-1065.
|
|
190
|
-
- Wohlin, C. (2014). Guidelines for Snowballing in Systematic Literature Studies. *EASE 2014*.
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cognitive-kernel-guide
|
|
3
|
-
description: "Autonomous agent with long-term memory for deep research tasks"
|
|
4
|
-
metadata:
|
|
5
|
-
openclaw:
|
|
6
|
-
emoji: "🧠"
|
|
7
|
-
category: "research"
|
|
8
|
-
subcategory: "deep-research"
|
|
9
|
-
keywords: ["Cognitive Kernel", "autonomous agent", "long-term memory", "deep research", "reasoning", "knowledge accumulation"]
|
|
10
|
-
source: "https://github.com/Cognitive-Kernel/cognitive-kernel"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Cognitive Kernel Guide
|
|
14
|
-
|
|
15
|
-
## Overview
|
|
16
|
-
|
|
17
|
-
Cognitive Kernel is an autonomous agent framework designed for deep research tasks that require sustained reasoning over long horizons. Unlike single-shot agents, it maintains long-term memory across research sessions, builds incremental knowledge representations, and uses structured planning to decompose complex research questions. The system combines web search, paper reading, and code execution with persistent memory for accumulating expertise over time.
|
|
18
|
-
|
|
19
|
-
## Architecture
|
|
20
|
-
|
|
21
|
-
### Core Components
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
Research Question
|
|
25
|
-
↓
|
|
26
|
-
Planning Module (decomposes into subtasks)
|
|
27
|
-
↓
|
|
28
|
-
Execution Engine
|
|
29
|
-
├── Web Search Tool
|
|
30
|
-
├── Paper Reader Tool
|
|
31
|
-
├── Code Executor Tool
|
|
32
|
-
└── Calculator Tool
|
|
33
|
-
↓
|
|
34
|
-
Working Memory (session state)
|
|
35
|
-
↓
|
|
36
|
-
Long-term Memory (cross-session persistence)
|
|
37
|
-
↓
|
|
38
|
-
Reflection Module (evaluate + revise)
|
|
39
|
-
↓
|
|
40
|
-
Synthesized Answer
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### Memory System
|
|
44
|
-
|
|
45
|
-
| Memory Type | Scope | Purpose |
|
|
46
|
-
|-------------|-------|---------|
|
|
47
|
-
| **Working** | Current task | Active reasoning context |
|
|
48
|
-
| **Episodic** | Cross-session | Past research experiences |
|
|
49
|
-
| **Semantic** | Permanent | Accumulated domain knowledge |
|
|
50
|
-
| **Procedural** | Permanent | Learned research strategies |
|
|
51
|
-
|
|
52
|
-
## Usage
|
|
53
|
-
|
|
54
|
-
```python
|
|
55
|
-
from cognitive_kernel import CognitiveKernel
|
|
56
|
-
|
|
57
|
-
kernel = CognitiveKernel(
|
|
58
|
-
llm_provider="anthropic",
|
|
59
|
-
memory_backend="chromadb",
|
|
60
|
-
tools=["web_search", "paper_reader", "code_executor"],
|
|
61
|
-
)
|
|
62
|
-
|
|
63
|
-
# Deep research with persistent memory
|
|
64
|
-
result = kernel.research(
|
|
65
|
-
question="What are the theoretical limits of in-context learning "
|
|
66
|
-
"in transformer architectures, and how do recent results "
|
|
67
|
-
"on looped transformers change our understanding?",
|
|
68
|
-
max_iterations=10,
|
|
69
|
-
allow_code_execution=True,
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
print(result.answer)
|
|
73
|
-
print(f"Sources consulted: {len(result.sources)}")
|
|
74
|
-
print(f"Memory entries created: {result.new_memories}")
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Planning and Decomposition
|
|
78
|
-
|
|
79
|
-
```python
|
|
80
|
-
# The kernel automatically decomposes complex questions
|
|
81
|
-
plan = kernel.plan(
|
|
82
|
-
"Compare the sample efficiency of model-based vs model-free "
|
|
83
|
-
"reinforcement learning in robotics manipulation tasks"
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
for step in plan.steps:
|
|
87
|
-
print(f"Step {step.id}: {step.description}")
|
|
88
|
-
print(f" Tool: {step.tool}")
|
|
89
|
-
print(f" Dependencies: {step.depends_on}")
|
|
90
|
-
|
|
91
|
-
# Execute plan with monitoring
|
|
92
|
-
result = kernel.execute_plan(plan, verbose=True)
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## Long-term Memory
|
|
96
|
-
|
|
97
|
-
```python
|
|
98
|
-
# Memory persists across sessions
|
|
99
|
-
kernel = CognitiveKernel(memory_path="./research_memory")
|
|
100
|
-
|
|
101
|
-
# First session: research transformers
|
|
102
|
-
kernel.research("What is the attention mechanism in transformers?")
|
|
103
|
-
|
|
104
|
-
# Later session: builds on prior knowledge automatically
|
|
105
|
-
result = kernel.research(
|
|
106
|
-
"How does flash attention improve transformer efficiency?"
|
|
107
|
-
)
|
|
108
|
-
# Kernel recalls prior attention mechanism knowledge
|
|
109
|
-
|
|
110
|
-
# Query accumulated knowledge
|
|
111
|
-
memories = kernel.memory.search(
|
|
112
|
-
"attention mechanism efficiency",
|
|
113
|
-
top_k=10,
|
|
114
|
-
)
|
|
115
|
-
for mem in memories:
|
|
116
|
-
print(f"[{mem.timestamp}] {mem.content[:100]}...")
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## Reflection and Self-Correction
|
|
120
|
-
|
|
121
|
-
```python
|
|
122
|
-
# Built-in reflection after each research step
|
|
123
|
-
kernel = CognitiveKernel(
|
|
124
|
-
reflection_config={
|
|
125
|
-
"enabled": True,
|
|
126
|
-
"frequency": "every_step", # or "end_only"
|
|
127
|
-
"criteria": [
|
|
128
|
-
"factual_accuracy",
|
|
129
|
-
"completeness",
|
|
130
|
-
"logical_consistency",
|
|
131
|
-
],
|
|
132
|
-
"max_revisions": 3,
|
|
133
|
-
}
|
|
134
|
-
)
|
|
135
|
-
|
|
136
|
-
# Access reflection log
|
|
137
|
-
for entry in result.reflections:
|
|
138
|
-
print(f"Step {entry.step}: {entry.assessment}")
|
|
139
|
-
if entry.revision:
|
|
140
|
-
print(f" Revised: {entry.revision_reason}")
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## Tool Integration
|
|
144
|
-
|
|
145
|
-
```python
|
|
146
|
-
# Custom tool registration
|
|
147
|
-
from cognitive_kernel import Tool
|
|
148
|
-
|
|
149
|
-
@Tool(name="arxiv_search", description="Search arXiv papers")
|
|
150
|
-
def search_arxiv(query: str, max_results: int = 10) -> list:
|
|
151
|
-
import arxiv
|
|
152
|
-
search = arxiv.Search(query=query, max_results=max_results)
|
|
153
|
-
return [{"title": r.title, "abstract": r.summary}
|
|
154
|
-
for r in search.results()]
|
|
155
|
-
|
|
156
|
-
kernel.register_tool(search_arxiv)
|
|
157
|
-
|
|
158
|
-
# Code execution for data analysis
|
|
159
|
-
result = kernel.research(
|
|
160
|
-
"Analyze the publication trend of LLM papers on arXiv "
|
|
161
|
-
"from 2020 to 2025",
|
|
162
|
-
allow_code_execution=True, # enables matplotlib, pandas
|
|
163
|
-
)
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
## Configuration
|
|
167
|
-
|
|
168
|
-
```python
|
|
169
|
-
kernel = CognitiveKernel(
|
|
170
|
-
llm_provider="anthropic",
|
|
171
|
-
model="claude-sonnet-4-20250514",
|
|
172
|
-
memory_config={
|
|
173
|
-
"backend": "chromadb",
|
|
174
|
-
"embedding_model": "all-MiniLM-L6-v2",
|
|
175
|
-
"max_memories": 10000,
|
|
176
|
-
"similarity_threshold": 0.7,
|
|
177
|
-
},
|
|
178
|
-
planning_config={
|
|
179
|
-
"max_depth": 3, # Subtask nesting depth
|
|
180
|
-
"max_steps": 20, # Max steps per plan
|
|
181
|
-
"allow_replanning": True,
|
|
182
|
-
},
|
|
183
|
-
execution_config={
|
|
184
|
-
"timeout_per_step": 120, # seconds
|
|
185
|
-
"max_retries": 2,
|
|
186
|
-
},
|
|
187
|
-
)
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
## Use Cases
|
|
191
|
-
|
|
192
|
-
1. **Multi-session literature reviews**: Build expertise incrementally
|
|
193
|
-
2. **Technical deep dives**: Complex questions requiring code + search
|
|
194
|
-
3. **Research planning**: Decompose and explore research directions
|
|
195
|
-
4. **Knowledge base building**: Accumulate domain expertise over time
|
|
196
|
-
|
|
197
|
-
## References
|
|
198
|
-
|
|
199
|
-
- [Cognitive Kernel GitHub](https://github.com/Cognitive-Kernel/cognitive-kernel)
|
|
200
|
-
- [Cognitive Kernel Paper](https://arxiv.org/abs/2409.10925)
|