Skip to content

Feat/knowledge#36

Open
YongMaple wants to merge 3 commits intoqiuzhi2046:mainfrom
YongMaple:feat/knowledge
Open

Feat/knowledge#36
YongMaple wants to merge 3 commits intoqiuzhi2046:mainfrom
YongMaple:feat/knowledge

Conversation

@YongMaple
Copy link
Copy Markdown

变更说明

新增知识库管理功能,允许用户将本地 Markdown 文件夹挂载为 OpenClaw 的 memorySearch.extraPaths 记忆检索源,并支持通过 Git 进行双向同步(拉取远端更新 & 推送本地修改)。

核心设计决策:

  • 使用绝对路径写入 extraPaths(OpenClaw 会忽略软链接)
  • 自动注入 AGENTS.md,引导 AI 使用 memory_search
  • 智能远端识别:URL 匹配 → tracking upstream → 单一远端 → 兜底 origin
  • 同时检测未提交变更与已提交但未推送的变更,确保一键同步完整性

变更类型

  • Bug 修复
  • 新功能
  • 重构 / 优化
  • 依赖更新
  • CI / 构建配置
  • 文档

影响范围

  • Electron 主进程 (electron/main/)
    • 新增 knowledge-base.ts:知识库配置管理、Git 操作、extraPaths 集成(+689 行)
    • 修改 ipc-handlers.ts:注册 7 个 IPC Handler(select-folderliststatusesaddremoveset-gitsync
  • Preload / IPC 桥接 (electron/preload/)
    • 修改 index.ts:在 preload bridge 中暴露知识库 API
  • React 渲染层 (src/)
    • 新增 src/pages/KnowledgeBasePage.tsx:文件夹选择、Git 配置、同步按钮、状态展示、使用说明(+451 行)
    • 修改 src/App.tsx:新增 /knowledge 路由
    • 修改 src/components/MainLayout.tsx:新增导航入口
    • 修改 src/types/electron.d.ts:新增 KnowledgeBase 相关类型定义
    • 修改 src/shared/openclaw-phase2.ts:新增 knowledge-base-syncOpenClawGuardedWriteReason
    • 修改 src/constants/tooltips.json:新增知识库 UI 元素 tooltip 文案
  • 构建与打包配置
  • 文档

测试

  • 已通过 npm run typecheck
  • 已通过 npm test
  • 已在本地运行 npm run dev 验证功能

截图 / 录屏

6677812c-360c-4bc4-8a7c-6c8f75763ddc

补充说明

  • 知识库同步依赖本地 Git 环境,需要用户已配置 SSH Key 或 HTTPS 凭据
  • memorySearch.extraPaths 需 OpenClaw 版本支持该配置项,否则挂载路径不生效
  • 后续可考虑支持定时自动同步、多分支切换等功能

jyf and others added 3 commits March 31, 2026 09:56
Add a Knowledge Base feature that allows users to mount local Markdown
folders as memory search sources for OpenClaw, with Git-based
bidirectional synchronization support.

Main changes:
- Add knowledge-base.ts backend module for config, Git ops, and
  OpenClaw memorySearch.extraPaths integration
- Register 7 IPC handlers (select-folder, list, statuses, add, remove,
  set-git, sync) in ipc-handlers.ts
- Expose knowledge base API methods in preload bridge
- Add KnowledgeBasePage.tsx with folder selection, Git config, sync
  button, status display, and usage instructions
- Add navigation item and route for /knowledge
- Add KnowledgeBase types to electron.d.ts
- Add knowledge-base-sync to OpenClawGuardedWriteReason
- Add tooltip entries for knowledge base UI elements

Key design decisions:
- Use absolute paths in memorySearch.extraPaths instead of symlinks
  (OpenClaw ignores symlinks in extraPaths)
- Auto-inject AGENTS.md instructions for AI to use memory_search
- Smart Git remote resolution (match by URL > tracking upstream >
  single remote > fallback to origin)
- Detect both uncommitted and unpushed changes for sync
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant