概述¶
什么是 InnoClaw?¶
InnoClaw 是一个类似于 Google NotebookLM 的 AI 驱动的研究助手 Web 应用程序。它允许您将服务器端文件夹作为工作空间打开,浏览和管理文件,并通过 RAG(检索增强生成)与基于工作空间文件的 AI 进行对话。
核心功能¶
工作空间管理 —— 将服务器文件夹映射为持久化工作空间
文件浏览器 —— 树形视图,支持上传、创建、编辑、重命名和删除
GitHub 集成 —— 克隆和拉取 GitHub 仓库(包括私有仓库)
RAG 对话 —— AI 基于工作空间文件内容回答问题,并附带来源引用
Note Generation — Auto-generate summaries, FAQs, briefs, timelines, and daily/weekly reports
Multi-LLM Support — Switch between OpenAI GPT, Anthropic Claude, and Google Gemini
双语界面 —— 中文 / 英文切换
暗色模式 —— 支持浅色和深色主题
机器人集成 —— 支持飞书和企业微信机器人
Agent Mode — Autonomous AI agent with tool usage (bash, file operations, kubectl, article search)
Skills — 206 built-in SCP scientific skills plus custom workflow templates
Article / Paper Search — Search arXiv and Hugging Face Daily Papers
Scheduled Tasks — Cron-based automated tasks (daily/weekly reports, git sync, source sync)
Dataset Management — Download and manage datasets from HuggingFace Hub and ModelScope
Cluster Integration — Kubernetes cluster management with Volcano GPU job submission
架构¶
下图展示了 InnoClaw 的高层架构:
graph TB
subgraph Client["Browser Client"]
UI["Next.js App Router<br/>(React + Tailwind CSS)"]
I18N["next-intl<br/>(EN / ZH)"]
Theme["next-themes<br/>(Light / Dark)"]
end
subgraph Server["Next.js Server"]
API["API Routes"]
RAG["RAG Pipeline"]
DB["SQLite + Drizzle ORM"]
FS["File System"]
Git["Git Operations"]
Scheduler["Task Scheduler"]
end
subgraph AI["AI Providers"]
OpenAI["OpenAI API"]
Anthropic["Anthropic API"]
Gemini["Gemini API"]
Embed["Embedding API"]
end
subgraph Bots["Bot Integrations"]
Feishu["Feishu / Lark"]
WeChat["WeChat Enterprise"]
end
subgraph External["External Services"]
HF["HuggingFace Hub"]
ModelScope["ModelScope"]
ArXiv["arXiv"]
K8s["Kubernetes Cluster"]
end
UI --> API
API --> RAG
API --> DB
API --> FS
API --> Git
API --> Scheduler
RAG --> Embed
RAG --> DB
API --> OpenAI
API --> Anthropic
API --> Gemini
API --> HF
API --> ModelScope
API --> ArXiv
API --> K8s
Bots --> API
技术栈¶
分类 |
技术 |
|---|---|
框架 |
Next.js 16 (App Router) + TypeScript |
UI |
Tailwind CSS 4 + shadcn/ui + Radix UI |
AI |
Vercel AI SDK 6 + OpenAI + Anthropic + Gemini |
数据库 |
SQLite (better-sqlite3 + Drizzle ORM) |
向量搜索 |
纯 JS 余弦相似度(无需额外扩展) |
国际化 |
next-intl(中文 / 英文) |
主题 |
next-themes |
RAG 流水线¶
InnoClaw 的核心功能是基于 RAG 的 AI 对话。流水线分为三个阶段:
flowchart LR
subgraph Index["Indexing (Sync)"]
Files["Workspace Files"] --> Extract["Text Extraction"]
Extract --> Chunk["Text Chunking"]
Chunk --> Embedding["Vector Embedding"]
Embedding --> Store["SQLite Storage"]
end
subgraph Query["Query (Chat)"]
Question["User Question"] --> QEmbed["Question Embedding"]
QEmbed --> Search["Cosine Similarity Search"]
Store --> Search
Search --> TopK["Top-K Relevant Chunks"]
end
subgraph Generate["Generation"]
TopK --> Prompt["System Prompt + Chunks + Question"]
Prompt --> LLM["LLM (GPT / Claude / Gemini)"]
LLM --> Answer["Streaming Answer with Source Citations"]
end
索引 —— 当用户点击"同步"时,扫描文件,提取文本,分块,并将向量嵌入存储到 SQLite 中。
检索 —— 当用户提问时,将问题向量化,并使用余弦相似度与所有存储的向量进行比较,找到最相关的前 8 个文本块。
生成 —— 将相关文本块和用户的问题发送给 LLM,生成带有来源引用的流式回答。