OpenClaw 学习系列之二:项目地图

项目地图

打开代码前先看这份地图,快速定位你想找的东西。

顶层目录

复制代码
openclaw/
├── src/                 # 核心源码(TypeScript ESM)
├── extensions/          # 渠道和功能插件(独立 npm 包)
├── apps/                # 原生应用(iOS / Android / macOS)
├── ui/                  # Web 前端
├── packages/            # 工作区共享包
├── scripts/             # 构建和运维脚本
├── docs/                # 文档(Mintlify)
├── test/                # 测试工具
└── dist/                # 编译输出

src/ 核心结构

按功能分组,列出你最可能需要看的目录:

消息入口和路由

目录 作用 关键文件
src/gateway/ Gateway 服务器主体 server.impl.ts (主入口), server-channels.ts
src/gateway/server-methods/ RPC 方法处理器 chat.ts, send.ts, types.ts
src/routing/ 消息路由决策 resolve-route.ts, session-key.ts
src/channels/ 渠道抽象与注册 plugins/types.plugin.ts, plugins/types.adapters.ts
src/auto-reply/ 自动回复分发 dispatch.ts, reply/

Agent 和 AI 调用

目录 作用 关键文件
src/agents/ Agent 运行时 pi-tools.ts, context.ts
src/agents/pi-embedded-runner/ 嵌入式 Agent 执行器 run.ts

配置和状态

目录 作用 关键文件
src/config/ 配置加载与校验 types.ts (类型导出), types.base.ts, io.ts
src/sessions/ 会话持久化 session-key-utils.ts
src/memory/ 长期记忆 (SQLite + 向量)

基础设施

目录 作用 关键文件
src/cli/ CLI 入口和命令路由 entry.ts, run-main.ts, deps.ts
src/commands/ 各 CLI 子命令实现
src/plugins/ 插件注册表和运行时 registry.ts, types.ts
src/plugin-sdk/ 插件开发公共 SDK
src/infra/ 底层工具(日志、错误、进程) agent-events.ts
src/shared/ 共享工具函数 lazy-runtime.ts
src/media/ 媒体处理管道

extensions/ 插件目录

每个插件是独立的 npm 包,有自己的 package.json 和 openclaw.plugin.json。

常见渠道插件:feishu、matrix、msteams、bluebubbles、zalo、voice-call 等。

核心渠道(src/ 内置):telegram、discord、slack、signal、imessage、web(WhatsApp)。

运行时数据位置

数据 路径 格式
配置文件 ~/.openclaw/openclaw.json JSON5
会话记录 ~/.openclaw/sessions/ JSONL (追加写)
记忆数据库 ~/.openclaw/memory/ SQLite + 向量嵌入
凭据 ~/.openclaw/credentials/ 各类 token (权限 0600)
Agent 日志 ~/.openclaw/agents/<id>/sessions/*.jsonl JSONL

开发命令速查

bash 复制代码
pnpm install          # 安装依赖
pnpm build            # 类型检查 + 编译
pnpm tsgo             # 仅类型检查
pnpm check            # lint + format 检查
pnpm format:fix       # 自动格式化
pnpm test             # 运行测试 (vitest)
pnpm test -- src/routing/resolve-route.test.ts  # 运行单个测试
pnpm dev              # 开发模式运行 CLI
pnpm openclaw ...     # 以 dev 模式执行 CLI 命令
相关推荐
小七-七牛开发者15 小时前
Agent 支线知识:Personal Agent 的前世今生
dots·aiagent·openclaw·muse·personalagent
会思想的苇草i19 小时前
OpenClaw 添加技能(Skills) & 常用命令
ai·大模型·skills·openclaw
ShiMetaPi2 天前
182X 端云协同方案详解:部署你的本地 AI Agent 主机
边缘计算·rk3588·aiagent·openclaw·rk1828
七夜zippoe5 天前
把 OpenClaw Agent 搬进 K8s:容器化部署全记录
ai·云原生·容器·kubernetes·openclaw
鬼手点金7 天前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
Pniubi10 天前
基于openclaw实现自定义mcp/skill(第三章)
自研·skill·openclaw
Pniubi11 天前
基于openclaw开发skill与自研agent中的skill开发区别
服务器·agent·skill·openclaw·龙虾
进击的雷神14 天前
把 Claude/GPT 接进飞书、Telegram、Discord:一条命令跑起来的 OpenClaw 部署工具
gpt·飞书·openclaw
鬼手点金15 天前
opencode-隐私优先配置
服务器·前端·javascript·bug·openclaw
AC赳赳老秦18 天前
OpenClaw 与 FineBI 联动方案:公开数据自动采集与实时业务分析看板实践
大数据·开发语言·python·php·finebi·deepseek·openclaw