dr-claw 1.1.2
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/LICENSE +1380 -0
- package/NOTICE +17 -0
- package/README.md +875 -0
- package/README.zh-CN.md +857 -0
- package/dist/api-docs.html +878 -0
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/assets/_basePickBy-C0n1uo4u.js +1 -0
- package/dist/assets/_baseUniq-BRNmhFkc.js +1 -0
- package/dist/assets/arc-DOMBmC_A.js +1 -0
- package/dist/assets/architectureDiagram-VXUJARFQ-CtMWglbD.js +36 -0
- package/dist/assets/blockDiagram-VD42YOAC-DK_gTkJy.js +122 -0
- package/dist/assets/c4Diagram-YG6GDRKO-DrDAvsn7.js +10 -0
- package/dist/assets/channel-BFOE7OyC.js +1 -0
- package/dist/assets/chunk-4BX2VUAB-CGbhdZcN.js +1 -0
- package/dist/assets/chunk-55IACEB6-sGeFSxen.js +1 -0
- package/dist/assets/chunk-B4BG7PRW-RxgHAU_P.js +165 -0
- package/dist/assets/chunk-DI55MBZ5-CvHUXZrx.js +220 -0
- package/dist/assets/chunk-FMBD7UC4-Sn7cXVNU.js +15 -0
- package/dist/assets/chunk-QN33PNHL-bDKOHppN.js +1 -0
- package/dist/assets/chunk-QZHKN3VN-B9kN5LGm.js +1 -0
- package/dist/assets/chunk-TZMSLE5B-CCBe6len.js +1 -0
- package/dist/assets/classDiagram-2ON5EDUG-DQoMNYlY.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-DQoMNYlY.js +1 -0
- package/dist/assets/clone-BulQSblH.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-r6sLiHBW.js +1 -0
- package/dist/assets/cytoscape.esm-5J0xJHOV.js +321 -0
- package/dist/assets/dagre-6UL2VRFP-AbsaR1Oa.js +4 -0
- package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/assets/diagram-PSM6KHXK-DjCvdUyy.js +24 -0
- package/dist/assets/diagram-QEK2KX5R-CqiocXkH.js +43 -0
- package/dist/assets/diagram-S2PKOQOG-D5ALeoII.js +24 -0
- package/dist/assets/erDiagram-Q2GNP2WA-C1AeOsiz.js +60 -0
- package/dist/assets/flowDiagram-NV44I4VS-C98ve_DO.js +162 -0
- package/dist/assets/ganttDiagram-JELNMOA3-3zdLvcxD.js +267 -0
- package/dist/assets/gitGraphDiagram-V2S2FVAM-nDuDMsHh.js +65 -0
- package/dist/assets/graph-Blm-emkR.js +1 -0
- package/dist/assets/index-B8Yutsnm.css +1 -0
- package/dist/assets/index-Cf6gyhc3.js +654 -0
- package/dist/assets/infoDiagram-HS3SLOUP-CmzE3q0R.js +2 -0
- package/dist/assets/init-Gi6I4Gst.js +1 -0
- package/dist/assets/journeyDiagram-XKPGCS4Q-CYaW7LrP.js +139 -0
- package/dist/assets/kanban-definition-3W4ZIXB7-mkmW7p0j.js +89 -0
- package/dist/assets/layout-Ct2kFIId.js +1 -0
- package/dist/assets/linear-CKG9EwIJ.js +1 -0
- package/dist/assets/mermaid.core-CaKcUnnd.js +250 -0
- package/dist/assets/mindmap-definition-VGOIOE7T-Bct-pYin.js +68 -0
- package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/assets/pieDiagram-ADFJNKIX-C8wFD4Jr.js +30 -0
- package/dist/assets/quadrantDiagram-AYHSOK5B-CuiE_f46.js +7 -0
- package/dist/assets/requirementDiagram-UZGBJVZJ-C4v1CqU8.js +64 -0
- package/dist/assets/sankeyDiagram-TZEHDZUN-keAqqs-Y.js +10 -0
- package/dist/assets/sequenceDiagram-WL72ISMW-ClNbvKTB.js +145 -0
- package/dist/assets/stateDiagram-FKZM4ZOC-D8We-2vq.js +1 -0
- package/dist/assets/stateDiagram-v2-4FDKWEC3-BUURfjrE.js +1 -0
- package/dist/assets/timeline-definition-IT6M3QCI-DsvEMT5T.js +61 -0
- package/dist/assets/treemap-GDKQZRPO-TJrzN7Bj.js +162 -0
- package/dist/assets/vendor-codemirror-ansM-eig.js +33 -0
- package/dist/assets/vendor-react-BWF6YQQ3.js +8 -0
- package/dist/assets/vendor-xterm-DfcmCpbH.js +66 -0
- package/dist/assets/xychartDiagram-PRI3JC2R-BdATmY5F.js +7 -0
- package/dist/clear-cache.html +85 -0
- package/dist/convert-icons.md +53 -0
- package/dist/dr-claw.png +0 -0
- package/dist/favicon.png +0 -0
- package/dist/generate-icons.js +49 -0
- package/dist/icons/claude-ai-icon.svg +1 -0
- package/dist/icons/codex-white.svg +3 -0
- package/dist/icons/codex.svg +3 -0
- package/dist/icons/cursor-white.svg +12 -0
- package/dist/icons/cursor.svg +1 -0
- package/dist/icons/file.svg +16997 -0
- package/dist/icons/generate-icons.md +19 -0
- package/dist/icons/icon-128x128.png +0 -0
- package/dist/icons/icon-144x144.png +0 -0
- package/dist/icons/icon-152x152.png +0 -0
- package/dist/icons/icon-192x192.png +0 -0
- package/dist/icons/icon-384x384.png +0 -0
- package/dist/icons/icon-512x512.png +0 -0
- package/dist/icons/icon-72x72.png +0 -0
- package/dist/icons/icon-96x96.png +0 -0
- package/dist/icons/news/arxiv.svg +1 -0
- package/dist/icons/news/huggingface.svg +8 -0
- package/dist/icons/news/x-black.png +0 -0
- package/dist/icons/news/x-white.png +0 -0
- package/dist/icons/news/xiaohongshu.png +0 -0
- package/dist/index.html +51 -0
- package/dist/leveraged-cognition.png +0 -0
- package/dist/manifest.json +61 -0
- package/dist/screenshots/chat.png +0 -0
- package/dist/screenshots/new_claw.png +0 -0
- package/dist/screenshots/news_dashboard.png +0 -0
- package/dist/screenshots/project_dashboard.png +0 -0
- package/dist/screenshots/research_lab.png +0 -0
- package/dist/screenshots/skill_library.png +0 -0
- package/dist/screenshots/task_list.png +0 -0
- package/dist/screenshots/terminal_example.png +0 -0
- package/dist/screenshots/terminal_example1.png +0 -0
- package/dist/sw.js +58 -0
- package/dist/wechat-group-qr.jpg +0 -0
- package/package.json +133 -0
- package/public/api-docs.html +878 -0
- package/public/clear-cache.html +85 -0
- package/public/convert-icons.md +53 -0
- package/public/dr-claw.png +0 -0
- package/public/favicon.png +0 -0
- package/public/generate-icons.js +49 -0
- package/public/icons/claude-ai-icon.svg +1 -0
- package/public/icons/codex-white.svg +3 -0
- package/public/icons/codex.svg +3 -0
- package/public/icons/cursor-white.svg +12 -0
- package/public/icons/cursor.svg +1 -0
- package/public/icons/file.svg +16997 -0
- package/public/icons/generate-icons.md +19 -0
- package/public/icons/icon-128x128.png +0 -0
- package/public/icons/icon-144x144.png +0 -0
- package/public/icons/icon-152x152.png +0 -0
- package/public/icons/icon-192x192.png +0 -0
- package/public/icons/icon-384x384.png +0 -0
- package/public/icons/icon-512x512.png +0 -0
- package/public/icons/icon-72x72.png +0 -0
- package/public/icons/icon-96x96.png +0 -0
- package/public/icons/news/arxiv.svg +1 -0
- package/public/icons/news/huggingface.svg +8 -0
- package/public/icons/news/x-black.png +0 -0
- package/public/icons/news/x-white.png +0 -0
- package/public/icons/news/xiaohongshu.png +0 -0
- package/public/leveraged-cognition.png +0 -0
- package/public/manifest.json +61 -0
- package/public/screenshots/chat.png +0 -0
- package/public/screenshots/new_claw.png +0 -0
- package/public/screenshots/news_dashboard.png +0 -0
- package/public/screenshots/project_dashboard.png +0 -0
- package/public/screenshots/research_lab.png +0 -0
- package/public/screenshots/skill_library.png +0 -0
- package/public/screenshots/task_list.png +0 -0
- package/public/screenshots/terminal_example.png +0 -0
- package/public/screenshots/terminal_example1.png +0 -0
- package/public/sw.js +58 -0
- package/public/wechat-group-qr.jpg +0 -0
- package/scripts/export-skills-catalog-v2.mjs +746 -0
- package/scripts/fix-node-pty.js +45 -0
- package/scripts/gemini_image_core.py +470 -0
- package/scripts/install-python-tools.js +64 -0
- package/server/AGENTS.md +73 -0
- package/server/__tests__/gemini-legacy-thought.test.mjs +88 -0
- package/server/__tests__/runtimePorts.test.mjs +115 -0
- package/server/__tests__/session-delete.test.mjs +166 -0
- package/server/bin/compute-node +70 -0
- package/server/claude-sdk.js +799 -0
- package/server/cli-chat.js +488 -0
- package/server/cli.js +354 -0
- package/server/compute-node.js +439 -0
- package/server/constants/config.js +5 -0
- package/server/cursor-cli.js +340 -0
- package/server/database/auth.db +0 -0
- package/server/database/db.js +1852 -0
- package/server/database/init.sql +194 -0
- package/server/gemini-cli.js +1352 -0
- package/server/index.js +3154 -0
- package/server/load-env.js +71 -0
- package/server/local-gpu.js +860 -0
- package/server/middleware/auth.js +100 -0
- package/server/openai-codex.js +724 -0
- package/server/openrouter.js +890 -0
- package/server/project-token-usage.js +407 -0
- package/server/projects.js +3973 -0
- package/server/routes/agent.js +1272 -0
- package/server/routes/auth.js +128 -0
- package/server/routes/auto-research.js +558 -0
- package/server/routes/cli-auth.js +958 -0
- package/server/routes/codex.js +344 -0
- package/server/routes/commands.js +601 -0
- package/server/routes/compute.js +358 -0
- package/server/routes/cursor.js +795 -0
- package/server/routes/git.js +1348 -0
- package/server/routes/mcp-utils.js +48 -0
- package/server/routes/mcp.js +618 -0
- package/server/routes/news.js +711 -0
- package/server/routes/projects.js +633 -0
- package/server/routes/references.js +338 -0
- package/server/routes/settings.js +285 -0
- package/server/routes/skills.js +914 -0
- package/server/routes/taskmaster.js +2566 -0
- package/server/routes/telemetry.js +89 -0
- package/server/routes/user.js +155 -0
- package/server/scripts/fix_session_names.js +57 -0
- package/server/scripts/research-news/common_words.py +19 -0
- package/server/scripts/research-news/link_keywords.py +298 -0
- package/server/scripts/research-news/scan_existing_notes.py +266 -0
- package/server/scripts/research-news/scoring_utils.py +227 -0
- package/server/scripts/research-news/search_arxiv.py +842 -0
- package/server/scripts/research-news/search_huggingface.py +438 -0
- package/server/scripts/research-news/search_x.py +490 -0
- package/server/scripts/research-news/search_xiaohongshu.py +610 -0
- package/server/taskmaster-templates/README.md +150 -0
- package/server/taskmaster-templates/README.zh-CN.md +150 -0
- package/server/taskmaster-templates/ai-research-dataset.json +230 -0
- package/server/taskmaster-templates/ai-research-method-model.json +230 -0
- package/server/taskmaster-templates/ai-research-position-paper.json +230 -0
- package/server/telemetry.js +121 -0
- package/server/templates/AGENTS.md +103 -0
- package/server/templates/CLAUDE.md +104 -0
- package/server/templates/GEMINI.md +103 -0
- package/server/templates/cursor-project.md +108 -0
- package/server/templates/index.js +37 -0
- package/server/utils/__tests__/sessionTokenUsage.test.js +82 -0
- package/server/utils/auto-research-mailer.js +57 -0
- package/server/utils/cliResolution.js +170 -0
- package/server/utils/commandParser.js +303 -0
- package/server/utils/cursorCommand.js +61 -0
- package/server/utils/geminiApiKey.js +28 -0
- package/server/utils/gitConfig.js +24 -0
- package/server/utils/imageAttachmentFiles.js +35 -0
- package/server/utils/mcp-detector.js +198 -0
- package/server/utils/parsers/bibtex-parser.js +207 -0
- package/server/utils/permissions.js +100 -0
- package/server/utils/runtimePorts.js +212 -0
- package/server/utils/sessionFormatting.js +68 -0
- package/server/utils/sessionIndex.js +100 -0
- package/server/utils/sessionMode.js +95 -0
- package/server/utils/sessionTokenUsage.js +105 -0
- package/server/utils/taskmaster-websocket.js +129 -0
- package/server/utils/zotero-client.js +136 -0
- package/shared/errorClassifier.js +102 -0
- package/shared/geminiThinkingSupport.d.ts +22 -0
- package/shared/geminiThinkingSupport.js +96 -0
- package/shared/geminiThoughtParser.d.ts +8 -0
- package/shared/geminiThoughtParser.js +30 -0
- package/shared/modelConstants.js +139 -0
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,857 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="public/dr-claw.png" alt="Dr. Claw" width="128" height="128">
|
|
3
|
+
<h1>Dr. Claw: 面向科研全流程的通用 AI 研究助手</h1>
|
|
4
|
+
<p><strong>在一个工作区里完成研究规划、执行与写作。</strong></p>
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://openlair.github.io/dr-claw">
|
|
9
|
+
<img src="https://img.shields.io/badge/%F0%9F%8C%90-%E4%B8%BB%E9%A1%B5-CB2B3E?style=for-the-badge" alt="主页" />
|
|
10
|
+
</a>
|
|
11
|
+
<a href="https://github.com/OpenLAIR/dr-claw">
|
|
12
|
+
<img src="https://img.shields.io/badge/%F0%9F%A6%9E-Dr.%20Claw-CB2B3E?style=for-the-badge" alt="Dr. Claw" />
|
|
13
|
+
</a>
|
|
14
|
+
<a href="https://github.com/OpenLAIR/dr-claw/blob/main/LICENSE">
|
|
15
|
+
<img src="https://img.shields.io/badge/License-GPL--3.0%20%2B%20AGPL--3.0-blue?style=for-the-badge" alt="License: GPL-3.0 + AGPL-3.0" />
|
|
16
|
+
</a>
|
|
17
|
+
<a href="https://join.slack.com/t/vibe-lab-group/shared_invite/zt-3r4bkcx5t-iGyRMI~r09zt7p_ND2eP9A">
|
|
18
|
+
<img src="https://img.shields.io/badge/Join-Slack-4A154B?style=for-the-badge&logo=slack" alt="Join Slack" />
|
|
19
|
+
</a>
|
|
20
|
+
<a href="https://x.com/Vibe2038004">
|
|
21
|
+
<img src="https://img.shields.io/badge/Follow-on%20X-black?style=for-the-badge&logo=x" alt="Follow on X" />
|
|
22
|
+
</a>
|
|
23
|
+
<a href="./public/wechat-group-qr.jpg">
|
|
24
|
+
<img src="https://img.shields.io/badge/%E5%8A%A0%E5%85%A5-%E5%BE%AE%E4%BF%A1%E7%BE%A4-07C160?style=for-the-badge&logo=wechat&logoColor=white" alt="加入微信群" />
|
|
25
|
+
</a>
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
<p align="center">
|
|
29
|
+
<a href="./README.md">English</a> | <a href="./README.zh-CN.md">中文</a>
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
## 目录
|
|
33
|
+
|
|
34
|
+
- [Overview](#overview)
|
|
35
|
+
- [亮点](#亮点)
|
|
36
|
+
- [快速开始](#快速开始)
|
|
37
|
+
- [配置说明](#配置说明)
|
|
38
|
+
- [OpenRouter](#openrouter)
|
|
39
|
+
- [接入 OpenClaw](#接入-openclaw)
|
|
40
|
+
- [Research Lab - 快速示例](#research-lab-quick-example)
|
|
41
|
+
- [使用指南](#使用指南)
|
|
42
|
+
- [补充说明](#补充说明)
|
|
43
|
+
- [贡献](#贡献)
|
|
44
|
+
- [FAQ](./docs/faq.zh-CN.md)
|
|
45
|
+
- [许可证](#许可证)
|
|
46
|
+
- [引用](#引用)
|
|
47
|
+
- [致谢](#致谢)
|
|
48
|
+
- [支持与社区](#支持与社区)
|
|
49
|
+
|
|
50
|
+
## Overview
|
|
51
|
+
|
|
52
|
+
Dr. Claw 是一个面向不同研究方向的通用 AI 研究助手,帮助研究者和团队完成从想法形成、实验推进到论文产出的全流程工作。它把关键研究环节整合到同一个空间中,让你把精力放在问题本身和迭代质量上,而不是工具切换与流程拼接。
|
|
53
|
+
|
|
54
|
+
<strong>产品截图</strong>
|
|
55
|
+
|
|
56
|
+
<p align="center">
|
|
57
|
+
<img src="public/screenshots/new_claw.png" alt="Dr. Claw 对话界面" width="1000">
|
|
58
|
+
</p>
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
<details>
|
|
62
|
+
<summary><strong>理念:杠杆化认知</strong></summary>
|
|
63
|
+
|
|
64
|
+
<p align="center">
|
|
65
|
+
<img src="public/leveraged-cognition.png" alt="Leveraged Cognition" width="900">
|
|
66
|
+
</p>
|
|
67
|
+
|
|
68
|
+
**纯手工太慢,完全交给 AI 又太平庸,Vibe Researching 才是新的范式。** Dr. Claw 以 **Agentic Execution** 放大你的 **Research Taste**,让你既能更快推进、更大胆探索,也始终守住科研严谨性的底线。
|
|
69
|
+
|
|
70
|
+
</details>
|
|
71
|
+
|
|
72
|
+
## 亮点
|
|
73
|
+
|
|
74
|
+
- **🔬 Research Lab** — 端到端研究仪表盘:定义研究简报、生成任务流水线、追踪 Survey → Ideation → Experiment → Publication → Promotion 各阶段进度,一览参考论文、Idea(支持 LaTeX 数学公式渲染)和缓存产物
|
|
75
|
+
- **⚡ Auto Research** — 可直接从 Project Dashboard 一键顺序执行研究任务,实时打开对应 session,并在运行完成后发送邮件通知
|
|
76
|
+
- **📚 100+ Research Skills** — 覆盖 Idea 生成、代码调研、实验开发与分析、论文写作、审阅回复与交付的技能库 — Agent 自动发现并作为任务级辅助
|
|
77
|
+
- **🗂️ 对话驱动的 Pipeline** — 在 Chat 中描述你的研究想法,Agent 使用 `inno-pipeline-planner` skill 交互式生成结构化研究简报和任务列表 — 无需手动选择模板
|
|
78
|
+
- **🤖 多 Agent 后端** — 可在 Claude Code、Gemini CLI、Codex 和 OpenRouter 之间切换作为执行引擎
|
|
79
|
+
|
|
80
|
+
### 流水线产出物
|
|
81
|
+
|
|
82
|
+
| | 产出物 | 存储位置 | 说明 |
|
|
83
|
+
|---|---|---|---|
|
|
84
|
+
| 📚 | 文献综述 | `Survey/reports/` | 基于 arXiv、Semantic Scholar 和网络来源的带引用文献综述 |
|
|
85
|
+
| 💡 | 研究创意 | `Ideation/ideas/` | 多维度评估打分的头脑风暴输出 |
|
|
86
|
+
| 🔬 | 实验代码 | `Experiment/core_code/` | 由"计划 → 实现 → 评判"循环产出的代码 |
|
|
87
|
+
| 📊 | 分析结果 | `Experiment/analysis/` | 统计分析、表格和论文级图表 |
|
|
88
|
+
| 📝 | 论文草稿 | `Publication/paper/` | IEEE/ACM 格式学术论文,含引用和 LaTeX 数学公式 |
|
|
89
|
+
| 🎞️ | 学术展示 | `Promotion/slides/` | 演示文稿、TTS 语音旁白和演示视频 |
|
|
90
|
+
|
|
91
|
+
> 完整产出物列表和项目目录结构请参见 [docs/pipeline-outputs.md](docs/pipeline-outputs.md)。
|
|
92
|
+
|
|
93
|
+
<details>
|
|
94
|
+
<summary><span style="font-size: 1.17em; font-weight: 600;">更多功能</span></summary>
|
|
95
|
+
|
|
96
|
+
- **💬 交互式 Chat + Shell** — 与 Agent 对话或直接进入终端 — 与研究上下文并排使用
|
|
97
|
+
- **📁 文件 & Git 浏览器** — 语法高亮浏览文件、实时编辑、暂存变更、提交和切换分支,无需离开 UI
|
|
98
|
+
- **📱 响应式 & PWA 就绪** — 桌面、平板和移动端布局,底部选项卡栏、滑动手势和添加到主屏幕支持
|
|
99
|
+
- **🔄 会话管理** — 恢复对话、管理多个会话,跨项目追踪完整历史
|
|
100
|
+
|
|
101
|
+
</details>
|
|
102
|
+
|
|
103
|
+
### 功能截图
|
|
104
|
+
|
|
105
|
+
<details>
|
|
106
|
+
<summary><strong>展开查看截图</strong></summary>
|
|
107
|
+
|
|
108
|
+
<p><strong>Project Dashboard</strong> — 从项目总览进入,查看状态并启动端到端自动化流程。</p>
|
|
109
|
+
<p align="center">
|
|
110
|
+
<img src="public/screenshots/project_dashboard.png" alt="项目看板界面" width="1000">
|
|
111
|
+
</p>
|
|
112
|
+
|
|
113
|
+
<p><strong>Skill Library</strong> — 浏览覆盖想法生成、实验推进与论文写作的技能库。</p>
|
|
114
|
+
<p align="center">
|
|
115
|
+
<img src="public/screenshots/skill_library.png" alt="技能库界面" width="1000">
|
|
116
|
+
</p>
|
|
117
|
+
|
|
118
|
+
<p><strong>News Dashboard</strong> — 在同一工作区内跟踪研究相关的资讯更新。</p>
|
|
119
|
+
<p align="center">
|
|
120
|
+
<img src="public/screenshots/news_dashboard.png" alt="新闻看板界面" width="1000">
|
|
121
|
+
</p>
|
|
122
|
+
|
|
123
|
+
</details>
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
## 快速开始
|
|
127
|
+
|
|
128
|
+
### 前置要求
|
|
129
|
+
|
|
130
|
+
- [Node.js](https://nodejs.org/) v20 或更高版本(**推荐 v22 LTS**,见 `.nvmrc`)
|
|
131
|
+
- 至少安装并配置以下 CLI 工具之一:
|
|
132
|
+
- [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code)
|
|
133
|
+
- [Gemini CLI](https://geminicli.com/docs/get-started/installation/)
|
|
134
|
+
- [Codex CLI](https://developers.openai.com/codex/cli/)
|
|
135
|
+
- 国内用户可以配置 [OpenRouter](#openrouter)
|
|
136
|
+
- 部分系统需要原生构建工具来安装 `node-pty`、`better-sqlite3` 等依赖;如果 `npm install` 失败,请查看 [FAQ](docs/faq.zh-CN.md)。
|
|
137
|
+
|
|
138
|
+
Cursor Agent 支持正在开发中,即将推出。
|
|
139
|
+
|
|
140
|
+
### 安装
|
|
141
|
+
|
|
142
|
+
1. **克隆仓库:**
|
|
143
|
+
```bash
|
|
144
|
+
git clone https://github.com/OpenLAIR/dr-claw.git
|
|
145
|
+
cd dr-claw
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
2. **安装依赖:**
|
|
149
|
+
```bash
|
|
150
|
+
npm install
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
3. **配置环境:**
|
|
154
|
+
```bash
|
|
155
|
+
cp .env.example .env
|
|
156
|
+
# 编辑 .env 文件,设置端口等偏好配置
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
如需自定义端口、认证或工作区设置,请参阅 [docs/configuration.zh-CN.md](docs/configuration.zh-CN.md)。
|
|
160
|
+
|
|
161
|
+
4. **启动应用:**
|
|
162
|
+
```bash
|
|
163
|
+
# 开发模式(支持热重载)
|
|
164
|
+
npm run dev
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
5. **使用应用**
|
|
168
|
+
|
|
169
|
+
Dr. Claw 提供两种使用方式:**前端 UI** 和 **纯终端模式**。UI 提供更丰富的可视化,但偶尔可能遇到 bug;纯终端模式更加稳定轻量。
|
|
170
|
+
|
|
171
|
+
#### 方式 A:前端 UI
|
|
172
|
+
|
|
173
|
+
打开浏览器访问 `http://localhost:5173`(或您在 `.env` 中配置的端口)。
|
|
174
|
+
|
|
175
|
+
#### 方式 B:纯终端模式
|
|
176
|
+
|
|
177
|
+
<p align="center">
|
|
178
|
+
<img src="public/screenshots/terminal_example1.png" alt="终端工作流示例" width="800">
|
|
179
|
+
</p>
|
|
180
|
+
|
|
181
|
+
打开**第二个终端**(保持第一个终端中的 `npm run dev` 运行),安装 `drclaw` CLI 工具:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
pip install -e ./agent-harness
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
使用创建账户时设置的用户名和密码登录:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
drclaw auth login --username 你的用户名 --password 你的密码
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
安装至少一个 Agent CLI(如果尚未安装):
|
|
194
|
+
|
|
195
|
+
| Agent | 安装命令 | 认证方式 |
|
|
196
|
+
|-------|---------|---------|
|
|
197
|
+
| Claude Code | `npm install -g @anthropic-ai/claude-code` | `claude` → 按提示完成 OAuth |
|
|
198
|
+
| Gemini CLI | `npm install -g @google/gemini-cli` | `gemini` → Google 登录,或 `export GOOGLE_API_KEY=...` |
|
|
199
|
+
| Codex CLI | `npm install -g @openai/codex` | `codex login`,或 `export OPENAI_API_KEY=...` |
|
|
200
|
+
| **OpenRouter** | 无需安装 CLI | `export OPENROUTER_API_KEY=sk-or-...`(在 [openrouter.ai/keys](https://openrouter.ai/keys) 获取密钥)|
|
|
201
|
+
|
|
202
|
+
> **OpenRouter** 允许你通过单个 API 密钥使用*任意*模型(GPT-5、Claude、Gemini、DeepSeek、Llama、Mistral、Qwen 等)。在 UI 中选择模型或在 `.env` 中设置 `OPENROUTER_MODEL`。
|
|
203
|
+
|
|
204
|
+
进入你要工作的项目目录,启动任一 Agent:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
cd /path/to/your/project
|
|
208
|
+
claude # 或: gemini | codex
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
`dr-claw/skills/` 中的技能会在项目创建时自动软链接到项目的 `.claude/skills/` 目录,Agent 无需额外配置即可自动发现。你也可以在会话中手动引用任意技能:
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
> Read .claude/skills/inno-experiment-analysis/SKILL.md and follow it to analyze my results.
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
#### 方式 C:OpenRouter 终端对话
|
|
218
|
+
|
|
219
|
+
如果你想要一种轻量级的纯终端体验,使用任意 [OpenRouter](https://openrouter.ai/) 模型,可以使用内置的 `dr-claw chat` 命令。无需浏览器或 UI — 直接在终端中进行具备完整工具调用能力(文件读写、Shell、Grep、Glob、网页搜索/抓取)的智能体对话。
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# 确保已设置 OPENROUTER_API_KEY(或使用 --key 传入)
|
|
223
|
+
export OPENROUTER_API_KEY=sk-or-...
|
|
224
|
+
|
|
225
|
+
# 使用任意模型启动对话
|
|
226
|
+
node server/cli.js chat --model moonshotai/kimi-k2.5
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
也可以直接传入 API 密钥:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
node server/cli.js chat --model anthropic/claude-sonnet-4 --key sk-or-your-key
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
| 参数 | 说明 |
|
|
236
|
+
|------|------|
|
|
237
|
+
| `--model <slug>` | OpenRouter 模型标识(如 `moonshotai/kimi-k2.5`、`anthropic/claude-sonnet-4`、`deepseek/deepseek-r1`)|
|
|
238
|
+
| `--key <key>` | OpenRouter API 密钥(默认使用 `OPENROUTER_API_KEY` 环境变量)|
|
|
239
|
+
|
|
240
|
+
浏览所有可用模型:[openrouter.ai/models](https://openrouter.ai/models)。
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
如果后续 Agent 网页搜索不可用,请查看[网页搜索排障](#troubleshooting-web-search-zh)。
|
|
245
|
+
|
|
246
|
+
## 接入 OpenClaw
|
|
247
|
+
|
|
248
|
+
这一部分面向**第一次接 OpenClaw 的新用户**。目标不是讲所有细节,而是先让你在最短路径里跑通:
|
|
249
|
+
|
|
250
|
+
- OpenClaw 能看 Dr. Claw 里有哪些项目
|
|
251
|
+
- OpenClaw 能发现哪些 session 在等用户回复
|
|
252
|
+
- OpenClaw 能替用户回复某个 session,让 Dr. Claw 继续执行
|
|
253
|
+
- OpenClaw 能做项目 / 全局进展总结,并推荐下一步该盯什么
|
|
254
|
+
|
|
255
|
+
可以把整体关系理解成:
|
|
256
|
+
- **Dr. Claw**:真正执行研究任务、维护项目状态和 session
|
|
257
|
+
- **`drclaw` CLI**:给外部调用的稳定控制面
|
|
258
|
+
- **OpenClaw**:用户在手机 / IM / 语音侧接触到的秘书
|
|
259
|
+
|
|
260
|
+
### 给新用户的最短接入路径
|
|
261
|
+
|
|
262
|
+
如果你只想先跑通一版,按下面 5 步做就够了:
|
|
263
|
+
|
|
264
|
+
1. 启动 Dr. Claw 服务
|
|
265
|
+
2. 安装 `drclaw` CLI
|
|
266
|
+
3. 让 OpenClaw 能本地执行 shell / `exec`
|
|
267
|
+
4. 安装仓库提供的 OpenClaw skill
|
|
268
|
+
5. 先跑通 `chat waiting` 和 `digest portfolio` 两个命令
|
|
269
|
+
|
|
270
|
+
这两个命令一旦通了,OpenClaw 就已经具备了“秘书”雏形。
|
|
271
|
+
|
|
272
|
+
### 第 0 步:先确认你已经具备这些前提
|
|
273
|
+
|
|
274
|
+
建议先确认:
|
|
275
|
+
- 你已经能本地启动 Dr. Claw
|
|
276
|
+
- 你已经至少创建过一个项目,或者已有 `~/vibelab/...` 下的项目
|
|
277
|
+
- 你已经配置好一个底层执行 Agent,例如 Claude Code、Gemini CLI 或 Codex
|
|
278
|
+
- 你本机能运行 OpenClaw,并且 OpenClaw 允许本地工具执行
|
|
279
|
+
|
|
280
|
+
如果这四件事还没满足,先把 Dr. Claw 本身跑起来,再接 OpenClaw。
|
|
281
|
+
|
|
282
|
+
### 第 1 步:启动并验证 Dr. Claw 服务
|
|
283
|
+
|
|
284
|
+
在仓库根目录执行:
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
npm install
|
|
288
|
+
npm run dev
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
另一个终端里先检查连通性:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
drclaw --json auth status
|
|
295
|
+
drclaw server status
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
优先以 `auth status` 作为服务可达性判断。如果它能返回 JSON,说明服务已经可连。
|
|
299
|
+
|
|
300
|
+
`drclaw server status` 只会显示由 `drclaw server on` 拉起的 daemon。如果你是直接用 `npm run dev` 启动,本地服务明明可用,它也仍然可能显示 `STOPPED`。
|
|
301
|
+
|
|
302
|
+
如果你希望由 Dr. Claw CLI 来托管后台进程,再执行:
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
drclaw server on
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### 第 2 步:安装并验证 `drclaw` CLI
|
|
309
|
+
|
|
310
|
+
在仓库根目录执行:
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
pip install -e ./agent-harness
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
然后验证:
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
drclaw --help
|
|
320
|
+
drclaw --json auth status
|
|
321
|
+
drclaw --json projects list
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
推荐按这个顺序判断:
|
|
325
|
+
- `drclaw --json auth status` 能返回 JSON,说明服务可达
|
|
326
|
+
- `drclaw --json projects list` 只有在你已经登录,或者本地已有 token 时才会成功
|
|
327
|
+
|
|
328
|
+
如果 `projects list` 返回 `Not logged in`,先登录:
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
drclaw auth login --username <username> --password <password>
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### 第 3 步:让 OpenClaw 具备本地执行 CLI 的能力
|
|
335
|
+
|
|
336
|
+
OpenClaw 这边最关键的不是“深度 API 集成”,而是**本地能直接执行 `drclaw ...`**。
|
|
337
|
+
|
|
338
|
+
最少需要让 OpenClaw 能执行这些命令:
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
drclaw --json chat waiting
|
|
342
|
+
drclaw --json digest portfolio
|
|
343
|
+
drclaw --json chat reply --project <project> --session <session-id> -m "<message>"
|
|
344
|
+
drclaw --json workflow continue --project <project> --session <session-id> -m "<instruction>"
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
推荐做法:
|
|
348
|
+
- 给 OpenClaw 开启本地 `exec` / shell 工具
|
|
349
|
+
- 优先走本地 CLI 调用
|
|
350
|
+
- 不要一开始就做复杂代理层或额外 server bridge
|
|
351
|
+
|
|
352
|
+
因为这一层越薄,越稳定,也越容易排查问题。
|
|
353
|
+
|
|
354
|
+
### 第 4 步:一条命令接入 OpenClaw
|
|
355
|
+
|
|
356
|
+
直接执行:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
drclaw install --server-url http://localhost:3001
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
这个命令会自动:
|
|
363
|
+
- 把 Dr. Claw skill 复制到 `~/.openclaw/workspace/skills/drclaw`
|
|
364
|
+
- 安装 OpenClaw 本地串行调用需要的辅助脚本
|
|
365
|
+
- 保存 Dr. Claw server URL,供 CLI / OpenClaw 后续复用
|
|
366
|
+
- 记录本机 `drclaw` 可执行文件路径
|
|
367
|
+
|
|
368
|
+
如果你还希望在安装时顺手保存默认推送通道:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
drclaw install --server-url http://localhost:3001 --push-channel feishu:<chat_id>
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
兼容写法也保留:
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
drclaw openclaw install --server-url http://localhost:3001
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### 第 5 步:先跑通两个最重要的命令
|
|
381
|
+
|
|
382
|
+
对新用户来说,先不要追求全功能,先跑通这两个:
|
|
383
|
+
|
|
384
|
+
1. **查看哪些 session 在等用户回复**
|
|
385
|
+
```bash
|
|
386
|
+
drclaw --json chat waiting
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
2. **查看全局项目进展和推荐动作**
|
|
390
|
+
```bash
|
|
391
|
+
drclaw --json digest portfolio
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
如果这两个命令都能被 OpenClaw 调起来,并能把结果总结给用户,你的最小可用集成就已经完成了。
|
|
395
|
+
|
|
396
|
+
### 第 6 步:再补上“回复 session”的闭环
|
|
397
|
+
|
|
398
|
+
用户接下来最常见的动作,就是看到 waiting session 后,让 OpenClaw 帮忙回复。
|
|
399
|
+
|
|
400
|
+
固定套路是:
|
|
401
|
+
|
|
402
|
+
1. 先查 waiting sessions:
|
|
403
|
+
```bash
|
|
404
|
+
drclaw --json chat waiting
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
2. 让用户选项目和 session
|
|
408
|
+
|
|
409
|
+
3. 发送回复:
|
|
410
|
+
```bash
|
|
411
|
+
drclaw --json chat reply --project <project> --session <session-id> -m "<message>"
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
4. 立即复查它是不是还在 waiting:
|
|
415
|
+
```bash
|
|
416
|
+
drclaw --json chat waiting --project <project>
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
如果用户想围绕同一个项目继续追问,可以改用:
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
drclaw --json chat project --project <project> --session <session-id> -m "<instruction>"
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
这更适合做项目态多轮沟通。
|
|
426
|
+
|
|
427
|
+
### 第 7 步:推荐 OpenClaw 的固定使用套路
|
|
428
|
+
|
|
429
|
+
推荐让 OpenClaw 固定按下面几类套路工作。
|
|
430
|
+
|
|
431
|
+
1. **用户问:现在有什么项目需要我处理?**
|
|
432
|
+
```bash
|
|
433
|
+
drclaw --json digest portfolio
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
2. **用户问:哪些 session 在等我回复?**
|
|
437
|
+
```bash
|
|
438
|
+
drclaw --json chat waiting
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
3. **用户问:某个项目现在进展如何?**
|
|
442
|
+
```bash
|
|
443
|
+
drclaw --json projects latest <project>
|
|
444
|
+
drclaw --json projects progress <project>
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
4. **用户说:帮我回复这个 session 并让它继续做**
|
|
448
|
+
```bash
|
|
449
|
+
drclaw --json chat reply --project <project> --session <session-id> -m "<message>"
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
5. **用户说:我突然有个新 idea,帮我建项目并聊清楚**
|
|
453
|
+
```bash
|
|
454
|
+
drclaw --json projects idea /absolute/path/to/project --name "<display-name>" --idea "<idea text>"
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
### 第 8 步:优先使用串行调用策略
|
|
458
|
+
|
|
459
|
+
当 OpenClaw 本地连续调用 `openclaw agent --local` 时,建议通过串行 wrapper 执行,避免多个 turn 抢同一个 session 锁。仓库里已提供脚本:
|
|
460
|
+
|
|
461
|
+
```bash
|
|
462
|
+
agent-harness/skills/dr-claw/scripts/openclaw_drclaw_turn.sh
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
它适合把类似下面的调用封装起来:
|
|
466
|
+
|
|
467
|
+
```bash
|
|
468
|
+
openclaw_drclaw_turn.sh --json -m "Use your exec tool to run `drclaw --json digest portfolio`. Return only raw stdout."
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
简单说:**OpenClaw 调 Dr. Claw CLI 时,宁可串行稳定,也不要并发冒险。**
|
|
472
|
+
|
|
473
|
+
### 第 9 步:如何判断集成已经成功
|
|
474
|
+
|
|
475
|
+
满足下面 4 条,就说明新用户已经接通了:
|
|
476
|
+
- OpenClaw 能列出 Dr. Claw 项目
|
|
477
|
+
- OpenClaw 能说出哪些 session 在 waiting
|
|
478
|
+
- OpenClaw 能对某个 session 成功发一条回复
|
|
479
|
+
- OpenClaw 能给出一次 `digest portfolio` 风格的全局总结和建议
|
|
480
|
+
|
|
481
|
+
做到这里,OpenClaw 就已经不只是聊天入口,而是 Dr. Claw 的移动秘书。
|
|
482
|
+
|
|
483
|
+
### 第 10 步:面向最终用户可以怎么说
|
|
484
|
+
|
|
485
|
+
接入完成后,用户就可以直接对 OpenClaw 说:
|
|
486
|
+
- “看看现在 Dr. Claw 有哪些项目在等我回复。”
|
|
487
|
+
- “把这个项目的最后一条消息和当前 progress 总结一下。”
|
|
488
|
+
- “替我回复这个 session:先按方案 B 继续,做完给我汇报结果。”
|
|
489
|
+
- “总结一下最近所有实验的进展,并推荐我今天优先处理什么。”
|
|
490
|
+
- “我突然有个新 idea,帮我在 Dr. Claw 建一个 project,然后和我一起把它聊清楚并开始做。”
|
|
491
|
+
|
|
492
|
+
OpenClaw 的职责不是取代 Dr. Claw,而是把 Dr. Claw 变成一个**随时可调度、可汇报、可追问、可遥控**的后台研究执行系统。
|
|
493
|
+
|
|
494
|
+
## 配置说明
|
|
495
|
+
|
|
496
|
+
Dr. Claw 会从 `.env` 读取本地配置。对大多数用户来说,只需要把 `.env.example` 复制为 `.env`;但以下几个配置项最常需要尽早调整:
|
|
497
|
+
|
|
498
|
+
- `PORT`:后端服务端口
|
|
499
|
+
- `VITE_PORT`:前端开发服务器端口
|
|
500
|
+
- `HOST`:前后端服务绑定地址
|
|
501
|
+
- `JWT_SECRET`:当你要把 Dr. Claw 暴露到 localhost 之外时必须设置
|
|
502
|
+
- `WORKSPACES_ROOT`:新项目工作区的默认根目录
|
|
503
|
+
|
|
504
|
+
完整环境变量说明和部署注意事项见 [docs/configuration.zh-CN.md](docs/configuration.zh-CN.md)。
|
|
505
|
+
|
|
506
|
+
Auto Research 的邮件通知配置在应用内的 **Settings → Email**。当前 v1 支持 Claude Code、Codex、Gemini 和 OpenRouter 作为执行引擎进行无人值守研究任务执行;如果运行中断,系统会自动回收僵尸 run,避免其长期停留在 `running` 状态。
|
|
507
|
+
|
|
508
|
+
## OpenRouter
|
|
509
|
+
|
|
510
|
+
[OpenRouter](https://openrouter.ai/) 作为一等公民集成,让你通过**一个 API 密钥**访问数百个模型(GPT-5、Claude、Gemini、DeepSeek、Llama、Mistral、Qwen、Kimi 等)。
|
|
511
|
+
|
|
512
|
+
### 配置
|
|
513
|
+
|
|
514
|
+
1. 在 [openrouter.ai/keys](https://openrouter.ai/keys) 获取 API 密钥。
|
|
515
|
+
2. 通过以下三种方式之一设置密钥:
|
|
516
|
+
- **环境变量:** `export OPENROUTER_API_KEY=sk-or-...`
|
|
517
|
+
- **`.env` 文件:** 在项目 `.env` 中添加 `OPENROUTER_API_KEY=sk-or-...`
|
|
518
|
+
- **UI 界面:** 进入 **Settings → OpenRouter** 并粘贴密钥
|
|
519
|
+
|
|
520
|
+
### 在 UI 中使用 OpenRouter
|
|
521
|
+
|
|
522
|
+
1. 打开项目并进入 **Chat**。
|
|
523
|
+
2. 在 **Choose Your AI Assistant** 下点击 **OpenRouter**。
|
|
524
|
+
3. 在下拉菜单中搜索模型(会从 OpenRouter 获取完整列表),或输入自定义模型标识。
|
|
525
|
+
4. 开始对话 — Agent 具备与 Claude、Gemini、Codex 相同的工具调用能力(文件读写、Shell、Grep、Glob、网页搜索/抓取、Todo)。
|
|
526
|
+
|
|
527
|
+
OpenRouter 同样可用于 Project Dashboard 上的 **Auto Research** — 选择它作为提供方并选择任意模型。
|
|
528
|
+
|
|
529
|
+
### 在终端中使用 OpenRouter
|
|
530
|
+
|
|
531
|
+
无需浏览器。`dr-claw chat` CLI 提供完整的智能体终端会话:
|
|
532
|
+
|
|
533
|
+
```bash
|
|
534
|
+
# 基本用法
|
|
535
|
+
node server/cli.js chat --model moonshotai/kimi-k2.5
|
|
536
|
+
|
|
537
|
+
# 指定 API 密钥
|
|
538
|
+
node server/cli.js chat --model deepseek/deepseek-r1 --key sk-or-your-key
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
CLI 支持与 UI 相同的工具(文件读写、Shell、Grep、Glob、网页搜索、网页抓取、Todo)。输入你的消息,Agent 将自主执行多步骤研究任务。
|
|
542
|
+
|
|
543
|
+
### 默认模型
|
|
544
|
+
|
|
545
|
+
在 `.env` 中设置 `OPENROUTER_MODEL` 以更改未指定模型时的默认值:
|
|
546
|
+
|
|
547
|
+
```env
|
|
548
|
+
OPENROUTER_MODEL=moonshotai/kimi-k2.5
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
如未设置,默认使用 `anthropic/claude-sonnet-4`。
|
|
552
|
+
|
|
553
|
+
<a id="research-lab-quick-example"></a>
|
|
554
|
+
|
|
555
|
+
## Research Lab — 快速示例
|
|
556
|
+
|
|
557
|
+
Dr. Claw 的核心功能是 **Research Lab**。
|
|
558
|
+
|
|
559
|
+
<details>
|
|
560
|
+
<summary><strong>Research Lab 截图</strong></summary>
|
|
561
|
+
|
|
562
|
+
<p align="center">
|
|
563
|
+
<img src="public/screenshots/research_lab.png" alt="Research Lab 工作流" width="1000">
|
|
564
|
+
</p>
|
|
565
|
+
|
|
566
|
+
</details>
|
|
567
|
+
|
|
568
|
+
典型流程如下:
|
|
569
|
+
|
|
570
|
+
1. 在 **Settings** 中配置一个受支持的 Agent。
|
|
571
|
+
2. 如果希望收到完成通知,在 **Settings → Email** 中配置邮件信息。
|
|
572
|
+
3. 在 **Chat** 中描述你的研究想法。
|
|
573
|
+
4. 让 Agent 生成 `.pipeline/docs/research_brief.json` 和 `.pipeline/tasks/tasks.json`。
|
|
574
|
+
5. 在 **Research Lab** 中查看流水线,并把任务发送回 **Chat** 执行,或者在 Project Dashboard 上点击 **Auto Research** 让系统顺序执行全部任务。
|
|
575
|
+
|
|
576
|
+
完整操作步骤请见下方 **使用指南**。
|
|
577
|
+
|
|
578
|
+
## 使用指南
|
|
579
|
+
|
|
580
|
+
启动 Dr. Claw 后,打开浏览器并按以下步骤操作。
|
|
581
|
+
|
|
582
|
+
<details>
|
|
583
|
+
<summary><strong>第 1 步 — 创建或打开项目</strong></summary>
|
|
584
|
+
|
|
585
|
+
首次打开 Dr. Claw 时,您会看到 **Projects** 侧边栏。您有两种选择:
|
|
586
|
+
|
|
587
|
+
- **打开已有项目** — Dr. Claw 会自动发现已注册项目,以及来自 Claude Code、Codex、Gemini 的关联会话。
|
|
588
|
+
- **创建新项目** — 点击 **"+"** 按钮,选择本机的一个目录,Dr. Claw 会创建:`.claude/`、`.agents/`、`.gemini/` 等 Agent 目录、标准工作区元数据、链接的 `skills/` 目录、预设研究目录(`Survey/references`、`Survey/reports`、`Ideation/ideas`、`Ideation/references`、`Experiment/code_references`、`Experiment/datasets`、`Experiment/core_code`、`Experiment/analysis`、`Publication/paper`、`Promotion/homepage`、`Promotion/slides`、`Promotion/audio`、`Promotion/video`),以及项目根目录下的 **instance.json**(上述目录的绝对路径写入其中)。Cursor Agent 支持即将推出。
|
|
589
|
+
|
|
590
|
+
> **默认项目存储路径:** 新项目默认存储在 `~/dr-claw` 目录下。可在 **Settings → Appearance → Default Project Path** 中修改,也可通过环境变量 `WORKSPACES_ROOT` 设置。该配置持久化在 `~/.claude/project-config.json` 中。
|
|
591
|
+
|
|
592
|
+
</details>
|
|
593
|
+
|
|
594
|
+
<details>
|
|
595
|
+
<summary><strong>第 2 步 — 通过 Chat 生成研究流水线</strong></summary>
|
|
596
|
+
|
|
597
|
+
创建或打开项目后,Dr. Claw 默认进入 **Chat** 页面。如果尚未生成研究流水线,页面会显示引导提示,并提供 **Use in Chat** 按钮注入模板提示。
|
|
598
|
+
|
|
599
|
+
<details>
|
|
600
|
+
<summary><strong>Chat 截图</strong></summary>
|
|
601
|
+
|
|
602
|
+
<p align="center">
|
|
603
|
+
<img src="public/screenshots/chat.png" alt="Chat 界面" width="1000">
|
|
604
|
+
</p>
|
|
605
|
+
|
|
606
|
+
</details>
|
|
607
|
+
|
|
608
|
+
描述你的研究想法 — 即使只是一个大概的方向也可以。Agent 会使用 `inno-pipeline-planner` skill 与你交互,然后生成:
|
|
609
|
+
- `.pipeline/docs/research_brief.json`(结构化研究简报)
|
|
610
|
+
- `.pipeline/tasks/tasks.json`(任务流水线)
|
|
611
|
+
|
|
612
|
+
</details>
|
|
613
|
+
|
|
614
|
+
<details>
|
|
615
|
+
<summary><strong>第 3 步 — 在 Research Lab 查看并执行任务</strong></summary>
|
|
616
|
+
|
|
617
|
+
切换到 **Research Lab** 查看生成的任务、进度指标和研究产物,然后执行任务:
|
|
618
|
+
|
|
619
|
+
<details>
|
|
620
|
+
<summary><strong>任务执行截图</strong></summary>
|
|
621
|
+
|
|
622
|
+
<p align="center">
|
|
623
|
+
<img src="public/screenshots/task_list.png" alt="任务列表与执行流程" width="1000">
|
|
624
|
+
</p>
|
|
625
|
+
|
|
626
|
+
</details>
|
|
627
|
+
|
|
628
|
+
1. 通过 **CLI 选择器** 选择后端(Claude Code、Gemini CLI 或 Codex)。
|
|
629
|
+
2. 在 **Research Lab** 中对 pending 任务点击 **Go to Chat** 或 **Use in Chat**。
|
|
630
|
+
3. Agent 执行任务并将结果写回项目。
|
|
631
|
+
|
|
632
|
+
</details>
|
|
633
|
+
|
|
634
|
+
<details>
|
|
635
|
+
<summary><strong>可选项 — 在 Project Dashboard 中运行 Auto Research</strong></summary>
|
|
636
|
+
|
|
637
|
+
如果你希望 Dr. Claw 端到端自动执行整条任务流水线,可以使用 **Auto Research**:
|
|
638
|
+
1. 打开 **Settings → Email**,配置 `Notification Email`、`Sender Email` 和 `Resend API Key`。
|
|
639
|
+
2. 确认项目中已经存在 `.pipeline/docs/research_brief.json` 和 `.pipeline/tasks/tasks.json`。
|
|
640
|
+
3. 打开 **Project Dashboard**,在项目卡片上点击 **Auto Research**。
|
|
641
|
+
4. 点击 **Open Session** 可随时跳转到本次运行创建的 Claude session。
|
|
642
|
+
5. 所有任务完成后,Dr. Claw 会发送完成通知邮件;如果 session 中途被打断,系统会自动恢复 stale run,避免它一直卡在 `running` 状态。
|
|
643
|
+
|
|
644
|
+
</details>
|
|
645
|
+
|
|
646
|
+
<details>
|
|
647
|
+
<a id="troubleshooting-web-search-zh"></a>
|
|
648
|
+
<summary><strong>第 4 步 — 网页搜索排障</strong></summary>
|
|
649
|
+
|
|
650
|
+
如果 Agent 不能搜索网页,通常是当前权限设置过于严格。除此之外,也需要确认当前进程是否仍然启用了运行时网络锁。
|
|
651
|
+
|
|
652
|
+
1. 检查运行时网络锁:
|
|
653
|
+
```bash
|
|
654
|
+
echo "${CODEX_SANDBOX_NETWORK_DISABLED:-0}"
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
如果输出为 `1`,即使在 Settings 中放宽权限,网络请求仍可能被阻止。需要在部署或启动层(shell profile、systemd、Docker、PM2)移除或覆盖该变量,然后重启 Dr. Claw。
|
|
658
|
+
|
|
659
|
+
2. 打开 **Settings**(侧边栏齿轮图标)。
|
|
660
|
+
3. 进入 **Permissions**,然后选择当前使用的 Agent:
|
|
661
|
+
- **Claude Code**:
|
|
662
|
+
- 在 **Allowed Tools** 中允许 `WebSearch`、`WebFetch`。
|
|
663
|
+
- 确认这两个工具不在 **Blocked Tools** 中。
|
|
664
|
+
- 若希望减少确认弹窗,可开启 **Skip permission prompts**。
|
|
665
|
+
- **Gemini CLI**:
|
|
666
|
+
- 选择合适的 **Permission Mode**。
|
|
667
|
+
- 若需要网页访问,在 **Allowed Tools** 中允许 `google_web_search` 与 `web_fetch`。
|
|
668
|
+
- 确认它们不在 **Blocked Tools** 中。
|
|
669
|
+
- **Codex**:
|
|
670
|
+
- 在 **Permission Mode** 中切换到 **Bypass Permissions**(在需要网页访问时)。
|
|
671
|
+
4. 返回 **Chat**,发送新消息并重新尝试网页搜索。
|
|
672
|
+
|
|
673
|
+
Codex 权限模式说明:
|
|
674
|
+
- **Default / Accept Edits**:仍是沙箱执行,网络可能继续受会话策略限制。
|
|
675
|
+
- **Bypass Permissions**:`sandboxMode=danger-full-access`,具有完整磁盘与网络访问权限。
|
|
676
|
+
|
|
677
|
+
安全提示:
|
|
678
|
+
- 仅在可信项目/环境中使用更宽松的权限设置。
|
|
679
|
+
- 完成网页搜索后,建议切回更安全的设置。
|
|
680
|
+
|
|
681
|
+
</details>
|
|
682
|
+
|
|
683
|
+
<details>
|
|
684
|
+
<summary><strong>第 5 步 — 解决"Workspace Trust"或首次运行错误</strong></summary>
|
|
685
|
+
|
|
686
|
+
每个 Agent 首次在项目目录中执行代码时,可能需要进行一次性的信任确认或登录。如果 Chat 窗口卡住或弹出信任/认证提示,请切换到 Dr. Claw 内置的 **Shell** 标签页,在那里同意提示即可。
|
|
687
|
+
|
|
688
|
+
操作步骤:
|
|
689
|
+
1. 切换到 Dr. Claw 的 **Shell** 标签页。
|
|
690
|
+
2. 在 Shell 中同意 trust/auth 提示。
|
|
691
|
+
3. 返回 **Chat** 重新发送消息即可。
|
|
692
|
+
|
|
693
|
+
Dr. Claw 默认已经开启 trust 流程,因此通常**不需要**再手动输入额外的 trust 指令。
|
|
694
|
+
|
|
695
|
+
信任状态按目录持久保存,每个项目只需操作一次。
|
|
696
|
+
|
|
697
|
+
> **Shell 标签页无法使用?** 如果 Shell 标签页报 `Error: posix_spawnp failed`,请参阅 [docs/faq.zh-CN.md](docs/faq.zh-CN.md) 中的修复方法,然后重试。
|
|
698
|
+
|
|
699
|
+
您也可以随时切换到其他标签页:
|
|
700
|
+
|
|
701
|
+
| 标签页 | 功能说明 |
|
|
702
|
+
|--------|----------|
|
|
703
|
+
| **Chat** | 从这里开始。用它描述研究想法、生成流水线,并用所选 Agent 执行任务。 |
|
|
704
|
+
| **Survey** | 查看当前项目的论文、文献图谱、笔记和调研阶段任务。 |
|
|
705
|
+
| **Research Lab** | 在一个视图里查看研究简报、任务列表、进度和已生成的产物。 |
|
|
706
|
+
| **Skills** | 浏览已安装的 Skills,查看内容,并导入本地 Skills。 |
|
|
707
|
+
| **Compute** | 在一个位置管理计算资源并运行实验工作负载。 |
|
|
708
|
+
| **Shell** | 需要直接使用 CLI、处理 trust 提示或手动执行命令时,使用内置终端。 |
|
|
709
|
+
| **Files** | 浏览、打开、创建、重命名和编辑项目文件,并支持语法高亮。 |
|
|
710
|
+
| **Git** | 不离开应用即可查看差异、暂存更改、提交和切换分支。 |
|
|
711
|
+
|
|
712
|
+
</details>
|
|
713
|
+
|
|
714
|
+
<details>
|
|
715
|
+
<summary><strong>研究技能(Skills)</strong></summary>
|
|
716
|
+
|
|
717
|
+
Dr. Claw 当前以生成后的 **Pipeline Task List** 作为执行流水线。
|
|
718
|
+
项目内置了 **100+ 个 skills**(位于 `skills/`),用于辅助科研任务,包括 idea 探索、代码调研、实验开发/分析、论文写作、审阅与交付等。
|
|
719
|
+
Agent 会自动发现这些 skills,并在任务执行过程中按需调用。
|
|
720
|
+
|
|
721
|
+
</details>
|
|
722
|
+
|
|
723
|
+
## 补充说明
|
|
724
|
+
<details>
|
|
725
|
+
<summary><span style="font-size: 1.17em; font-weight: 600;">移动端、架构与安全配置</span></summary>
|
|
726
|
+
|
|
727
|
+
### 移动端与平板
|
|
728
|
+
|
|
729
|
+
Dr. Claw 完全响应式设计。在移动设备上:
|
|
730
|
+
|
|
731
|
+
- **底部选项卡栏** — 方便拇指操作
|
|
732
|
+
- **滑动手势** — 触摸优化的控制方式
|
|
733
|
+
- **添加到主屏幕** — 可作为 PWA(渐进式 Web 应用)使用
|
|
734
|
+
|
|
735
|
+
### 架构
|
|
736
|
+
|
|
737
|
+
#### 系统概览
|
|
738
|
+
|
|
739
|
+
```
|
|
740
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
741
|
+
│ Frontend │ │ Backend │ │ Agent │
|
|
742
|
+
│ (React/Vite) │◄──►│ (Express/WS) │◄──►│ Integration │
|
|
743
|
+
│ │ │ │ │ │
|
|
744
|
+
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
#### 后端 (Node.js + Express)
|
|
748
|
+
- **Express 服务器** - 具有静态文件服务的 RESTful API
|
|
749
|
+
- **WebSocket 服务器** - 用于聊天和项目刷新的通信
|
|
750
|
+
- **Agent 集成 (Claude Code、Gemini CLI、Codex、OpenRouter)** - 负责进程拉起、流式输出与会话管理
|
|
751
|
+
- **文件系统 API** - 为项目公开文件浏览器
|
|
752
|
+
|
|
753
|
+
#### 前端 (React + Vite)
|
|
754
|
+
- **React 18** - 带有 hooks 的现代组件架构
|
|
755
|
+
- **CodeMirror** - 具有语法高亮的高级代码编辑器
|
|
756
|
+
|
|
757
|
+
### 安全与工具配置
|
|
758
|
+
|
|
759
|
+
**🔒 重要提示**: 各 Agent 的权限都是按提供方独立配置的。在开启宽松的文件、Shell 或网页访问前,请先检查 **Settings → Permissions**。
|
|
760
|
+
|
|
761
|
+
#### 启用工具
|
|
762
|
+
|
|
763
|
+
为了安全地使用网页搜索和高权限工具:
|
|
764
|
+
|
|
765
|
+
1. **打开 Settings** - 点击侧边栏中的齿轮图标
|
|
766
|
+
2. **选择 Agent** - Claude Code、Gemini CLI 或 Codex
|
|
767
|
+
3. **按需启用** - 仅开启当前任务需要的工具或权限模式
|
|
768
|
+
4. **应用设置** - 您的偏好设置将保存在本地
|
|
769
|
+
|
|
770
|
+
**推荐方法**: 优先使用最保守的权限模式,只在确实需要时放宽配置。
|
|
771
|
+
|
|
772
|
+
</details>
|
|
773
|
+
|
|
774
|
+
## 贡献
|
|
775
|
+
<details>
|
|
776
|
+
<summary><span style="font-size: 1.17em; font-weight: 600;">展开内容</span></summary>
|
|
777
|
+
|
|
778
|
+
我们欢迎贡献!请遵循以下指南:
|
|
779
|
+
|
|
780
|
+
#### 入门
|
|
781
|
+
1. **Fork** 仓库
|
|
782
|
+
2. **克隆** 您的 fork:`git clone <your-fork-url>`
|
|
783
|
+
3. **安装** 依赖:`npm install`
|
|
784
|
+
4. **创建** 特性分支:`git checkout -b feature/amazing-feature`
|
|
785
|
+
|
|
786
|
+
#### 开发流程
|
|
787
|
+
1. **进行更改**,遵循现有代码风格
|
|
788
|
+
2. **彻底测试** - 确保所有功能正常工作
|
|
789
|
+
3. **运行质量检查**:`npm run typecheck && npm run build`
|
|
790
|
+
4. **提交**,遵循 [Conventional Commits](https://conventionalcommits.org/) 的描述性消息
|
|
791
|
+
5. **推送** 到您的分支:`git push origin feature/amazing-feature`
|
|
792
|
+
6. **提交** 拉取请求,包括:
|
|
793
|
+
- 更改的清晰描述
|
|
794
|
+
- UI 更改的截图
|
|
795
|
+
- 适用时的测试结果
|
|
796
|
+
|
|
797
|
+
#### 贡献内容
|
|
798
|
+
- **错误修复** - 帮助我们提高稳定性
|
|
799
|
+
- **新功能** - 增强功能(先在 issue 中讨论)
|
|
800
|
+
- **文档** - 改进指南和 API 文档
|
|
801
|
+
- **UI/UX 改进** - 更好的用户体验
|
|
802
|
+
- **性能优化** - 让它更快
|
|
803
|
+
|
|
804
|
+
</details>
|
|
805
|
+
|
|
806
|
+
安装与故障排除请参阅 [FAQ](docs/faq.zh-CN.md)。
|
|
807
|
+
|
|
808
|
+
## 许可证
|
|
809
|
+
|
|
810
|
+
本仓库包含一个组合作品。
|
|
811
|
+
|
|
812
|
+
其中,源自 Claude Code UI 的上游部分继续适用 GNU General Public License v3.0(GPL-3.0);Dr. Claw Contributors 的原创修改与新增部分适用 GNU Affero General Public License v3.0(AGPL-3.0)。
|
|
813
|
+
|
|
814
|
+
完整许可证文本与适用范围说明请参见 [LICENSE](LICENSE) 和 [NOTICE](NOTICE)。
|
|
815
|
+
|
|
816
|
+
## 引用
|
|
817
|
+
|
|
818
|
+
如果这个项目对你的研究有帮助,欢迎引用我们的工作:
|
|
819
|
+
|
|
820
|
+
```bibtex
|
|
821
|
+
@misc{song2026drclaw,
|
|
822
|
+
author = {Dingjie Song and Hanrong Zhang and Dawei Liu and Yixin Liu and Zongxia Li and Zhengqing Yuan and Siqi Zhang and Lichao Sun},
|
|
823
|
+
title = {Dr. Claw: An AI Research Workspace from Idea to Paper},
|
|
824
|
+
year = {2026},
|
|
825
|
+
organization = {GitHub},
|
|
826
|
+
url = {https://github.com/OpenLAIR/dr-claw},
|
|
827
|
+
homepage = {https://openlair.github.io/dr-claw},
|
|
828
|
+
}
|
|
829
|
+
```
|
|
830
|
+
|
|
831
|
+
## 致谢
|
|
832
|
+
|
|
833
|
+
### 构建工具
|
|
834
|
+
- **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)** - Anthropic 的官方 CLI
|
|
835
|
+
- **[Gemini CLI](https://geminicli.com/docs/get-started/installation/)** - Google 的 Gemini 命令行智能体
|
|
836
|
+
- **[Codex](https://developers.openai.com/codex)** - OpenAI Codex
|
|
837
|
+
- **[React](https://react.dev/)** - 用户界面库
|
|
838
|
+
- **[Vite](https://vitejs.dev/)** - 快速构建工具和开发服务器
|
|
839
|
+
- **[Tailwind CSS](https://tailwindcss.com/)** - 实用优先的 CSS 框架
|
|
840
|
+
- **[CodeMirror](https://codemirror.net/)** - 高级代码编辑器
|
|
841
|
+
|
|
842
|
+
### 致谢与参考
|
|
843
|
+
- **[Claude Code UI](https://github.com/siteboon/claudecodeui)** — Dr. Claw 基于此项目。详见 [NOTICE](NOTICE)。
|
|
844
|
+
- **[AI Researcher](https://github.com/HKUDS/AI-Researcher/)**(HKUDS)— 研究流程与智能体研究灵感致谢与参考。
|
|
845
|
+
|
|
846
|
+
## 支持与社区
|
|
847
|
+
|
|
848
|
+
### 保持更新
|
|
849
|
+
- **Star** 此仓库以表示支持
|
|
850
|
+
- **Watch** 以获取更新和新版本
|
|
851
|
+
- **Follow** 项目以获取公告
|
|
852
|
+
|
|
853
|
+
---
|
|
854
|
+
|
|
855
|
+
<div align="center">
|
|
856
|
+
<strong>Dr. Claw — 从想法到论文。</strong>
|
|
857
|
+
</div>
|