学途智助
首页
分类
标签
关于网站
登录
eeettt
2026-03-26
15
作者编辑
OpenClaw 项目理解提示词
# OpenClaw 项目理解提示词 ## 项目概述 你现在需要学习和理解 **OpenClaw** 项目。这是一个开源的个人 AI 助手框架,可以运行在你自己的设备上。 **GitHub**: https://github.com/openclaw/openclaw **定位**: Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞 ## 核心特性 ### 1. 多平台支持 OpenClaw 可以在你已经使用的通讯渠道上回复你: - **消息平台**: WhatsApp, Telegram, Slack, Discord, Signal, iMessage, BlueBubbles - **企业工具**: Microsoft Teams, Google Chat, Matrix, Feishu, Mattermost - **其他**: IRC, Nextcloud Talk, Nostr, Synology Chat, Tlon, Twitch, Zalo, WebChat - **语音**: macOS/iOS/Android 支持语音交互 - **Canvas**: 可以渲染一个你控制的实时 Canvas ### 2. 技能系统 (ClawHub) - **ClawHub**: 最小化技能注册中心 - Agent 可以自动搜索技能并按需拉取新技能 - 技能是模块化的,存储在 `extensions/` 目录下 ### 3. 记忆与上下文管理(核心) OpenClaw 有完整的记忆和上下文管理系统,这是 AI Agent 的核心能力。 ## 项目技术栈 - **语言**: TypeScript (ESM),Node 22+,支持 Bun - **运行方式**: - macOS: 菜单栏 App - 其他平台: CLI + Gateway 服务器 - **测试框架**: Vitest (V8 coverage) - **格式化/Lint**: Oxlint + Oxfmt - **包管理**: pnpm (主要) + Bun (开发/测试) ## 项目结构 ``` openclaw/ ├── src/ # 核心源代码 │ ├── cli/ # CLI 命令行工具 │ ├── commands/ # 命令实现 │ ├── agents/ # Agent 核心逻辑 │ ├── memory/ # 记忆系统实现 ⭐ │ ├── context-engine/ # 上下文引擎 ⭐ │ ├── infra/ # 基础设施 │ ├── gateway/ # Gateway 服务器 │ ├── browser/ # 浏览器集成 │ ├── auto-reply/ # 自动回复 │ └── ... ├── extensions/ # 插件扩展(工作区包) │ ├── memory-core/ # 默认记忆插件 ⭐ │ ├── memory-lancedb/ # LanceDB 记忆后端 ⭐ │ ├── discord/ # Discord 集成 │ ├── telegram/ # Telegram 集成 │ ├── slack/ # Slack 集成 │ └── ... ├── docs/ # 文档 │ ├── concepts/ # 核心概念 │ │ ├── memory.md # 记忆系统文档 ⭐ │ │ ├── context.md # 上下文文档 ⭐ │ │ ├── context-engine.md # 上下文引擎文档 ⭐ │ │ └── ... │ ├── reference/ # 参考文档 │ │ ├── memory-config.md # 记忆配置参考 ⭐ │ │ └── ... │ └── cli/ # CLI 文档 ├── apps/ # 应用(iOS/Android/macOS) ├── test/ # 测试 └── vendor/ # 第三方代码 ⭐ = 记忆和上下文管理相关的核心部分 ``` ## 核心概念 ### 1. Agent 工作区 (Workspace) - 默认位置: `~/.openclaw/workspace` - 存储 Agent 的所有文件、记忆、配置 ### 2. 会话 (Session) - 每个对话都是一个会话 - 会话数据存储在 `~/.openclaw/sessions/` (Pi sessions) - 支持跨会话的持久化记忆 ### 3. 技能 (Skills) - 技能是 Agent 的能力扩展 - 技能列表显示在系统提示中 - 技能指令按需加载(`read` 技能的 `SKILL.md`) ### 4. 工具 (Tools) - Agent 可以调用的函数 - 工具模式影响上下文:工具列表 + 工具 JSON Schema ### 5. 插件系统 - 插件存放在 `extensions/*` - 通过 `openclaw.plugin.json` 声明 - 使用 Plugin SDK API (`openclaw/plugin-sdk/*`) ## 记忆与上下文管理(核心重点) ### 记忆系统架构 OpenClaw 的记忆是 **Markdown 文件**,存储在 Agent 工作区: 1. **每日记忆** (`memory/YYYY-MM-DD.md`) - 追加式日志 - 会话开始时读取今天和昨天的记忆 2. **长期记忆** (`MEMORY.md`) - 精选的长期记忆 - 只在主会话加载(不在群组上下文中) 3. **记忆工具** - `memory_search`: 语义搜索索引片段 - `memory_get`: 读取特定 Markdown 文件/行范围 4. **自动记忆刷新** (Automatic Memory Flush) - 当会话接近自动压缩时,触发一个静默的 agentic turn - 提醒模型在压缩前写入持久记忆 - 配置: `agents.defaults.compaction.memoryFlush` 5. **向量记忆搜索** - 支持多种 Embedding 提供商:OpenAI, Gemini, Voyage, Mistral, Ollama, GGUF - 混合搜索 (BM25 + Vector) - 支持 MMR 多样性重排序和时间衰减 ### 上下文管理架构 **Context = 发送给模型的所有内容** 1. **上下文组成** - 系统提示 (OpenClaw 构建) - 对话历史 - 工具调用/结果 - 附件 (图片/音频/文件) 2. **系统提示结构** - 工具列表 + 描述 - 技能列表 (metadata only) - 工作区位置 - 时间 (UTC + 用户时区) - 运行时元数据 (主机/OS/模型/thinking) - 注入的工作区文件 (Project Context) 3. **注入的工作区文件** 默认注入以下文件(如果存在): - `AGENTS.md` - `SOUL.md` - `TOOLS.md` - `IDENTITY.md` - `USER.md` - `HEARTBEAT.md` - `BOOTSTRAP.md` (首次运行) 4. **上下文引擎 (Context Engine)** - 可插拔架构 - **Legacy Engine**: OpenClaw 内置的默认引擎 - **Plugin Engine**: 可以替换为插件引擎 - 控制上下文如何组装、压缩、跨 subagent 管理 5. **上下文引擎生命周期** - **Ingest**: 新消息添加到会话时调用 - **Assemble**: 模型运行前,返回符合 token 预算的消息序列 - **Compact**: 上下文窗口满时或用户运行 `/compact` 时调用 - **After turn**: 运行完成后调用 6. **压缩 (Compaction)** - 将旧历史压缩成摘要以释放空间 - 保留最近的消息完整 - 配置: `agents.defaults.compaction.reserveTokensFloor` 7. **会话修剪 (Session Pruning)** - 从内存中删除旧的工具结果 - 不重写会话记录 ### 记忆插件 1. **memory-core** (默认) - 基于 SQLite + sqlite-vec - 本地向量搜索 - 支持多种 Embedding 提供商 2. **memory-lancedb** - 使用 LanceDB 作为向量存储后端 - 适合大规模记忆数据 3. **QMD 后端** (实验性) - 本地优先的搜索 sidecar - 结合 BM25 + 向量 + 重排序 - 需要单独安装 `qmd` CLI ## 学习任务 ### 第一步:理解记忆系统 1. 阅读 `docs/concepts/memory.md` - 记忆文件布局和工作流 2. 阅读 `docs/reference/memory-config.md` - 记忆配置参考 3. 查看 `src/memory/` 目录的实现 4. 查看 `extensions/memory-core/` 和 `extensions/memory-lancedb/` ### 第二步:理解上下文管理 1. 阅读 `docs/concepts/context.md` - 上下文是什么 2. 阅读 `docs/concepts/context-engine.md` - 上下文引擎架构 3. 查看 `src/context-engine/` 目录的实现 4. 理解上下文如何构建、压缩、传递 ### 第三步:分析记忆-上下文协作 1. 记忆如何注入到上下文中 2. 上下文压缩时如何处理记忆 3. 记忆搜索如何影响上下文构建 4. 自动记忆刷新的触发时机和实现 ### 第四步:与 OpenViking 的集成 1. 查看 `OpenViking/examples/openclaw-plugin/` 目录 2. 理解 OpenViking 如何作为 OpenClaw 的上下文插件工作 3. 对比 OpenClaw 原生记忆系统和 OpenViking 的差异 4. 分析集成后的性能提升(43-49% 任务完成率,83-96% token 成本降低) ### 第五步:技术实现细节 1. Embedding 生成和存储机制 2. 向量搜索算法(BM25 + Vector Hybrid) 3. MMR 多样性重排序实现 4. 时间衰减机制 5. 上下文压缩算法(摘要生成) ## 分析输出要求 请按以下格式输出你的分析结果: ### 1. 记忆系统架构 - 记忆文件的存储结构 - 记忆工具的实现原理 - 自动记忆刷新的触发机制 - 向量搜索的实现细节 ### 2. 上下文管理架构 - 上下文的组成部分 - 系统提示的构建流程 - 上下文引擎的可插拔设计 - 上下文压缩和修剪机制 ### 3. 记忆与上下文的协作 - 记忆如何影响上下文构建 - 上下文满时的记忆持久化策略 - 跨会话的记忆继承机制 - 记忆搜索在上下文中的作用 ### 4. 实现细节 - 关键代码文件和函数 - 数据流图(用文字或 ASCII 图描述) - 配置项详解 ### 5. 与 OpenViking 的对比 - OpenClaw 原生记忆系统的优缺点 - OpenViking 作为插件的优势 - 集成方式和接口设计 - 性能提升的原理分析 ### 6. 最佳实践 - 如何配置记忆系统以获得最佳性能 - 如何选择合适的 Embedding 提供商 - 如何优化上下文使用以节省 token - 如何调试记忆和上下文问题 ## 项目路径 - OpenClaw 本地路径: `/Users/xiaotingwang/code/research/openclaw/` - OpenViking 本地路径: `/Users/xiaotingwang/code/research/OpenViking/` ## 开始分析 现在请开始系统性地分析 OpenClaw 的记忆系统和上下文管理机制,重点关注: 1. **记忆的持久化**:Markdown 文件 → Embedding → 向量索引 2. **上下文的构建**:系统提示 + 对话历史 + 工具结果 + 记忆检索 3. **压缩与修剪**:如何在有限的上下文窗口内保持长期记忆 4. **可插拔设计**:如何让 OpenViking 等外部系统接管记忆/上下文管理 请提供详细的代码级分析和架构图。
Python
赞
博客信息
作者
eeettt
发布日期
2026-03-26
其他信息 : 其他三字母的人名首字母都是其他同学发布的哦