@wentorai/research-plugins 1.0.0 → 1.2.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 +22 -22
- package/curated/analysis/README.md +82 -56
- package/curated/domains/README.md +225 -69
- package/curated/literature/README.md +115 -46
- package/curated/research/README.md +106 -58
- package/curated/tools/README.md +107 -87
- package/curated/writing/README.md +92 -45
- package/mcp-configs/academic-db/alphafold-mcp.json +20 -0
- package/mcp-configs/academic-db/brightspace-mcp.json +21 -0
- package/mcp-configs/academic-db/climatiq-mcp.json +20 -0
- package/mcp-configs/academic-db/gibs-mcp.json +20 -0
- package/mcp-configs/academic-db/gis-mcp-server.json +22 -0
- package/mcp-configs/academic-db/google-earth-engine-mcp.json +21 -0
- package/mcp-configs/academic-db/m4-clinical-mcp.json +21 -0
- package/mcp-configs/academic-db/medical-mcp.json +21 -0
- package/mcp-configs/academic-db/nexonco-mcp.json +20 -0
- package/mcp-configs/academic-db/omop-mcp.json +20 -0
- package/mcp-configs/academic-db/onekgpd-mcp.json +20 -0
- package/mcp-configs/academic-db/openedu-mcp.json +20 -0
- package/mcp-configs/academic-db/opengenes-mcp.json +20 -0
- package/mcp-configs/academic-db/openstax-mcp.json +21 -0
- package/mcp-configs/academic-db/openstreetmap-mcp.json +21 -0
- package/mcp-configs/academic-db/opentargets-mcp.json +21 -0
- package/mcp-configs/academic-db/pdb-mcp.json +21 -0
- package/mcp-configs/academic-db/smithsonian-mcp.json +20 -0
- package/mcp-configs/ai-platform/magi-researchers.json +21 -0
- package/mcp-configs/ai-platform/mcp-academic-researcher.json +22 -0
- package/mcp-configs/ai-platform/open-paper-machine.json +21 -0
- package/mcp-configs/ai-platform/paper-intelligence.json +21 -0
- package/mcp-configs/ai-platform/paper-reader.json +21 -0
- package/mcp-configs/ai-platform/paperdebugger.json +21 -0
- package/mcp-configs/browser/exa-mcp.json +20 -0
- package/mcp-configs/browser/mcp-searxng.json +21 -0
- package/mcp-configs/browser/mcp-webresearch.json +20 -0
- package/mcp-configs/cloud-docs/confluence-mcp.json +37 -0
- package/mcp-configs/cloud-docs/google-drive-mcp.json +35 -0
- package/mcp-configs/cloud-docs/notion-mcp.json +29 -0
- package/mcp-configs/communication/discord-mcp.json +29 -0
- package/mcp-configs/communication/discourse-mcp.json +21 -0
- package/mcp-configs/communication/slack-mcp.json +29 -0
- package/mcp-configs/communication/telegram-mcp.json +28 -0
- package/mcp-configs/data-platform/automl-stat-mcp.json +21 -0
- package/mcp-configs/data-platform/jefferson-stats-mcp.json +22 -0
- package/mcp-configs/data-platform/mcp-excel-server.json +21 -0
- package/mcp-configs/data-platform/mcp-stata.json +21 -0
- package/mcp-configs/data-platform/mcpstack-jupyter.json +21 -0
- package/mcp-configs/data-platform/ml-mcp.json +21 -0
- package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +20 -0
- package/mcp-configs/data-platform/numpy-mcp.json +21 -0
- package/mcp-configs/database/neo4j-mcp.json +37 -0
- package/mcp-configs/database/postgres-mcp.json +28 -0
- package/mcp-configs/database/sqlite-mcp.json +29 -0
- package/mcp-configs/dev-platform/geogebra-mcp.json +21 -0
- package/mcp-configs/dev-platform/github-mcp.json +31 -0
- package/mcp-configs/dev-platform/gitlab-mcp.json +34 -0
- package/mcp-configs/dev-platform/latex-mcp-server.json +21 -0
- package/mcp-configs/dev-platform/manim-mcp.json +20 -0
- package/mcp-configs/dev-platform/mcp-echarts.json +20 -0
- package/mcp-configs/dev-platform/panel-viz-mcp.json +20 -0
- package/mcp-configs/dev-platform/paperbanana.json +20 -0
- package/mcp-configs/dev-platform/texflow-mcp.json +20 -0
- package/mcp-configs/dev-platform/texmcp.json +20 -0
- package/mcp-configs/dev-platform/typst-mcp.json +21 -0
- package/mcp-configs/dev-platform/vizro-mcp.json +20 -0
- package/mcp-configs/email/email-mcp.json +40 -0
- package/mcp-configs/email/gmail-mcp.json +37 -0
- package/mcp-configs/note-knowledge/local-faiss-mcp.json +21 -0
- package/mcp-configs/note-knowledge/mcp-memory-service.json +21 -0
- package/mcp-configs/note-knowledge/mcp-obsidian.json +23 -0
- package/mcp-configs/note-knowledge/mcp-ragdocs.json +20 -0
- package/mcp-configs/note-knowledge/mcp-summarizer.json +21 -0
- package/mcp-configs/note-knowledge/mediawiki-mcp.json +21 -0
- package/mcp-configs/note-knowledge/openzim-mcp.json +20 -0
- package/mcp-configs/note-knowledge/zettelkasten-mcp.json +21 -0
- package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +20 -0
- package/mcp-configs/reference-mgr/academix.json +20 -0
- package/mcp-configs/reference-mgr/arxiv-research-mcp.json +21 -0
- package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +19 -0
- package/mcp-configs/reference-mgr/google-scholar-mcp.json +20 -0
- package/mcp-configs/reference-mgr/mcp-paperswithcode.json +21 -0
- package/mcp-configs/reference-mgr/mcp-scholarly.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +20 -0
- package/mcp-configs/reference-mgr/mcp-zotero.json +21 -0
- package/mcp-configs/reference-mgr/mendeley-mcp.json +20 -0
- package/mcp-configs/reference-mgr/ncbi-mcp-server.json +22 -0
- package/mcp-configs/reference-mgr/onecite.json +21 -0
- package/mcp-configs/reference-mgr/paper-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/pubmed-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-multi-mcp.json +21 -0
- package/mcp-configs/reference-mgr/seerai.json +21 -0
- package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +21 -0
- package/mcp-configs/reference-mgr/sourcelibrary.json +20 -0
- package/mcp-configs/registry.json +178 -149
- package/mcp-configs/repository/dataverse-mcp.json +33 -0
- package/mcp-configs/repository/huggingface-mcp.json +29 -0
- package/openclaw.plugin.json +2 -2
- package/package.json +2 -2
- package/skills/analysis/dataviz/algorithm-visualizer-guide/SKILL.md +259 -0
- package/skills/analysis/dataviz/bokeh-visualization-guide/SKILL.md +270 -0
- package/skills/analysis/dataviz/chart-image-generator/SKILL.md +229 -0
- package/skills/analysis/dataviz/citation-map-guide/SKILL.md +184 -0
- package/skills/analysis/dataviz/d3-visualization-guide/SKILL.md +281 -0
- package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +171 -0
- package/skills/analysis/dataviz/echarts-visualization-guide/SKILL.md +250 -0
- package/skills/analysis/dataviz/metabase-analytics-guide/SKILL.md +242 -0
- package/skills/analysis/dataviz/plotly-interactive-guide/SKILL.md +266 -0
- package/skills/analysis/dataviz/redash-analytics-guide/SKILL.md +284 -0
- package/skills/analysis/econometrics/econml-causal-guide/SKILL.md +163 -0
- package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +192 -0
- package/skills/analysis/econometrics/mostly-harmless-guide/SKILL.md +139 -0
- package/skills/analysis/econometrics/panel-data-analyst/SKILL.md +259 -0
- package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +267 -0
- package/skills/analysis/econometrics/python-causality-guide/SKILL.md +134 -0
- package/skills/analysis/econometrics/stata-accounting-guide/SKILL.md +269 -0
- package/skills/analysis/econometrics/stata-analyst-guide/SKILL.md +245 -0
- package/skills/analysis/econometrics/stata-reference-guide/SKILL.md +293 -0
- package/skills/analysis/statistics/data-anomaly-detection/SKILL.md +157 -0
- package/skills/analysis/statistics/general-statistics-guide/SKILL.md +226 -0
- package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +106 -0
- package/skills/analysis/statistics/ml-experiment-tracker/SKILL.md +212 -0
- package/skills/analysis/statistics/pywayne-statistics-guide/SKILL.md +192 -0
- package/skills/analysis/statistics/quantitative-methods-guide/SKILL.md +193 -0
- package/skills/analysis/statistics/senior-data-scientist-guide/SKILL.md +223 -0
- package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +100 -0
- package/skills/analysis/wrangling/csv-data-analyzer/SKILL.md +170 -0
- package/skills/analysis/wrangling/data-cleaning-pipeline/SKILL.md +266 -0
- package/skills/analysis/wrangling/data-cog-guide/SKILL.md +178 -0
- package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +197 -0
- package/skills/analysis/wrangling/stata-data-cleaning/SKILL.md +276 -0
- package/skills/analysis/wrangling/streamline-analyst-guide/SKILL.md +119 -0
- package/skills/analysis/wrangling/survey-data-processing/SKILL.md +298 -0
- package/skills/domains/ai-ml/ai-agent-papers-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/ai-model-benchmarking/SKILL.md +209 -0
- package/skills/domains/ai-ml/annotated-dl-papers-guide/SKILL.md +159 -0
- package/skills/domains/ai-ml/anomaly-detection-papers-guide/SKILL.md +167 -0
- package/skills/domains/ai-ml/autonomous-agents-papers-guide/SKILL.md +178 -0
- package/skills/domains/ai-ml/dl-transformer-finetune/SKILL.md +239 -0
- package/skills/domains/ai-ml/domain-adaptation-papers-guide/SKILL.md +173 -0
- package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/graph-learning-papers-guide/SKILL.md +125 -0
- package/skills/domains/ai-ml/huggingface-inference-guide/SKILL.md +196 -0
- package/skills/domains/ai-ml/keras-deep-learning/SKILL.md +210 -0
- package/skills/domains/ai-ml/kolmogorov-arnold-networks-guide/SKILL.md +185 -0
- package/skills/domains/ai-ml/llm-from-scratch-guide/SKILL.md +124 -0
- package/skills/domains/ai-ml/ml-pipeline-guide/SKILL.md +295 -0
- package/skills/domains/ai-ml/nlp-toolkit-guide/SKILL.md +247 -0
- package/skills/domains/ai-ml/npcpy-research-guide/SKILL.md +137 -0
- package/skills/domains/ai-ml/pytorch-guide/SKILL.md +281 -0
- package/skills/domains/ai-ml/pytorch-lightning-guide/SKILL.md +244 -0
- package/skills/domains/ai-ml/responsible-ai-guide/SKILL.md +126 -0
- package/skills/domains/ai-ml/tensorflow-guide/SKILL.md +241 -0
- package/skills/domains/ai-ml/vmas-simulator-guide/SKILL.md +129 -0
- package/skills/domains/biomedical/bioagents-guide/SKILL.md +308 -0
- package/skills/domains/biomedical/clawbio-guide/SKILL.md +167 -0
- package/skills/domains/biomedical/clinical-dialogue-agents-guide/SKILL.md +145 -0
- package/skills/domains/biomedical/ena-sequence-api/SKILL.md +175 -0
- package/skills/domains/biomedical/genomas-guide/SKILL.md +126 -0
- package/skills/domains/biomedical/genotex-benchmark-guide/SKILL.md +125 -0
- package/skills/domains/biomedical/med-researcher-guide/SKILL.md +161 -0
- package/skills/domains/biomedical/med-researcher-r1-guide/SKILL.md +146 -0
- package/skills/domains/biomedical/medgeclaw-guide/SKILL.md +345 -0
- package/skills/domains/biomedical/medical-imaging-guide/SKILL.md +305 -0
- package/skills/domains/biomedical/ncbi-blast-api/SKILL.md +195 -0
- package/skills/domains/biomedical/ncbi-datasets-api/SKILL.md +220 -0
- package/skills/domains/biomedical/quickgo-api/SKILL.md +181 -0
- package/skills/domains/business/architecture-design-guide/SKILL.md +279 -0
- package/skills/domains/business/innovation-management-guide/SKILL.md +257 -0
- package/skills/domains/business/operations-research-guide/SKILL.md +258 -0
- package/skills/domains/business/xpert-bi-guide/SKILL.md +84 -0
- package/skills/domains/chemistry/cactus-cheminformatics-guide/SKILL.md +89 -0
- package/skills/domains/chemistry/chemeagle-guide/SKILL.md +147 -0
- package/skills/domains/chemistry/chemgraph-agent-guide/SKILL.md +120 -0
- package/skills/domains/chemistry/molecular-dynamics-guide/SKILL.md +237 -0
- package/skills/domains/chemistry/pubchem-api-guide/SKILL.md +180 -0
- package/skills/domains/chemistry/spectroscopy-analysis-guide/SKILL.md +290 -0
- package/skills/domains/cs/ai-security-papers-guide/SKILL.md +103 -0
- package/skills/domains/cs/code-llm-papers-guide/SKILL.md +131 -0
- package/skills/domains/cs/distributed-systems-guide/SKILL.md +268 -0
- package/skills/domains/cs/formal-verification-guide/SKILL.md +298 -0
- package/skills/domains/cs/gaussian-splatting-papers-guide/SKILL.md +158 -0
- package/skills/domains/cs/llm-aiops-guide/SKILL.md +70 -0
- package/skills/domains/cs/software-heritage-api/SKILL.md +200 -0
- package/skills/domains/ecology/species-distribution-guide/SKILL.md +343 -0
- package/skills/domains/economics/imf-data-api-guide/SKILL.md +174 -0
- package/skills/domains/economics/nber-working-papers-api/SKILL.md +177 -0
- package/skills/domains/economics/post-labor-economics/SKILL.md +254 -0
- package/skills/domains/economics/pricing-psychology-guide/SKILL.md +273 -0
- package/skills/domains/economics/repec-economics-api/SKILL.md +188 -0
- package/skills/domains/economics/world-bank-data-guide/SKILL.md +179 -0
- package/skills/domains/education/academic-study-methods/SKILL.md +228 -0
- package/skills/domains/education/assessment-design-guide/SKILL.md +213 -0
- package/skills/domains/education/educational-research-methods/SKILL.md +179 -0
- package/skills/domains/education/edumcp-guide/SKILL.md +74 -0
- package/skills/domains/education/mooc-analytics-guide/SKILL.md +206 -0
- package/skills/domains/education/open-syllabus-api/SKILL.md +171 -0
- package/skills/domains/finance/akshare-finance-data/SKILL.md +207 -0
- package/skills/domains/finance/finsight-research-guide/SKILL.md +113 -0
- package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +117 -0
- package/skills/domains/finance/portfolio-optimization-guide/SKILL.md +279 -0
- package/skills/domains/finance/risk-modeling-guide/SKILL.md +260 -0
- package/skills/domains/finance/stata-accounting-research/SKILL.md +372 -0
- package/skills/domains/geoscience/climate-modeling-guide/SKILL.md +215 -0
- package/skills/domains/geoscience/pangaea-data-api/SKILL.md +197 -0
- package/skills/domains/geoscience/satellite-remote-sensing/SKILL.md +193 -0
- package/skills/domains/geoscience/seismology-data-guide/SKILL.md +208 -0
- package/skills/domains/humanities/digital-humanities-methods/SKILL.md +232 -0
- package/skills/domains/humanities/ethical-philosophy-guide/SKILL.md +244 -0
- package/skills/domains/humanities/history-research-guide/SKILL.md +260 -0
- package/skills/domains/humanities/political-history-guide/SKILL.md +241 -0
- package/skills/domains/law/caselaw-access-api/SKILL.md +149 -0
- package/skills/domains/law/legal-agent-skills-guide/SKILL.md +132 -0
- package/skills/domains/law/legal-nlp-guide/SKILL.md +236 -0
- package/skills/domains/law/legal-research-methods/SKILL.md +190 -0
- package/skills/domains/law/opencontracts-guide/SKILL.md +168 -0
- package/skills/domains/law/patent-analysis-guide/SKILL.md +257 -0
- package/skills/domains/law/regulatory-compliance-guide/SKILL.md +267 -0
- package/skills/domains/math/lean-theorem-proving-guide/SKILL.md +140 -0
- package/skills/domains/math/symbolic-computation-guide/SKILL.md +263 -0
- package/skills/domains/math/topology-data-analysis/SKILL.md +305 -0
- package/skills/domains/pharma/clinical-trial-design-guide/SKILL.md +271 -0
- package/skills/domains/pharma/drug-target-interaction/SKILL.md +242 -0
- package/skills/domains/pharma/madd-drug-discovery-guide/SKILL.md +153 -0
- package/skills/domains/pharma/pharmacovigilance-guide/SKILL.md +216 -0
- package/skills/domains/physics/astrophysics-data-guide/SKILL.md +305 -0
- package/skills/domains/physics/particle-physics-guide/SKILL.md +287 -0
- package/skills/domains/social-science/ipums-microdata-api/SKILL.md +211 -0
- package/skills/domains/social-science/network-analysis-guide/SKILL.md +310 -0
- package/skills/domains/social-science/psychology-research-guide/SKILL.md +270 -0
- package/skills/domains/social-science/sociology-research-guide/SKILL.md +238 -0
- package/skills/domains/social-science/sociology-research-methods/SKILL.md +181 -0
- package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +233 -0
- package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +120 -0
- package/skills/literature/discovery/papers-we-love-guide/SKILL.md +169 -0
- package/skills/literature/discovery/semantic-paper-radar/SKILL.md +144 -0
- package/skills/literature/discovery/zotero-arxiv-daily-guide/SKILL.md +94 -0
- package/skills/literature/fulltext/bioc-pmc-api/SKILL.md +146 -0
- package/skills/literature/fulltext/core-api-guide/SKILL.md +144 -0
- package/skills/literature/fulltext/dataverse-api/SKILL.md +215 -0
- package/skills/literature/fulltext/hal-archive-api/SKILL.md +218 -0
- package/skills/literature/fulltext/institutional-repository-guide/SKILL.md +212 -0
- package/skills/literature/fulltext/open-access-mining-guide/SKILL.md +341 -0
- package/skills/literature/fulltext/osf-api/SKILL.md +212 -0
- package/skills/literature/fulltext/pmc-ftp-bulk-download/SKILL.md +182 -0
- package/skills/literature/fulltext/zotero-ai-butler-guide/SKILL.md +166 -0
- package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +168 -0
- package/skills/literature/metadata/academic-paper-summarizer/SKILL.md +101 -0
- package/skills/literature/metadata/bibliometrix-guide/SKILL.md +164 -0
- package/skills/literature/metadata/crossref-event-data-api/SKILL.md +183 -0
- package/skills/literature/metadata/doi-content-negotiation/SKILL.md +202 -0
- package/skills/literature/metadata/orkg-api/SKILL.md +153 -0
- package/skills/literature/metadata/plumx-metrics-api/SKILL.md +188 -0
- package/skills/literature/metadata/ror-organization-api/SKILL.md +208 -0
- package/skills/literature/metadata/sophosia-reference-guide/SKILL.md +110 -0
- package/skills/literature/metadata/viaf-authority-api/SKILL.md +209 -0
- package/skills/literature/metadata/wikidata-api-guide/SKILL.md +156 -0
- package/skills/literature/metadata/zoplicate-dedup-guide/SKILL.md +147 -0
- package/skills/literature/metadata/zotero-actions-tags-guide/SKILL.md +212 -0
- package/skills/literature/metadata/zotmoov-guide/SKILL.md +120 -0
- package/skills/literature/metadata/zutilo-guide/SKILL.md +140 -0
- package/skills/literature/search/arxiv-batch-reporting/SKILL.md +133 -0
- package/skills/literature/search/arxiv-cli-tools/SKILL.md +172 -0
- package/skills/literature/search/arxiv-osiris/SKILL.md +199 -0
- package/skills/literature/search/arxiv-paper-processor/SKILL.md +141 -0
- package/skills/literature/search/baidu-scholar-guide/SKILL.md +110 -0
- package/skills/literature/search/base-academic-search/SKILL.md +196 -0
- package/skills/literature/search/chatpaper-guide/SKILL.md +122 -0
- package/skills/literature/search/citeseerx-api/SKILL.md +183 -0
- package/skills/literature/search/deep-literature-search/SKILL.md +149 -0
- package/skills/literature/search/deepgit-search-guide/SKILL.md +147 -0
- package/skills/literature/search/eric-education-api/SKILL.md +199 -0
- package/skills/literature/search/findpapers-guide/SKILL.md +177 -0
- package/skills/literature/search/ieee-xplore-api/SKILL.md +177 -0
- package/skills/literature/search/lens-scholarly-api/SKILL.md +211 -0
- package/skills/literature/search/multi-database-literature-search/SKILL.md +198 -0
- package/skills/literature/search/open-library-api/SKILL.md +196 -0
- package/skills/literature/search/open-semantic-search-guide/SKILL.md +190 -0
- package/skills/literature/search/openaire-api/SKILL.md +141 -0
- package/skills/literature/search/paper-search-mcp-guide/SKILL.md +107 -0
- package/skills/literature/search/papers-chat-guide/SKILL.md +194 -0
- package/skills/literature/search/pasa-paper-search-guide/SKILL.md +138 -0
- package/skills/literature/search/plos-open-access-api/SKILL.md +203 -0
- package/skills/literature/search/scielo-api/SKILL.md +182 -0
- package/skills/literature/search/share-research-api/SKILL.md +129 -0
- package/skills/literature/search/worldcat-search-api/SKILL.md +224 -0
- package/skills/research/automation/ai-scientist-v2-guide/SKILL.md +284 -0
- package/skills/research/automation/aim-experiment-guide/SKILL.md +234 -0
- package/skills/research/automation/claude-academic-workflow-guide/SKILL.md +202 -0
- package/skills/research/automation/coexist-ai-guide/SKILL.md +149 -0
- package/skills/research/automation/datagen-research-guide/SKILL.md +131 -0
- package/skills/research/automation/foam-agent-guide/SKILL.md +203 -0
- package/skills/research/automation/kedro-pipeline-guide/SKILL.md +216 -0
- package/skills/research/automation/mle-agent-guide/SKILL.md +139 -0
- package/skills/research/automation/paper-to-agent-guide/SKILL.md +116 -0
- package/skills/research/automation/rd-agent-guide/SKILL.md +246 -0
- package/skills/research/automation/research-paper-orchestrator/SKILL.md +254 -0
- package/skills/research/deep-research/academic-deep-research/SKILL.md +190 -0
- package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +141 -0
- package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +200 -0
- package/skills/research/deep-research/corvus-research-guide/SKILL.md +132 -0
- package/skills/research/deep-research/deep-research-pro/SKILL.md +213 -0
- package/skills/research/deep-research/deep-research-work/SKILL.md +204 -0
- package/skills/research/deep-research/deep-searcher-guide/SKILL.md +253 -0
- package/skills/research/deep-research/gpt-researcher-guide/SKILL.md +191 -0
- package/skills/research/deep-research/in-depth-research-guide/SKILL.md +205 -0
- package/skills/research/deep-research/khoj-research-guide/SKILL.md +200 -0
- package/skills/research/deep-research/kosmos-scientist-guide/SKILL.md +185 -0
- package/skills/research/deep-research/llm-scientific-discovery-guide/SKILL.md +178 -0
- package/skills/research/deep-research/local-deep-research-guide/SKILL.md +253 -0
- package/skills/research/deep-research/open-researcher-guide/SKILL.md +138 -0
- package/skills/research/deep-research/tongyi-deep-research-guide/SKILL.md +217 -0
- package/skills/research/funding/eu-horizon-guide/SKILL.md +244 -0
- package/skills/research/funding/grant-budget-guide/SKILL.md +284 -0
- package/skills/research/funding/nih-reporter-api-guide/SKILL.md +166 -0
- package/skills/research/funding/nsf-award-api-guide/SKILL.md +133 -0
- package/skills/research/methodology/academic-mentor-guide/SKILL.md +169 -0
- package/skills/research/methodology/claude-scientific-guide/SKILL.md +122 -0
- package/skills/research/methodology/deep-innovator-guide/SKILL.md +242 -0
- package/skills/research/methodology/osf-api-guide/SKILL.md +165 -0
- package/skills/research/methodology/parsifal-slr-guide/SKILL.md +154 -0
- package/skills/research/methodology/research-paper-kb/SKILL.md +263 -0
- package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +169 -0
- package/skills/research/methodology/research-town-guide/SKILL.md +263 -0
- package/skills/research/methodology/slr-automation-guide/SKILL.md +235 -0
- package/skills/research/paper-review/automated-review-guide/SKILL.md +281 -0
- package/skills/research/paper-review/latte-review-guide/SKILL.md +175 -0
- package/skills/research/paper-review/paper-compare-guide/SKILL.md +238 -0
- package/skills/research/paper-review/paper-critique-framework/SKILL.md +181 -0
- package/skills/research/paper-review/paper-digest-guide/SKILL.md +240 -0
- package/skills/research/paper-review/paper-research-assistant/SKILL.md +231 -0
- package/skills/research/paper-review/research-quality-filter/SKILL.md +261 -0
- package/skills/research/paper-review/review-response-guide/SKILL.md +275 -0
- package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +110 -0
- package/skills/tools/code-exec/google-colab-guide/SKILL.md +276 -0
- package/skills/tools/code-exec/kaggle-api-guide/SKILL.md +216 -0
- package/skills/tools/code-exec/overleaf-cli-guide/SKILL.md +279 -0
- package/skills/tools/diagram/clawphd-guide/SKILL.md +149 -0
- package/skills/tools/diagram/code-flow-visualizer/SKILL.md +197 -0
- package/skills/tools/diagram/excalidraw-diagram-guide/SKILL.md +170 -0
- package/skills/tools/diagram/json-data-visualizer/SKILL.md +270 -0
- package/skills/tools/diagram/kroki-diagram-api/SKILL.md +198 -0
- package/skills/tools/diagram/mermaid-architect-guide/SKILL.md +219 -0
- package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +201 -0
- package/skills/tools/diagram/tldraw-whiteboard-guide/SKILL.md +397 -0
- package/skills/tools/document/docsgpt-guide/SKILL.md +130 -0
- package/skills/tools/document/large-document-reader/SKILL.md +202 -0
- package/skills/tools/document/md2pdf-xelatex/SKILL.md +212 -0
- package/skills/tools/document/openpaper-guide/SKILL.md +232 -0
- package/skills/tools/document/paper-parse-guide/SKILL.md +243 -0
- package/skills/tools/document/weknora-guide/SKILL.md +216 -0
- package/skills/tools/document/zotero-addon-market-guide/SKILL.md +108 -0
- package/skills/tools/document/zotero-night-theme-guide/SKILL.md +142 -0
- package/skills/tools/document/zotero-style-guide/SKILL.md +217 -0
- package/skills/tools/knowledge-graph/citation-network-builder/SKILL.md +244 -0
- package/skills/tools/knowledge-graph/concept-map-generator/SKILL.md +284 -0
- package/skills/tools/knowledge-graph/graphiti-guide/SKILL.md +219 -0
- package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +135 -0
- package/skills/tools/knowledge-graph/notero-zotero-notion-guide/SKILL.md +187 -0
- package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +156 -0
- package/skills/tools/knowledge-graph/openspg-guide/SKILL.md +210 -0
- package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +84 -0
- package/skills/tools/knowledge-graph/zotero-markdb-connect-guide/SKILL.md +162 -0
- package/skills/tools/ocr-translate/latex-translation-guide/SKILL.md +176 -0
- package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +198 -0
- package/skills/tools/ocr-translate/pdf-math-translate-guide/SKILL.md +141 -0
- package/skills/tools/ocr-translate/zotero-pdf-translate-guide/SKILL.md +95 -0
- package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +143 -0
- package/skills/tools/scraping/dataset-finder-guide/SKILL.md +253 -0
- package/skills/tools/scraping/easy-spider-guide/SKILL.md +250 -0
- package/skills/tools/scraping/google-scholar-scraper/SKILL.md +255 -0
- package/skills/tools/scraping/repository-harvesting-guide/SKILL.md +310 -0
- package/skills/writing/citation/academic-citation-manager/SKILL.md +314 -0
- package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +182 -0
- package/skills/writing/citation/citation-assistant-skill/SKILL.md +192 -0
- package/skills/writing/citation/jabref-reference-guide/SKILL.md +127 -0
- package/skills/writing/citation/jasminum-zotero-guide/SKILL.md +103 -0
- package/skills/writing/citation/mendeley-api/SKILL.md +231 -0
- package/skills/writing/citation/obsidian-citation-guide/SKILL.md +164 -0
- package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +137 -0
- package/skills/writing/citation/onecite-reference-guide/SKILL.md +168 -0
- package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +132 -0
- package/skills/writing/citation/papis-cli-guide/SKILL.md +213 -0
- package/skills/writing/citation/zotero-better-bibtex-guide/SKILL.md +107 -0
- package/skills/writing/citation/zotero-better-notes-guide/SKILL.md +121 -0
- package/skills/writing/citation/zotero-gpt-guide/SKILL.md +111 -0
- package/skills/writing/citation/zotero-mcp-guide/SKILL.md +164 -0
- package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +162 -0
- package/skills/writing/citation/zotero-reference-guide/SKILL.md +139 -0
- package/skills/writing/citation/zotero-scholar-guide/SKILL.md +294 -0
- package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +140 -0
- package/skills/writing/composition/ml-paper-writing/SKILL.md +163 -0
- package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +200 -0
- package/skills/writing/composition/paper-debugger-guide/SKILL.md +143 -0
- package/skills/writing/composition/paperforge-guide/SKILL.md +205 -0
- package/skills/writing/composition/research-paper-writer/SKILL.md +226 -0
- package/skills/writing/composition/scientific-writing-resources/SKILL.md +151 -0
- package/skills/writing/composition/scientific-writing-wrapper/SKILL.md +153 -0
- package/skills/writing/latex/academic-writing-latex/SKILL.md +285 -0
- package/skills/writing/latex/latex-drawing-collection/SKILL.md +154 -0
- package/skills/writing/latex/latex-templates-collection/SKILL.md +159 -0
- package/skills/writing/latex/md-to-pdf-academic/SKILL.md +230 -0
- package/skills/writing/latex/tex-render-guide/SKILL.md +243 -0
- package/skills/writing/polish/academic-tone-guide/SKILL.md +209 -0
- package/skills/writing/polish/chinese-text-humanizer/SKILL.md +140 -0
- package/skills/writing/polish/conciseness-editing-guide/SKILL.md +225 -0
- package/skills/writing/polish/paper-polish-guide/SKILL.md +160 -0
- package/skills/writing/templates/arxiv-preprint-template/SKILL.md +184 -0
- package/skills/writing/templates/elegant-paper-template/SKILL.md +141 -0
- package/skills/writing/templates/graphical-abstract-guide/SKILL.md +183 -0
- package/skills/writing/templates/novathesis-guide/SKILL.md +152 -0
- package/skills/writing/templates/scientific-article-pdf/SKILL.md +261 -0
- package/skills/writing/templates/sjtuthesis-guide/SKILL.md +197 -0
- package/skills/writing/templates/thuthesis-guide/SKILL.md +181 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +0 -207
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-scientist-v2-guide
|
|
3
|
+
description: "Automated scientific discovery via agentic tree search by Sakana AI"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🧪"
|
|
7
|
+
category: "research"
|
|
8
|
+
subcategory: "automation"
|
|
9
|
+
keywords: ["scientific-discovery", "automation", "tree-search", "paper-generation", "experiment-design", "sakana-ai"]
|
|
10
|
+
source: "https://github.com/SakanaAI/AI-Scientist-v2"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# AI Scientist v2 Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
AI-Scientist-v2 is an open-source system developed by Sakana AI with over 2,000 GitHub stars that automates the full scientific research pipeline -- from idea generation through experimentation to paper writing. Building on the original AI Scientist, version 2 introduces an agentic tree search approach that systematically explores the space of research ideas, designs and runs experiments, analyzes results, and produces workshop-level scientific papers with minimal human intervention.
|
|
18
|
+
|
|
19
|
+
The key innovation in v2 is the tree search mechanism. Rather than pursuing a single research direction linearly, the system maintains a tree of possible research trajectories. At each node, the agent can branch into multiple experimental variations, evaluate the results, and prune unpromising directions while doubling down on successful ones. This mirrors how experienced researchers navigate the research landscape -- exploring broadly at first, then focusing resources on the most promising leads.
|
|
20
|
+
|
|
21
|
+
AI-Scientist-v2 has demonstrated the ability to generate novel, valid research papers in machine learning subfields including diffusion models, language model training, and optimization. While the generated papers are currently at workshop acceptance level, the system represents a significant step toward autonomous scientific discovery and is an invaluable tool for researchers looking to automate the more mechanical aspects of their research workflow.
|
|
22
|
+
|
|
23
|
+
## Installation and Setup
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Clone the repository
|
|
27
|
+
git clone https://github.com/SakanaAI/AI-Scientist-v2.git
|
|
28
|
+
cd AI-Scientist-v2
|
|
29
|
+
|
|
30
|
+
# Create a conda environment
|
|
31
|
+
conda create -n ai-scientist python=3.11
|
|
32
|
+
conda activate ai-scientist
|
|
33
|
+
|
|
34
|
+
# Install dependencies
|
|
35
|
+
pip install -r requirements.txt
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Prerequisites
|
|
39
|
+
|
|
40
|
+
AI-Scientist-v2 requires several components:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# LLM API access (required for ideation, analysis, and writing)
|
|
44
|
+
export OPENAI_API_KEY=$OPENAI_API_KEY
|
|
45
|
+
# Or Anthropic
|
|
46
|
+
export ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY
|
|
47
|
+
|
|
48
|
+
# GPU access for running ML experiments
|
|
49
|
+
# Recommended: at least one NVIDIA GPU with 24GB+ VRAM
|
|
50
|
+
|
|
51
|
+
# LaTeX installation for paper compilation
|
|
52
|
+
# Ubuntu/Debian
|
|
53
|
+
sudo apt-get install texlive-full
|
|
54
|
+
|
|
55
|
+
# macOS
|
|
56
|
+
brew install --cask mactex
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Configuration
|
|
60
|
+
|
|
61
|
+
Set up your research configuration:
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
# config.yaml
|
|
65
|
+
llm:
|
|
66
|
+
provider: "openai"
|
|
67
|
+
model: "gpt-4o"
|
|
68
|
+
temperature: 0.7
|
|
69
|
+
|
|
70
|
+
search:
|
|
71
|
+
max_depth: 5 # Maximum tree depth
|
|
72
|
+
branching_factor: 3 # Number of branches per node
|
|
73
|
+
pruning_threshold: 0.3 # Prune branches below this score
|
|
74
|
+
|
|
75
|
+
experiment:
|
|
76
|
+
gpu_ids: [0, 1] # Available GPUs
|
|
77
|
+
timeout_hours: 2 # Max time per experiment
|
|
78
|
+
num_seeds: 3 # Random seeds per experiment
|
|
79
|
+
|
|
80
|
+
paper:
|
|
81
|
+
template: "icml" # Paper template (icml, neurips, iclr)
|
|
82
|
+
max_pages: 8 # Maximum paper length
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Core Research Pipeline
|
|
86
|
+
|
|
87
|
+
### Phase 1: Idea Generation
|
|
88
|
+
|
|
89
|
+
The system generates research ideas by analyzing existing literature and identifying gaps or extensions:
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
from ai_scientist import IdeaGenerator
|
|
93
|
+
|
|
94
|
+
generator = IdeaGenerator(
|
|
95
|
+
research_area="efficient_transformers",
|
|
96
|
+
seed_papers=[
|
|
97
|
+
"path/to/related_paper_1.pdf",
|
|
98
|
+
"path/to/related_paper_2.pdf",
|
|
99
|
+
],
|
|
100
|
+
num_ideas=10,
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
ideas = generator.generate()
|
|
104
|
+
for idea in ideas:
|
|
105
|
+
print(f"Title: {idea.title}")
|
|
106
|
+
print(f"Hypothesis: {idea.hypothesis}")
|
|
107
|
+
print(f"Novelty score: {idea.novelty_score}")
|
|
108
|
+
print(f"Feasibility score: {idea.feasibility_score}")
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Phase 2: Agentic Tree Search
|
|
112
|
+
|
|
113
|
+
The tree search mechanism explores the research space systematically:
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
from ai_scientist import TreeSearchResearcher
|
|
117
|
+
|
|
118
|
+
researcher = TreeSearchResearcher(
|
|
119
|
+
idea=ideas[0], # Start with the top-ranked idea
|
|
120
|
+
base_code="templates/efficient_transformer/",
|
|
121
|
+
config="config.yaml",
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
# Run the tree search
|
|
125
|
+
result = researcher.run()
|
|
126
|
+
|
|
127
|
+
# The search tree tracks all explorations
|
|
128
|
+
print(f"Tree depth reached: {result.max_depth}")
|
|
129
|
+
print(f"Total experiments run: {result.total_experiments}")
|
|
130
|
+
print(f"Best result: {result.best_node.metrics}")
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The tree search works as follows:
|
|
134
|
+
|
|
135
|
+
1. **Root node**: The initial research idea and baseline implementation
|
|
136
|
+
2. **Expansion**: At each node, the agent proposes 2-4 modifications (hyperparameter changes, architectural tweaks, new training strategies)
|
|
137
|
+
3. **Evaluation**: Each modification is implemented and evaluated experimentally
|
|
138
|
+
4. **Selection**: Promising branches are selected for further exploration using UCB (Upper Confidence Bound) or similar strategies
|
|
139
|
+
5. **Pruning**: Branches that underperform the baseline or show diminishing returns are pruned
|
|
140
|
+
|
|
141
|
+
### Phase 3: Experiment Execution
|
|
142
|
+
|
|
143
|
+
Experiments are executed in isolated environments with proper controls:
|
|
144
|
+
|
|
145
|
+
```python
|
|
146
|
+
# Each experiment node contains:
|
|
147
|
+
class ExperimentNode:
|
|
148
|
+
hypothesis: str # What we're testing
|
|
149
|
+
code_changes: list # Specific code modifications
|
|
150
|
+
config_changes: dict # Hyperparameter changes
|
|
151
|
+
results: dict # Experimental results
|
|
152
|
+
analysis: str # LLM-generated analysis
|
|
153
|
+
children: list # Branch experiments
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
The system automatically handles experiment boilerplate including random seed management, metric logging, checkpoint saving, and result visualization. Each experiment is run with multiple seeds to ensure statistical significance.
|
|
157
|
+
|
|
158
|
+
### Phase 4: Paper Generation
|
|
159
|
+
|
|
160
|
+
After the tree search completes, the system generates a scientific paper:
|
|
161
|
+
|
|
162
|
+
```python
|
|
163
|
+
from ai_scientist import PaperWriter
|
|
164
|
+
|
|
165
|
+
writer = PaperWriter(
|
|
166
|
+
research_result=result,
|
|
167
|
+
template="neurips",
|
|
168
|
+
sections=[
|
|
169
|
+
"introduction",
|
|
170
|
+
"related_work",
|
|
171
|
+
"method",
|
|
172
|
+
"experiments",
|
|
173
|
+
"analysis",
|
|
174
|
+
"conclusion",
|
|
175
|
+
],
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
# Generate the paper
|
|
179
|
+
paper = writer.write()
|
|
180
|
+
|
|
181
|
+
# Compile to PDF
|
|
182
|
+
paper.compile_latex("output/paper.pdf")
|
|
183
|
+
|
|
184
|
+
# The paper includes:
|
|
185
|
+
# - Abstract summarizing key findings
|
|
186
|
+
# - Introduction with motivation and contributions
|
|
187
|
+
# - Related work section with citations
|
|
188
|
+
# - Method description with equations
|
|
189
|
+
# - Experiment section with tables and figures
|
|
190
|
+
# - Analysis of results with ablation studies
|
|
191
|
+
# - Conclusion with future work directions
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Research Templates
|
|
195
|
+
|
|
196
|
+
AI-Scientist-v2 includes several research templates that define the experimental domain:
|
|
197
|
+
|
|
198
|
+
### NanoGPT Template
|
|
199
|
+
Train and evaluate small language models with various architectural modifications:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
python run_scientist.py \
|
|
203
|
+
--template nanoGPT \
|
|
204
|
+
--idea "Investigate the effect of rotary position embeddings on small-scale language model training" \
|
|
205
|
+
--max_experiments 20
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Diffusion Model Template
|
|
209
|
+
Experiment with diffusion model architectures and training strategies:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
python run_scientist.py \
|
|
213
|
+
--template diffusion \
|
|
214
|
+
--idea "Compare noise schedules for conditional image generation"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Creating Custom Templates
|
|
218
|
+
|
|
219
|
+
Define your own research template for your specific domain:
|
|
220
|
+
|
|
221
|
+
```python
|
|
222
|
+
# templates/my_domain/template.py
|
|
223
|
+
class MyDomainTemplate:
|
|
224
|
+
name = "my_research_domain"
|
|
225
|
+
base_metrics = ["accuracy", "f1_score", "inference_time"]
|
|
226
|
+
|
|
227
|
+
def setup_baseline(self):
|
|
228
|
+
"""Set up the baseline experiment."""
|
|
229
|
+
pass
|
|
230
|
+
|
|
231
|
+
def evaluate(self, model, data):
|
|
232
|
+
"""Evaluate a model configuration."""
|
|
233
|
+
pass
|
|
234
|
+
|
|
235
|
+
def get_modification_space(self):
|
|
236
|
+
"""Define the space of possible modifications."""
|
|
237
|
+
return {
|
|
238
|
+
"architecture": ["transformer", "lstm", "mamba"],
|
|
239
|
+
"learning_rate": [1e-4, 3e-4, 1e-3],
|
|
240
|
+
"batch_size": [32, 64, 128],
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Automated Paper Review
|
|
245
|
+
|
|
246
|
+
AI-Scientist-v2 includes an automated reviewer that evaluates generated papers using criteria from top ML venues:
|
|
247
|
+
|
|
248
|
+
```python
|
|
249
|
+
from ai_scientist import PaperReviewer
|
|
250
|
+
|
|
251
|
+
reviewer = PaperReviewer(
|
|
252
|
+
venue="neurips",
|
|
253
|
+
review_criteria=[
|
|
254
|
+
"novelty",
|
|
255
|
+
"significance",
|
|
256
|
+
"clarity",
|
|
257
|
+
"correctness",
|
|
258
|
+
"reproducibility",
|
|
259
|
+
],
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
review = reviewer.review("output/paper.pdf")
|
|
263
|
+
print(f"Overall score: {review.overall_score}/10")
|
|
264
|
+
print(f"Strengths: {review.strengths}")
|
|
265
|
+
print(f"Weaknesses: {review.weaknesses}")
|
|
266
|
+
print(f"Questions: {review.questions}")
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Ethical Considerations and Limitations
|
|
270
|
+
|
|
271
|
+
When using AI-Scientist-v2, keep these considerations in mind:
|
|
272
|
+
|
|
273
|
+
- **Human oversight**: Always review generated papers for correctness before submission. The system can produce plausible-sounding but incorrect analyses.
|
|
274
|
+
- **Attribution**: If using AI-Scientist-v2 outputs in publications, disclose the use of automated research tools per venue guidelines.
|
|
275
|
+
- **Scope**: The system works best for incremental research within well-defined experimental frameworks. Breakthrough conceptual contributions still require human creativity.
|
|
276
|
+
- **Compute cost**: Tree search with multiple seeds per experiment can require substantial GPU time. Set appropriate budgets and timeouts.
|
|
277
|
+
- **Reproducibility**: All experiments are logged with seeds, configurations, and code versions for full reproducibility.
|
|
278
|
+
|
|
279
|
+
## References
|
|
280
|
+
|
|
281
|
+
- Repository: https://github.com/SakanaAI/AI-Scientist-v2
|
|
282
|
+
- Original AI Scientist paper: https://arxiv.org/abs/2408.06292
|
|
283
|
+
- Sakana AI: https://sakana.ai/
|
|
284
|
+
- AI Scientist v1: https://github.com/SakanaAI/AI-Scientist
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aim-experiment-guide
|
|
3
|
+
description: "Track and compare research experiments with Aim experiment tracker"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🎯"
|
|
7
|
+
category: "research"
|
|
8
|
+
subcategory: "automation"
|
|
9
|
+
keywords: ["experiment-tracking", "visualization", "mlops", "reproducibility", "metrics", "hyperparameters"]
|
|
10
|
+
source: "https://github.com/aimhubio/aim"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Aim Experiment Tracker Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Aim is an open-source experiment tracking platform designed for researchers and ML engineers who need to log, compare, and analyze large numbers of experiments. Unlike cloud-based tracking services that require sending data to external servers, Aim runs entirely on your own infrastructure, making it suitable for research environments with data privacy requirements or institutional restrictions on external services.
|
|
18
|
+
|
|
19
|
+
The core problem Aim solves is experiment management at scale. A typical research project involves hundreds or thousands of training runs with different hyperparameters, data splits, model architectures, and random seeds. Without systematic tracking, researchers lose track of which configurations produced which results, leading to wasted computation and unreproducible findings. Aim provides a high-performance storage backend and a rich web UI for logging, querying, and visualizing experiment metadata and metrics.
|
|
20
|
+
|
|
21
|
+
With over 6,000 GitHub stars, Aim has established itself as a compelling self-hosted alternative to tools like Weights and Biases and MLflow. Its Python-native API integrates with minimal friction into existing training loops, and the query language enables sophisticated filtering across thousands of runs.
|
|
22
|
+
|
|
23
|
+
## Installation and Setup
|
|
24
|
+
|
|
25
|
+
Install Aim via pip:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pip install aim
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Initialize an Aim repository in your project directory:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
cd /path/to/research-project
|
|
35
|
+
aim init
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
This creates a `.aim` directory that stores all experiment data locally. Launch the web UI:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
aim up
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The dashboard becomes available at `http://localhost:43800`, providing interactive visualizations of all tracked experiments.
|
|
45
|
+
|
|
46
|
+
For remote server deployment:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
aim up --host 0.0.0.0 --port 43800
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Core Features
|
|
53
|
+
|
|
54
|
+
**Experiment Logging**: Integrate Aim tracking into your training scripts with minimal code changes:
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
from aim import Run
|
|
58
|
+
|
|
59
|
+
# Initialize a tracked run
|
|
60
|
+
run = Run(experiment="protein_folding_v2")
|
|
61
|
+
|
|
62
|
+
# Log hyperparameters
|
|
63
|
+
run["hparams"] = {
|
|
64
|
+
"learning_rate": 0.001,
|
|
65
|
+
"batch_size": 64,
|
|
66
|
+
"model": "transformer",
|
|
67
|
+
"num_layers": 6,
|
|
68
|
+
"hidden_dim": 256,
|
|
69
|
+
"dropout": 0.1,
|
|
70
|
+
"optimizer": "adamw",
|
|
71
|
+
"weight_decay": 0.01,
|
|
72
|
+
"seed": 42,
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
# Log dataset information
|
|
76
|
+
run["dataset"] = {
|
|
77
|
+
"name": "protein_benchmark_v3",
|
|
78
|
+
"train_size": 50000,
|
|
79
|
+
"val_size": 5000,
|
|
80
|
+
"test_size": 5000,
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
# Track metrics during training
|
|
84
|
+
for epoch in range(num_epochs):
|
|
85
|
+
train_loss = train_one_epoch(model, train_loader)
|
|
86
|
+
val_loss, val_accuracy = evaluate(model, val_loader)
|
|
87
|
+
|
|
88
|
+
run.track(train_loss, name="loss", context={"subset": "train"})
|
|
89
|
+
run.track(val_loss, name="loss", context={"subset": "val"})
|
|
90
|
+
run.track(val_accuracy, name="accuracy", context={"subset": "val"})
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Framework Integrations**: Aim provides built-in callbacks for popular training frameworks:
|
|
94
|
+
|
|
95
|
+
```python
|
|
96
|
+
# PyTorch Lightning integration
|
|
97
|
+
from aim.pytorch_lightning import AimLogger
|
|
98
|
+
|
|
99
|
+
aim_logger = AimLogger(experiment="lightning_exp")
|
|
100
|
+
trainer = pl.Trainer(logger=aim_logger, max_epochs=100)
|
|
101
|
+
|
|
102
|
+
# Hugging Face Transformers integration
|
|
103
|
+
from aim.hugging_face import AimCallback
|
|
104
|
+
|
|
105
|
+
aim_callback = AimCallback(experiment="hf_training")
|
|
106
|
+
trainer = Trainer(
|
|
107
|
+
model=model,
|
|
108
|
+
args=training_args,
|
|
109
|
+
callbacks=[aim_callback],
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
# Keras integration
|
|
113
|
+
from aim.keras import AimCallback as KerasAimCallback
|
|
114
|
+
|
|
115
|
+
model.fit(
|
|
116
|
+
x_train, y_train,
|
|
117
|
+
callbacks=[KerasAimCallback(experiment="keras_exp")],
|
|
118
|
+
epochs=50,
|
|
119
|
+
)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Powerful Query Language**: Filter and retrieve experiments programmatically:
|
|
123
|
+
|
|
124
|
+
```python
|
|
125
|
+
from aim import Repo
|
|
126
|
+
|
|
127
|
+
repo = Repo("/path/to/research-project")
|
|
128
|
+
|
|
129
|
+
# Query runs matching specific criteria
|
|
130
|
+
query = """
|
|
131
|
+
run.experiment == "protein_folding_v2"
|
|
132
|
+
and run.hparams.learning_rate < 0.01
|
|
133
|
+
and run.hparams.model == "transformer"
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
for run in repo.query_runs(query).iter_runs():
|
|
137
|
+
print(f"Run: {run.hash}")
|
|
138
|
+
print(f" LR: {run['hparams']['learning_rate']}")
|
|
139
|
+
print(f" Final val loss: {run['loss']}")
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Rich Visualizations**: The web UI provides interactive charts for comparing experiments:
|
|
143
|
+
|
|
144
|
+
- Line charts for metric trajectories across epochs
|
|
145
|
+
- Parallel coordinates plots for hyperparameter exploration
|
|
146
|
+
- Scatter plots correlating hyperparameters with final metrics
|
|
147
|
+
- Distribution plots for metric analysis across run groups
|
|
148
|
+
- Image and audio tracking for multimedia experiments
|
|
149
|
+
|
|
150
|
+
## Research Workflow Integration
|
|
151
|
+
|
|
152
|
+
**Hyperparameter Search Analysis**: After running grid search or random search experiments, use Aim to identify the best configurations:
|
|
153
|
+
|
|
154
|
+
```python
|
|
155
|
+
from aim import Repo
|
|
156
|
+
|
|
157
|
+
repo = Repo(".")
|
|
158
|
+
|
|
159
|
+
# Find the best run by validation accuracy
|
|
160
|
+
best_run = None
|
|
161
|
+
best_acc = 0.0
|
|
162
|
+
|
|
163
|
+
for run_metrics in repo.query_metrics(
|
|
164
|
+
"metric.name == 'accuracy' and metric.context.subset == 'val'"
|
|
165
|
+
).iter_runs():
|
|
166
|
+
for metric in run_metrics:
|
|
167
|
+
final_val = list(metric.values.values())[-1]
|
|
168
|
+
if final_val > best_acc:
|
|
169
|
+
best_acc = final_val
|
|
170
|
+
best_run = metric.run.hash
|
|
171
|
+
|
|
172
|
+
print(f"Best run: {best_run} with accuracy {best_acc:.4f}")
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Reproducibility Documentation**: Every tracked run captures the full hyperparameter configuration, making it straightforward to include exact experimental details in paper methods sections and supplementary materials.
|
|
176
|
+
|
|
177
|
+
**Ablation Studies**: Tag runs with ablation group identifiers and use the comparison UI to visualize the impact of each component:
|
|
178
|
+
|
|
179
|
+
```python
|
|
180
|
+
run = Run(experiment="ablation_study")
|
|
181
|
+
run["hparams"] = config
|
|
182
|
+
run["ablation"] = {
|
|
183
|
+
"group": "attention_mechanism",
|
|
184
|
+
"variant": "multi_head",
|
|
185
|
+
"description": "Standard multi-head attention vs. linear attention",
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Lab Notebook Integration**: Export experiment summaries for inclusion in electronic lab notebooks. The query API enables automated report generation:
|
|
190
|
+
|
|
191
|
+
```python
|
|
192
|
+
import pandas as pd
|
|
193
|
+
from aim import Repo
|
|
194
|
+
|
|
195
|
+
repo = Repo(".")
|
|
196
|
+
records = []
|
|
197
|
+
|
|
198
|
+
for run_metrics in repo.query_metrics(
|
|
199
|
+
"metric.name == 'accuracy'"
|
|
200
|
+
).iter_runs():
|
|
201
|
+
run = run_metrics.run
|
|
202
|
+
for metric in run_metrics:
|
|
203
|
+
values = list(metric.values.values())
|
|
204
|
+
records.append({
|
|
205
|
+
"run_hash": run.hash[:8],
|
|
206
|
+
"model": run["hparams"].get("model"),
|
|
207
|
+
"lr": run["hparams"].get("learning_rate"),
|
|
208
|
+
"final_accuracy": values[-1] if values else None,
|
|
209
|
+
})
|
|
210
|
+
|
|
211
|
+
df = pd.DataFrame(records)
|
|
212
|
+
df.to_csv("experiment_summary.csv", index=False)
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Storage and Performance
|
|
216
|
+
|
|
217
|
+
Aim uses a custom high-performance storage engine optimized for time-series metrics data. The storage scales to millions of tracked values across thousands of runs without significant degradation in query performance.
|
|
218
|
+
|
|
219
|
+
Data is stored locally in the `.aim` directory. Back up this directory to preserve your experiment history. For team settings, the Aim server can be deployed as a shared service accessible to multiple researchers.
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# Check storage usage
|
|
223
|
+
du -sh .aim/
|
|
224
|
+
|
|
225
|
+
# Export data for archival
|
|
226
|
+
aim storage --repo . upgrade 3.0
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## References
|
|
230
|
+
|
|
231
|
+
- Aim repository: https://github.com/aimhubio/aim
|
|
232
|
+
- Aim documentation: https://aimstack.readthedocs.io/
|
|
233
|
+
- Aim UI demo and screenshots in the repository wiki
|
|
234
|
+
- Comparison with MLflow and Weights and Biases in the documentation
|