type
Post
status
Published
date
Feb 12, 2026
slug
VibeCoding-003
summary
基于VIbe Coding进行OpenClaw开源项目二次开发
tags
Vibe Coding
category
Vibe Coding
icon
password
😀

1. VIbe Coding 开源项目二次开发

notion image
notion image
notion image
notion image
notion image

2. OpenClaw & 本地部署(MVP 验证)

notion image
notion image

Step 1 下载 openclaw源码

Step 2 本地依赖安装并启动

使用 Cursor 打开项目源码

Step 3 创建项目 rules 应用于启动管理

Step 4 精简 rules

这里ai写的rules可能包含项目目录等其他内容,需要精简

Step 5 调试 GateWay的连接

如果是远程服务器部署,可能会无法访问,需要把本地ip改成远程ip

Step 6 Debug 后 更新维护 Rules

Step 7 模型配置

Step 8 模型兼容情况

最小功能添加,直接在页面可以配置模型
更改后,页面左侧增加了Models选项,里面可以配置model name、url、api key。
添加配置,测试问题是否可以提问
qwen3-vl-plus https://dashscope.aliyuncs.com/api/v1 sk-a139e6bc56144b7d896d6e30404cfd10

3. OpenClaw源码拆解-客户端架构设计

codex做项目框架梳理
claude回答
🗒️
OpenClaw 项目整体架构分析 一、系统概述 OpenClaw 是一个多渠道 AI 网关平台,采用插件化架构设计,核心特点是:
统一接入多种消息渠道(Telegram、Slack、Discord、Signal、iMessage、WhatsApp等) 通过 Gateway 提供统一的实时通信和管理能力 支持多端访问(CLI、Web控制台、iOS/macOS/Android客户端) 可扩展的插件系统 二、核心功能模块与代码映射
  1. 启动与命令入口层 功能:提供 CLI 命令行工具,处理用户命令请求
核心文件:
openclaw.mjs - CLI 可执行入口 src/entry.ts - 运行时初始化,处理 Node.js 参数和环境配置 src/index.ts - 主入口,导出核心 API src/cli/ - CLI 框架实现 program.ts - 命令行程序构建 run-main.ts - CLI 主运行逻辑 src/commands/ - 业务命令实现 agent.ts - Agent 执行命令 gateway.ts - Gateway 启动命令 status.ts - 状态查询命令 依赖关系:依赖 src/config(配置)、src/agents(Agent执行)、src/gateway(网关服务)
  1. 网关服务层(Gateway) 功能:核心后端服务,负责协议处理、连接管理、消息路由
核心文件:
src/gateway/server.ts - 网关启动导出 src/gateway/server.impl.ts - 网关装配中枢,整合配置、插件、通道、HTTP/WS服务 src/gateway/server-http.ts - HTTP 服务器实现 提供 Control UI 访问 OpenAI 兼容接口 (/v1/chat/completions) Hooks 和插件路由 src/gateway/server-methods.ts - RPC 方法聚合处理 src/gateway/protocol/ - 网关协议 schema 定义 对外接口:
WebSocket RPC:实时双向通信 HTTP API:/v1/chat/completions、/v1/responses Hooks/Webhooks:事件通知机制 依赖关系:依赖 src/config、src/plugins、src/channels、src/infra
  1. Agent 与模型运行层 功能:AI 模型调用、会话管理、工具执行、子代理协调
核心文件:
src/agents/ - Agent 核心实现 pi-embedded-runner.ts - 嵌入式 Agent 运行主链路 model-auth.ts - 模型认证 model-selection.ts - 模型选择策略 pi-tools.ts - 工具定义和执行 sandbox/ - 沙箱环境管理 skills/ - 技能系统 subagent-*.ts - 子代理管理 src/commands/agent.ts - 本地 Agent 执行入口 src/commands/agent-via-gateway.ts - 通过 Gateway RPC 调用 Agent 依赖关系:依赖 src/config(配置)、src/plugins(工具插件)、src/infra(基础设施)
  1. 渠道与路由层 功能:消息渠道接入、路由规则、会话绑定
