project-overview

project-overview

熱門

LobeHub 開源 Monorepo 架構地圖。當需要定位程式碼架構分層、理解 apps/packages/src 的目錄配置、商業 Stub 占位檔、專案整體結構,或是需要快速熟悉此儲存庫(Onboarding)時使用。

8.1萬星標
1.6萬分支
更新於 2026/8/6
SKILL.md
唯讀
名稱
project-overview
描述

LobeHub 開源 Monorepo 架構地圖。當需要定位程式碼架構分層、理解 apps/packages/src 的目錄配置、商業 Stub 占位檔、專案整體結構,或是需要快速熟悉此儲存庫(Onboarding)時使用。

LobeHub 專案總覽

以下目錄清單為精心整理的核心位置地圖,非完整詳盡的樹狀圖。packages/src/store/、路由群組(route groups)等會隨時間擴充——請在實際目錄執行 ls 以取得最新的完整結構。

專案描述

具備現代化設計的開源 AI Agent 工作區:LobeHub(前身為 LobeChat)。
本儲存庫為開源根專案github.com/lobehub/lobehub,套件名稱 @lobehub/lobehub)。

支援平台:

  • Web 桌面端 / 行動端
  • 桌面端應用程式(Electron)— apps/desktop
  • 行動端 App(React Native)— 獨立儲存庫,已正式上線(未包含在此 Monorepo 中)

Logo Emoji: 🤯

完整技術棧

類別 技術
框架 (Framework) Next.js 16 + React 19
路由 (Routing) Next.js 內建 SPA(搭配 react-router-dom
語言 (Language) TypeScript
UI 元件 @lobehub/ui、antd
CSS-in-JS antd-style
圖示 (Icons) lucide-react、@ant-design/icons
多語系 (i18n) react-i18next
狀態管理 (State) zustand
URL 參數 nuqs
資料擷取 SWR
React Hooks aHooks
日期/時間 dayjs
工具函式庫 es-toolkit
API TRPC(型別安全)
資料庫 Neon PostgreSQL + Drizzle ORM
測試 (Testing) Vitest

精確的套件版本請參閱根目錄的 package.json——以該檔案為準。

Monorepo 目錄架構

扁平化配置——apps/packages/src/ 均位於儲存庫根目錄。未採用 git submodules。

(repo root)
├── apps/
│   ├── cli/                  # LobeHub CLI
│   ├── desktop/              # Electron 桌面端應用程式
│   ├── device-gateway/       # 裝置閘道器服務 (Device gateway service)
│   └── server/               # 基於 Next.js 的伺服器端:featureFlags, globalConfig, modules, routers, services, utils, workflows(別名 `@/server/*`)
├── docs/                     # 更新日誌、開發指南、自主託管、使用說明 (changelog, development, self-hosting, usage)
├── locales/                  # en-US, zh-CN, ...
├── packages/                 # 約 80 個 @lobechat/* 工作區套件——請執行 `ls` 查看完整列表。核心套件包含:
│   ├── agent-runtime/        # Agent 執行階段核心 (Agent runtime core)
│   ├── agent-signal/         # Agent Signal 處理管道
│   ├── agent-tracing/        # 追蹤 / 快照 (Tracing / snapshots)
│   ├── builtin-tool-*/       # 單一工具套件(計算機、網頁瀏覽、claude-code 等)
│   ├── builtin-tools/        # 整合 builtin-tool-* 的中央註冊表
│   ├── context-engine/
│   ├── database/             # src/{models,schemas,repositories}
│   ├── model-bank/           # 模型定義與提供者卡片 (Model definitions & provider cards)
│   ├── model-runtime/        # src/{core,providers}
│   ├── locales/              # 多語系單一事實來源:packages/locales/src/default/
│   ├── env/                  # 環境變數 schemas (@/envs/* → packages/env/src/*)
│   ├── app-config/
│   ├── business/             # 開源版 Stub 占位檔 (config, const, model-bank, model-runtime) — 雲端版會覆蓋此處
│   ├── types/
│   └── utils/
└── src/
    ├── app/
    │   ├── (backend)/        # api, f, market, middleware, oidc, trpc, webapi
    │   ├── spa/              # SPA HTML 範本服務
    │   └── spa-auth/         # 驗證用 HTML 外殼 (SSR)
    ├── routes/               # SPA 頁面區段(輕量化——下發委派給 features/ 處理)
    │   └── (main)/ (mobile)/ (desktop)/ (popup)/ auth/ onboarding/ share/
    ├── spa/                  # SPA 入口與路由配置
    │   ├── entry.{web,mobile,desktop,popup}.tsx
    │   └── router/
    ├── business/             # 開源版 Stub 占位檔 (client/server) — 雲端版儲存庫會提供實際實作
    ├── features/             # 領域業務元件 (Domain business components)
    ├── store/                # 約 30 個 zustand stores — 請執行 `ls` 查看完整列表
    ├── server/               # 僅限獨立 Hono 伺服器模組:agent-hono, workflows-hono(主要後端位於 `apps/server`)
    └── ...                   # components, hooks, layout, libs, services, types, utils

架構地圖

分層 位置
UI 元件 src/components, src/features
SPA 頁面 src/routes/
React Router 路由 src/spa/router/
全域 Providers src/layout
Zustand Stores 狀態 src/store
用戶端服務 (Client Services) src/services/
REST API src/app/(backend)/webapi
tRPC Routers apps/server/src/routers/{async|lambda|mobile|tools}
伺服器端服務 (Server Services) apps/server/src/services(可存取 DB)
伺服器端模組 (Server Modules) apps/server/src/modules(無法存取 DB)
功能旗標 (Feature Flags) apps/server/src/featureFlags
全域配置 (Global Config) apps/server/src/globalConfig
DB Schema packages/database/src/schemas
DB Model packages/database/src/models
DB Repository packages/database/src/repositories
第三方整合 (Third-party) src/libs(分析、OIDC 等)
內建工具 (Builtin Tools) packages/builtin-tool-*, packages/builtin-tools
開源預留 Stub 檔 src/business/*, packages/business/*(本儲存庫)

資料流向

React UI → Store Actions → Client Service → TRPC Lambda → Server Services → DB Model → PostgreSQL

注意:與雲端版儲存庫(Cloud Repo)的關係

此開源儲存庫被另一個獨立的私有雲端(SaaS)儲存庫引入,並以 Git Submodule 形式掛載於 lobehub/ 目錄。雲端版儲存庫提供了:

  • src/business/{client,server}packages/business/* 的完整實作,用於覆蓋本開源版中所提供的預留 Stub 檔。
  • 雲端版專用的路由(例如 (cloud)/embed/)、雲端版專用的 stores(例如 subscription/)、雲端版專用的 tRPC 路由(帳務、預算、風控等),以及位於 src/app/(backend)/cron/ 下的 Vercel Cron 定時任務路由。
  • 雲端版中的檔案解析優先順序(File-resolution order):@/store/x → 優先載入雲端版的 src/store/x,其次為 lobehub/packages/store/src/x,最後才是 lobehub/src/store/x雲端版的覆蓋擁有最高優先權

若僅在此儲存庫獨立開發,可直接忽略雲端層——本儲存庫中的 src/business/packages/business/ 的 Stub 檔即為此處的單一事實來源(Source of Truth)。