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 开源项目二次开发





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


Step 1 下载 openclaw源码
git clone https://github.com/openclaw/openclaw.gitStep 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。
添加配置,测试问题是否可以提问
3. OpenClaw源码拆解-客户端架构设计
codex做项目框架梳理
claude回答
OpenClaw 项目整体架构分析
一、系统概述
OpenClaw 是一个多渠道 AI 网关平台,采用插件化架构设计,核心特点是:
统一接入多种消息渠道(Telegram、Slack、Discord、Signal、iMessage、WhatsApp等)
通过 Gateway 提供统一的实时通信和管理能力
支持多端访问(CLI、Web控制台、iOS/macOS/Android客户端)
可扩展的插件系统
二、核心功能模块与代码映射
- 启动与命令入口层 功能:提供 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(网关服务)
- 网关服务层(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
- 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(基础设施)
- 渠道与路由层 功能:消息渠道接入、路由规则、会话绑定
核心文件:
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
- 配置与基础设施层 功能:配置管理、系统能力、守护进程
核心文件:
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 提供会话、配置、节点等能力,用插件扩展渠道、工具、鉴权等


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


针对agent分析

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


最后做一个总结验证
生成的规范文档 architecture-overview-1.0
6. OpenClaw源码二开

Step 1 最新版本 OpenClaw 项目的本地部署及启动
演示环境:Windows 开发环境示例 

openclaw
Github
openclaw
Owner
openclawUpdated
Apr 13, 2026Step 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 接入自定义应用场景
实际的使用案例
📎 参考文章
- 一些引用
- 引用文章
欢迎您在底部评论区留言,一起交流~
Loading...
