概述

什么是 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
    
  1. 索引 —— 当用户点击"同步"时,扫描文件,提取文本,分块,并将向量嵌入存储到 SQLite 中。

  2. 检索 —— 当用户提问时,将问题向量化,并使用余弦相似度与所有存储的向量进行比较,找到最相关的前 8 个文本块。

  3. 生成 —— 将相关文本块和用户的问题发送给 LLM,生成带有来源引用的流式回答。