核心文件:
src/routing/ - 路由规则实现 resolve-route.ts - 路由解析(channel/account/peer -> agent/session) src/channels/ - 渠道管理 registry.ts - 渠道定义与标准化 plugins/ - 渠道插件适配规范 具体渠道实现: src/telegram/ - Telegram 渠道 src/slack/ - Slack 渠道 src/discord/ - Discord 渠道 src/signal/ - Signal 渠道 src/imessage/ - iMessage 渠道 src/whatsapp/ - WhatsApp 渠道 src/web/ - Web 渠道 消息流转:
渠道入站 → routing/resolve-route.ts → agents/* → 渠道出站 5. 插件系统层 功能:可扩展的插件机制,支持自定义渠道、工具、服务
核心文件:
src/plugins/ - 插件系统核心 discovery.ts - 插件发现 loader.ts - 插件加载与注册 registry.ts - 插件注册表(tools/hooks/channels/providers/http/gatewayHandlers) runtime.ts - 运行时插件状态 src/plugin-sdk/ - 插件开发 SDK extensions/ - 扩展插件工作区 渠道扩展 Memory 扩展 鉴权扩展 诊断工具 扩展机制:通过统一注册表扩展 channels/tools/hooks/http/gateway methods
  1. 配置与基础设施层 功能:配置管理、系统能力、守护进程
核心文件:
src/config/ - 配置系统 config.ts - 配置读写 sessions.ts - 会话配置 配置校验与迁移 src/infra/ - 基础设施 ports.ts - 端口管理 env.ts - 环境变量 binaries.ts - 二进制依赖 runtime-guard.ts - 运行时检查 src/daemon/ - 守护进程管理 systemd(Linux) launchd(macOS) schtasks(Windows) 7. 前端与客户端层 功能:用户界面,提供可视化管理和交互
核心文件:
ui/ - Web Control UI ui/src/main.ts - Web 前端入口 ui/src/ui/app.ts - 主应用组件 ui/src/ui/navigation.ts - 导航系统 ui/src/ui/views/ - 视图组件 chat.ts - 聊天界面 channels.ts - 渠道管理 models.ts - 模型管理 agents.ts - Agent 管理 config.ts - 配置界面 ui/src/ui/controllers/ - 控制器层 chat.ts - 聊天控制器 channels.ts - 渠道控制器 config.ts - 配置控制器 apps/ios/ - iOS 客户端 apps/macos/ - macOS 客户端(含 menubar 网关管理) apps/android/ - Android 客户端 apps/shared/OpenClawKit/ - 共享协议与客户端基础库 技术栈:
Web UI:Vite + Lit(Web Components) iOS/macOS:Swift + SwiftUI Android:Kotlin 三、系统架构图
┌─────────────────────────────────────────────────────────────┐ │ 用户交互层 │ │ CLI Tool │ Web UI │ iOS App │ macOS App │ Android │ └──────────────────────┬──────────────────────────────────────┘ │ ┌──────────────────────▼──────────────────────────────────────┐ │ Gateway 网关层 │ │ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ HTTP Server │ │ WebSocket RPC│ │ Protocol │ │ │ │ /v1/chat │ │ Methods │ │ Schema │ │ │ └─────────────┘ └──────────────┘ └──────────────┘ │ └──────────────────────┬──────────────────────────────────────┘ │ ┌──────────────────────▼──────────────────────────────────────┐ │ 路由与渠道层 │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ Routing: channel/account/peer → agent/session │ │ │ └──────────────────────────────────────────────────────┘ │ │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │ │ │Tele │ │Slack│ │Disc │ │Sig │ │iMsg │ │Web │ ... │ │ │gram │ │ │ │cord │ │nal │ │ │ │ │ │ │ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │ └──────────────────────┬──────────────────────────────────────┘ │ ┌──────────────────────▼──────────────────────────────────────┐ │ Agent 执行层 │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Model Auth │ │ Model Select │ │ Session Mgmt │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Tools │ │ Subagents │ │ Sandbox │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └──────────────────────┬──────────────────────────────────────┘ │ ┌──────────────────────▼──────────────────────────────────────┐ │ 插件系统层 │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ Plugin Registry: tools/hooks/channels/providers/http│ │ │ └──────────────────────────────────────────────────────┘ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Discovery │ │ Loader │ │ Runtime │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ └──────────────────────┬──────────────────────────────────────┘ │ ┌──────────────────────▼──────────────────────────────────────┐ │ 配置与基础设施层 │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Config │ │ Infra │ │ Daemon │ │ │ │ Management │ │ (ports/env) │ │ (systemd) │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ 四、关键设计模式 插件化扩展:通过统一注册表扩展 channels/tools/hooks/http/gateway methods 网关聚合:多端统一走 Gateway 协议,降低客户端差异 分层清晰:命令编排与核心执行分离 配置驱动:路由、账号、会话策略由配置控制 多渠道统一抽象:共性下沉到 src/channels/plugins/*,差异留在渠道实现 五、启动流程 后端启动链
openclaw.mjs → src/entry.ts → src/cli/run-main.ts → src/cli/program/* → src/commands/* 网关启动链
gateway run 命令 → src/gateway/server.ts → src/gateway/server.impl.ts → 装配:配置 + 插件 + 渠道 + HTTP/WS + 心跳 + 发现 前端启动 Web:ui/src/main.ts iOS:apps/ios/Sources/OpenClawApp.swift macOS:apps/macos/Sources/OpenClaw/* 这个架构设计非常清晰,采用了现代化的微服务和插件化思想,具有良好的可扩展性和可维护性。主要优势在于:
模块职责明确,耦合度低 插件系统提供了强大的扩展能力 多端统一通过 Gateway 协议,降低了客户端复杂度 配置驱动的设计使得系统灵活可配置
多渠道 AI 网关——把 Telegram / WhatsApp / Discord / Slack / Signal / iMessage 等渠道统一接入,经 Gateway 提供会话、配置、节点等能力,用插件扩展渠道、工具、鉴权等
notion image
notion image

4. OpenClaw源码拆解-GateWay AI网关通信协议

notion image
notion image
针对agent分析
notion image
Plugins解析

5. OpenClaw源码拆解-Agent Runtime 源码拆解

notion image
notion image
最后做一个总结验证
生成的规范文档 architecture-overview-1.0

6. OpenClaw源码二开

notion image

Step 1 最新版本 OpenClaw 项目的本地部署及启动

演示环境:Windows 开发环境示例
openclaw
Github
openclaw
Owner
openclaw
Updated
Apr 13, 2026

Step 2 系统架构说明文档更新

源码更新,之前做的文档需要更新
architecture-overview-2.0

Step 3 OpenClaw 新版本项目本地部署及启动

如果启动失败:提示如下

Step 4 接入自定义的模型 Deepseek、Qwen3

如果发生报错,粘贴报错信息 + 实际输入的内容
在Agent 页面进行问答验证
你好,请问你是什么模型?

Step 5 接入自定义的 Channels

接入飞书客户端
如果发生报错,粘贴报错信息 + 实际输入的内容

Step 6 接入自定义的 Agent Skils

无法调用工具 进入 Debug 阶段
添加 自定义的 联网检索 Skills https://clawhub.ai/arun-8687/tavily-search

7 接入自定义应用场景

实际的使用案例

📎 参考文章

  • 一些引用
  • 引用文章
 
💡
欢迎您在底部评论区留言,一起交流~
 
上一篇
第一节 大脑:重新认识你自己
下一篇
Harness Engineering - 搭建Mini Harness
Loading...