OpenClaw 初学者指南

OpenClaw 初学者指南OpenClaw 是一个强大的个人 AI 助手系统 允许你在自己的设备上运行 AI 助手 并通过你已经使用的各种通讯平台与其交互 版本 2026 3 3 开源协议 MIT 代码规模 815 502 行 TypeScript 架构模式 多通道网关 插件系统 官网 https openclaw ai 文档 https docs openclaw ai

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



OpenClaw 是一个强大的个人 AI 助手系统,允许你在自己的设备上运行 AI 助手,并通过你已经使用的各种通讯平台与其交互。

  • 版本: 2026.3.3
  • 开源协议: MIT
  • 代码规模: 815,502 行 TypeScript
  • 架构模式: 多通道网关 + 插件系统
  • 官网: https://openclaw.ai
  • 文档: https://docs.openclaw.ai
  • GitHub: github.com/openclaw/ope
  1. 隐私优先: 完全本地运行,数据不经过第三方
  2. 多平台集成: 支持 15+ 通讯平台
  3. 高度可扩展: 插件化架构,易于扩展
  4. 跨平台: 支持 macOS、Linux、Windows (WSL2)、iOS、Android

┌─────────────────────────────────────┐ │ CLI 命令行界面 (src/cli/) │ ├─────────────────────────────────────┤ │ 命令层 (src/commands/) │ ├─────────────────────────────────────┤ │ 网关层 (src/gateway/) │ │ - WebSocket 服务器 │ │ - 连接管理 │ │ - 协议处理 │ ├─────────────────────────────────────┤ │ 代理层 (src/agents/) │ │ - AI 模型交互 │ │ - 上下文管理 │ │ - 工具执行 │ ├─────────────────────────────────────┤ │ 通道层 (src/channels/) │ │ - Telegram │ │ - Discord │ │ - WhatsApp │ │ - Slack │ │ - Signal │ │ - …更多 │ ├─────────────────────────────────────┤ │ 路由层 (src/routing/) │ │ - 会话管理 │ │ - 消息路由 │ │ - 账户绑定 │ ├─────────────────────────────────────┤ │ 插件系统 (src/plugins/) │ │ - 插件加载 │ │ - Hook 系统 │ │ - 扩展管理 │ └─────────────────────────────────────┘

GPT plus 代充 只需 145
讯享网用户消息 ↓ 通道适配器 (Channel Adapter) ↓ 路由系统 (Routing System) ↓ 会话管理 (Session Manager) ↓ 代理执行 (Agent Execution) ↓ AI 模型 (LLM Provider) ↓ 工具调用 (Tool Execution) ↓ 响应生成 ↓ 通道适配器 ↓ 用户接收消息

技术 版本/工具 用途
语言 TypeScript 主要开发语言
运行时 Node.js 22+ JavaScript 运行环境
模块系统 ESM 原生 ES 模块
包管理 pnpm (主要) / npm / bun 依赖管理
构建工具 tsdown TypeScript 构建
测试框架 Vitest 单元测试和集成测试
代码质量 Oxlint + Oxfmt 代码检查和格式化
CLI 框架 Commander.js 命令行程序
平台 技术栈
iOS Swift + SwiftUI
Android Kotlin
macOS Swift + SwiftUI
{ “@mariozechner/pi-agent-core”: “AI 代理核心”, “@whiskeysockets/baileys”: “WhatsApp 集成”, “grammy”: “Telegram Bot 框架”, “discord-api-types”: “Discord API”, “@slack/bolt”: “Slack SDK”, “express”: “HTTP 服务器”, “ws”: “WebSocket”, “playwright-core”: “浏览器自动化” }

讯享网openclaw/ │ ├── src/ # 核心源代码 (815,502 行) │ ├── index.ts # 程序入口点 │ ├── cli/ # CLI 构建和参数处理 │ │ ├── program/ # 命令行程序定义 │ │ ├── deps.ts # 依赖注入 │ │ └── prompt.ts # 交互式提示 │ │ │ ├── commands/ # CLI 命令实现 │ │ ├── agent.ts # Agent 命令 │ │ ├── gateway.ts # 网关命令 │ │ ├── message.ts # 消息发送命令 │ │ └── … │ │ │ ├── gateway/ # 网关核心 (~5000 行) │ │ ├── client.ts # WebSocket 客户端 │ │ ├── server.impl.ts # 网关服务器 │ │ ├── protocol/ # 通讯协议 │ │ └── session-utils.ts # 会话管理 │ │ │ ├── agents/ # AI 代理层 (~400 行) │ │ ├── cli-runner.ts # 代理执行器 │ │ ├── config.ts # 代理配置 │ │ └── resolver.ts # 代理解析 │ │ │ ├── channels/ # 通道抽象层 │ │ ├── registry.ts # 通道注册表 │ │ ├── session.ts # 会话管理 │ │ ├── dock.ts # 通道 Dock 模式 │ │ └── plugins/ # 通道插件接口 │ │ │ ├── telegram/ # Telegram 集成 │ ├── discord/ # Discord 集成 │ ├── slack/ # Slack 集成 │ ├── signal/ # Signal 集成 │ ├── imessage/ # iMessage 集成 │ ├── web/ # WhatsApp Web 集成 │ ├── line/ # LINE 集成 │ │ │ ├── routing/ # 路由系统 │ │ ├── session-key.ts # 会话键管理 │ │ └── … │ │ │ ├── config/ # 配置系统 │ │ ├── config.ts # 配置加载/保存 │ │ ├── sessions.ts # 会话存储 │ │ └── paths.ts # 路径解析 │ │ │ ├── plugins/ # 插件系统核心 │ │ ├── loader.ts # 插件加载器 (812 行) │ │ ├── discovery.ts # 插件发现 │ │ ├── registry.ts # 插件注册表 │ │ ├── manifest.ts # 清单文件处理 │ │ ├── types.ts # 类型定义 (787 行) │ │ └── runtime/ # 插件运行时 │ │ │ ├── plugin-sdk/ # 插件开发 SDK │ │ ├── index.ts # SDK 主导出 │ │ ├── core.ts # 核心 API │ │ ├── telegram.ts # Telegram 特定 API │ │ ├── discord.ts # Discord 特定 API │ │ └── … │ │ │ ├── infra/ # 基础设施 │ │ ├── agent-events.ts # 代理事件系统 │ │ ├── errors.ts # 错误处理 │ │ ├── ports.ts # 端口管理 │ │ └── … │ │ │ ├── media/ # 媒体处理 │ ├── memory/ # 记忆系统 │ ├── auto-reply/ # 自动回复 │ ├── browser/ # 浏览器集成 │ ├── hooks/ # 钩子系统 │ └── … │ ├── extensions/ # 扩展插件 │ ├── msteams/ # Microsoft Teams │ ├── matrix/ # Matrix │ ├── feishu/ # 飞书 │ ├── googlechat/ # Google Chat │ ├── voice-call/ # 语音通话 │ ├── zalo/ # Zalo │ └── … │ ├── apps/ # 平台应用 │ ├── macos/ # macOS 应用 (Swift) │ ├── ios/ # iOS 应用 (Swift) │ └── android/ # Android 应用 (Kotlin) │ ├── docs/ # 文档 │ ├── channels/ # 通道文档 │ ├── platforms/ # 平台指南 │ └── … │ ├── scripts/ # 构建和维护脚本 ├── skills/ # 技能模块 ├── test/ # 测试文件 └── ui/ # Web UI

位置: src/gateway/

  • client.ts: WebSocket 客户端实现
  • server.impl.ts: 网关服务器核心
  • protocol/index.ts: 通讯协议定义
export class GatewayClient { private ws: WebSocket | null = null private pending = new Map<string, Pending>() // 待处理请求 private lastSeq: number | null = null // 序列号 private connectNonce: string | null = null

// 主要方法 connect() // 建立 WebSocket 连接 request() // 发送请求并等待响应 notify() // 发送单向通知 close() // 关闭连接 }

讯享网// server.impl.ts: startGatewayServer()

  1. 加载配置 (loadConfig)
  2. 初始化设备身份
  3. 注册技能变更监听
  4. 初始化子代理注册表
  5. 创建通道管理器
  6. 启动健康监控
  7. 启动配置重载器
  8. 启动发现服务
  9. 附加 WebSocket 处理器
  10. 启动旁路服务
    // 消息类型
  • RequestFrame: 客户端请求
  • ResponseFrame: 服务器响应
  • EventFrame: 服务器事件推送

// 版本控制 PROTOCOL_VERSION = “2026.1.x”


位置: src/agents/

讯享网export type AgentEntry = { id?: string // 代理 ID name?: string // 显示名称 workspace?: string // 工作空间路径 model?: AgentModel // AI 模型配置 skills?: string[] // 启用的技能 memorySearch?: boolean // 启用记忆搜索 humanDelay?: number // 人类延迟模拟 heartbeat?: HeartbeatConfig // 心跳配置 identity?: IdentityConfig // 身份配置 groupChat?: GroupChatConfig // 群聊配置 subagents?: SubagentConfig // 子代理配置 sandbox?: SandboxConfig // 沙箱配置 tools?: ToolsConfig // 工具配置 }
// cli-runner.ts: runCliAgent() export async function runCliAgent(params: { sessionId: string sessionKey?: string agentId?: string sessionFile: string workspaceDir: string config?: OpenClawConfig prompt: string provider: string model?: string thinkLevel?: ThinkLevel timeoutMs: number runId: string extraSystemPrompt?: string images?: ImageContent[] }): Promise<EmbeddedPiRunResult>
讯享网// infra/agent-events.ts export type AgentEventPayload = { runId: string // 运行 ID seq: number // 严格递增序列号 stream: AgentEventStream // 事件流类型 ts: number // 时间戳 data: Record<string, unknown> // 事件数据 sessionKey?: string // 会话键 }

// 事件流类型 type AgentEventStream = | “lifecycle” // 生命周期事件 | “tool” // 工具执行 | “assistant” // AI 响应 | “error” // 错误事件


位置: src/channels/, src/telegram/, src/discord/

export type ChannelPlugin<ResolvedAccount, Probe, Audit> = { id: ChannelId // 通道 ID meta: ChannelMeta // 元数据 capabilities: ChannelCapabilities // 功能特性 config: ChannelConfigAdapter // 配置管理 setup?: ChannelSetupAdapter // 设置向导 pairing?: ChannelPairingAdapter // 配对流程 status?: ChannelStatusAdapter // 状态检查 gateway?: ChannelGatewayAdapter // 网关集成 outbound?: ChannelOutboundAdapter // 出站消息 streaming?: ChannelStreamingAdapter // 流式传输 threading?: ChannelThreadingAdapter // 线程/对话 messaging?: ChannelMessagingAdapter // 消息处理 agentPrompt?: ChannelAgentPromptAdapter agentTools?: ChannelAgentToolFactory // … 更多适配器 }
讯享网export type ChannelCapabilities = { inbound: boolean // 接收消息 outbound: boolean // 发送消息 editing: boolean // 编辑消息 reactions: boolean // 反应表情 threading: boolean // 线程/回复 mentioning: boolean // @提及 groups: boolean // 群组支持 directMessages: boolean // 私聊支持 media?: boolean // 媒体文件 voice?: boolean // 语音 video?: boolean // 视频 calls?: boolean // 通话 location?: boolean // 位置 status?: boolean // 状态 }
const CHAT_CHANNEL_ORDER = [ “telegram”, // Telegram “discord”, // Discord “slack”, // Slack “signal”, // Signal “imessage”, // iMessage “whatsapp”, // WhatsApp (Web) “web”, // Web 聊天 “bluebubbles”, // BlueBubbles “googlechat”, // Google Chat “line”, // LINE // … 更多 ]

位置: src/plugins/, src/plugin-sdk/, extensions/

讯享网插件发现层 (Discovery)

插件清单层 (Manifest Registry)

讯享网

插件加载层 (Loader)

插件注册层 (Registry)

讯享网

插件运行时 (Runtime)

// 插件来源 type PluginOrigin = | “bundled” // 内置插件 | “global” // 全局安装 | “workspace” // 工作区 | “config” // 配置指定

// 插件类型 type PluginKind = “memory” // 目前仅支持内存插件

讯享网// openclaw.plugin.json { “id”: “plugin-id”, “name”: “Plugin Display Name”, “description”: “Plugin description”, “version”: “1.0.0”, “kind”: “memory”, “channels”: [“channel-id”], “providers”: [“provider-id”], “skills”: [“skill-name”], “configSchema”: {

"type": "object", "properties": {}, "additionalProperties": false 

}, “uiHints”: {

讯享网"fieldName": { "label": "Field Label", "help": "Help text", "tags": ["tag1"], "advanced": false, "sensitive": false } 

} }

export type OpenClawPluginApi = { id: string name: string version?: string config: OpenClawConfig pluginConfig?: Record<string, unknown> runtime: PluginRuntime logger: PluginLogger

// 注册方法 registerTool(tool, opts?): void registerHook(events, handler, opts?): void registerHttpRoute(params): void registerChannel(registration): void registerGatewayMethod(method, handler): void registerCli(registrar, opts?): void registerService(service): void registerProvider(provider): void registerCommand(command): void

// 工具方法 resolvePath(input): string on<K extends PluginHookName>(hookName, handler, opts?): void }

讯享网// 支持的 Hook 事件 type PluginHookName = // 模型和提示 | “before_model_resolve” | “before_prompt_build” | “before_agent_start”

// LLM 交互 | “llm_input” | “llm_output” | “agent_end”

// 消息压缩 | “before_compaction” | “after_compaction” | “before_reset”

// 消息生命周期 | “message_received” | “message_sending” | “message_sent”

// 工具调用 | “before_tool_call” | “after_tool_call” | “tool_result_persist”

// 会话 | “session_start” | “session_end”

// 子代理 | “subagent_spawning” | “subagent_delivery_target” | “subagent_spawned” | “subagent_ended”

// 网关 | “gateway_start” | “gateway_stop”


位置: src/config/

~/.openclaw/ ├── config.json # 主配置文件 ├── sessions/ # 会话存储 ├── credentials/ # 凭证存储 ├── skills/ # 技能目录 └── extensions/ # 扩展插件
讯享网export type OpenClawConfig = { gateway?: GatewayConfig // 网关配置 agents?: { list: AgentEntry[] } // 代理列表 channels?: ChannelConfigEntry[] // 通道配置 models?: ModelConfig[] // 模型配置 skills?: SkillsConfig // 技能配置 hooks?: HooksConfig // 钩子配置 session?: SessionConfig // 会话配置 memory?: MemoryConfig // 记忆配置 plugins?: PluginsConfig // 插件配置 // … 30+ 配置选项 }
// 加载配置 loadConfig(): Promise<OpenClawConfig>

// 写入配置 writeConfigFile(config: OpenClawConfig): void

// 验证配置 validateConfigObject(config: unknown): OpenClawConfig

// CLI 命令 openclaw config get <key> openclaw config set <key>=<value> openclaw config list


位置: src/routing/, src/channels/session.ts

讯享网// 会话键格式:[agent:]<rest> export const DEFAULT_AGENT_ID = “main” export const DEFAULT_MAIN_KEY = “main”

// 示例 “agent:sales:customer123” // 销售代理的客户123会话 “main” // 主代理 “agent:support:ticket-456” // 支持代理的工单456

// routing/session-key.ts export function normalizeAgentId(value: string | null): string

export function toAgentStoreSessionKey(params: { agentId: string requestKey: string | undefined mainKey?: string }): string

// 会话键分类 export function classifySessionKeyShape(sessionKey: string | null): | “missing” | “agent” | “legacy_or_alias” | “malformed_agent”

讯享网// config/sessions.ts loadSessionStore(): Promise<SessionStore> saveSessionStore(store: SessionStore): Promise<void> resolveSessionKey(params): string deriveSessionKey(params): string resolveStorePath(): string

1. 用户在通讯平台发送消息 ↓

  1. 通道适配器接收消息 (ChannelMessagingAdapter) ↓
  2. 消息路由到会话键 (routing/session-key.ts) ↓
  3. 解析代理配置 (agents/resolver.ts) ↓
  4. 注册代理运行上下文 (registerAgentRunContext) ↓
  5. 执行代理命令 (commands/agent.ts) ↓
  6. 运行 CLI 代理 (agents/cli-runner.ts) ↓
  7. 调用 LLM API (通过 Pi-Agent 框架) ↓
  8. 执行工具调用 (如果需要) ↓
  9. 发射代理事件 (emitAgentEvent) ↓
  10. 生成响应 ↓
  11. 投递结果 (deliverAgentCommandResult) ↓
  12. 通道出站适配器发送 (ChannelOutboundAdapter) ↓
  13. 用户在通讯平台接收响应
    讯享网客户端 (Web/Mobile App) ↓ WebSocket 网关服务器 (Gateway Server) ↓ 协议处理 (Protocol Handler) ↓ 请求路由 (Request Router) ↓ 命令执行 (Command Executor) ↓ 事件推送 (Event Emitter) ↓ WebSocket 客户端接收事件
    1. 插件发现 (discovery.ts) 
         
           
                     
    • 扫描 bundled 目录
    • 扫描 global extensions
    • 扫描 workspace node_modules
    • 扫描 config loadPaths ↓
  14. 读取清单文件 (manifest.ts)
    • 加载 openclaw.plugin.json
    • 验证 JSON Schema ↓
  15. 检查启用状态
    • 全局 enabled 标志
    • allow 列表
    • entries.enabled ↓
  16. 动态加载模块 (loader.ts)
    • 使用 Jiti 加载
    • 路由别名解析 ↓
  17. 调用注册函数
    • plugin.register(api) ↓
  18. 记录到注册表 (registry.ts)
    讯享网# 克隆项目 git clone https://github.com/openclaw/openclaw.git cd openclaw

安装依赖

pnpm install

或使用 bun

bun install

# 完整构建 pnpm build

类型检查

pnpm tsgo

代码检查和格式化

pnpm check

仅格式化检查

pnpm format

自动修复格式

pnpm format:fix

运行所有测试

pnpm test

测试覆盖率

pnpm test:coverage

运行单个测试文件

pnpm vitest run src/path/to/file.test.ts

监视模式

pnpm vitest watch

讯享网# 开发模式运行 CLI pnpm dev

pnpm openclaw <command>

启动网关(开发模式)

pnpm gateway:dev

重启网关

pnpm gateway:watch

启动 TUI

pnpm tui

TUI 开发模式

pnpm tui:dev

# iOS pnpm ios:build # 构建 pnpm ios:run # 运行 pnpm ios:open # 打开 Xcode

Android

pnpm android:assemble # 构建 pnpm android:install # 安装 pnpm android:run # 运行 pnpm android:test # 测试

macOS

pnpm mac:package # 打包 pnpm mac:restart # 重启 pnpm mac:open # 打开应用

讯享网# 同步插件版本 pnpm plugins:sync

Canvas A2UI 打包

pnpm canvas:a2ui:bundle

# 启动文档服务器 pnpm docs:dev

检查文档链接

pnpm docs:check-links

拼写检查

pnpm docs:spellcheck

自动修复拼写

pnpm docs:spellcheck:fix


理解项目的整体架构和核心概念

  1. 阅读文档

  • README.md
  • VISION.md
  • CONTRIBUTING.md
  • docs/start/getting-started.md
  1. 安装和运行
    npm install -g openclaw@latest openclaw onboard –install-daemon openclaw gateway –port 18789
  2. 查看入口文件

  • src/index.ts - 程序入口
  • openclaw.mjs - 二进制包装器
  • src/cli/program/ - CLI 定义
  1. 理解配置系统

  • 查看 ~/.openclaw/config.json
  • 阅读 src/config/config.ts
  • 尝试 openclaw config 命令

深入理解网关、代理和通道系统

  1. 网关系统

  • 阅读 src/gateway/client.ts
  • 阅读 src/gateway/server.impl.ts
  • 理解 WebSocket 协议
  • 查看 src/gateway/protocol/
  1. 代理系统

  • 阅读 src/agents/cli-runner.ts
  • 理解代理配置 (src/agents/config.ts)
  • 查看代理事件系统 (src/infra/agent-events.ts)
  1. 通道系统

  • 阅读 src/channels/registry.ts
  • 查看通道抽象 (src/channels/plugins/types.ts)
  • 研究一个完整的通道实现(推荐 Telegram: src/telegram/
  1. 实践练习

  • 发送一条消息到不同通道
  • 追踪消息的完整流程
  • 修改一个简单的通道配置

学会开发自定义插件

  1. 插件系统架构

  • 阅读 src/plugins/loader.ts
  • 理解插件发现机制
  • 查看插件注册表 (src/plugins/registry.ts)
  1. Plugin SDK

  • 阅读 src/plugin-sdk/index.ts
  • 理解 OpenClawPluginApi 接口
  • 查看 Hook 系统
  1. 研究现有插件

  • 简单示例: extensions/msteams/
  • 复杂示例: extensions/matrix/
  • 内存插件: extensions/memory-core/
  1. 开发自己的插件 “`typescript // my-plugin/index.ts import type { OpenClawPluginApi } from “openclaw/plugin-sdk/core”;

export default {

讯享网id: “my-plugin”, name: “My Custom Plugin”, register(api: OpenClawPluginApi) { api.logger.info(“Plugin loaded!”);

api.on(‘message_received’, (event, ctx) => {

 api.logger.info(`Message: ${event.content}`); 

}); }

};

讯享网 第四阶段:高级主题 (3-4 周)

目标

掌握高级功能和**实践

学习主题
  1. 路由和会话管理
    • 阅读 src/routing/session-key.ts
    • 理解会话隔离
    • 学习会话存储
  2. 媒体处理
    • 查看 src/media/ 目录
    • 理解媒体管道
    • 学习图片/音频/视频处理
  3. 安全机制
    • 阅读 SECURITY.md
    • 理解配对系统
    • 查看权限管理
  4. 性能优化
    • 理解懒加载机制
    • 查看缓存策略
    • 学习资源管理
  5. 测试策略
    • 阅读测试文件
    • 理解测试模式
    • 编写单元测试

第五阶段:贡献代码 (持续)

目标

为项目做出贡献

步骤
  1. 找到合适的任务
    • 查看 GitHub Issues
    • 寻找 “good first issue” 标签
    • 加入 Discord 社区
  2. 提交 PR
    • Fork 项目
    • 创建功能分支
    • 遵循代码规范
    • 编写测试
    • 提交 Pull Request
  3. 代码审查
    • 响应审查意见
    • 修改代码
    • 学习**实践

🎯 重点学习文件清单

必读文件 (第一优先级)

文件 重要性 内容
README.md ⭐⭐⭐⭐⭐ 项目概述和快速开始
src/index.ts ⭐⭐⭐⭐⭐ 程序入口
src/gateway/client.ts ⭐⭐⭐⭐⭐ WebSocket 客户端
src/gateway/server.impl.ts ⭐⭐⭐⭐⭐ 网关服务器
src/channels/registry.ts ⭐⭐⭐⭐⭐ 通道注册表
src/plugins/loader.ts ⭐⭐⭐⭐⭐ 插件加载器

重要文件 (第二优先级)

文件 内容
src/cli/program/build-program.ts CLI 程序定义
src/commands/agent.ts 代理命令实现
src/agents/cli-runner.ts 代理执行器
src/channels/plugins/types.ts 通道接口定义
src/config/config.ts 配置系统
src/plugin-sdk/index.ts 插件 SDK
src/routing/session-key.ts 会话路由
src/infra/agent-events.ts 代理事件系统

扩展阅读 (第三优先级)

  • src/telegram/ - Telegram 完整实现
  • src/discord/ - Discord 完整实现
  • extensions/msteams/ - MSTeams 插件示例
  • src/media/ - 媒体处理
  • src/memory/ - 记忆系统
  • src/auto-reply/ - 自动回复
  • src/browser/ - 浏览器集成

💡 **实践

代码风格

  1. TypeScript 严格模式
    • 使用严格类型
    • 避免 any
    • 永远不使用 @ts-nocheck
  2. 文件大小限制
    • 尽量保持文件在 500-700 行以内
    • 超过时考虑拆分
  3. 命名规范
    • 产品名: OpenClaw
    • CLI/路径: openclaw
    • 驼峰命名: camelCase
  4. 模块导入
    • 使用 ESM (import/export)
    • 避免混用静态和动态导入
    • 懒加载使用 *.runtime.ts 边界

测试

  1. 测试命名
    • 单元测试: *.test.ts
    • E2E 测试: *.e2e.test.ts
    • 测试文件与源文件同目录
  2. 覆盖率要求
    • 70% 行覆盖率
    • 70% 分支覆盖率
    • 70% 函数覆盖率
    • 70% 语句覆盖率
  3. 运行测试 “`bash

    所有测试

    pnpm test

# 单个文件 pnpm vitest run src/path/to/file.test.ts

# 监视模式 pnpm vitest watch

  1. 提交消息 “`bash
    使用 scripts/committer
    scripts/committer “feat: add new feature” file1.ts file2.ts

# 格式: : # 类型: feat, fix, docs, style, refactor, test, chore

2. 分支策略

  • main - 主分支
  • feature/* - 功能分支
  • fix/* - 修复分支
  1. PR 规范
    • 一个 PR 一个功能
    • 包含测试
    • 更新文档
    • 通过 CI 检查

插件开发

  1. 插件结构

    my-plugin/ ├── package.json ├── openclaw.plugin.json ├── index.ts └── src/

    讯享网└── plugin.ts
  2. 清单文件json { &#34;id&#34;: &#34;my-plugin&#34;, &#34;name&#34;: &#34;My Plugin&#34;, &#34;configSchema&#34;: { &#34;type&#34;: &#34;object&#34;, &#34;additionalProperties&#34;: false } }</code></pre></div><ol><li data-pid="9Wx3M9h8"><b>插件入口</b> export default { id: &#34;my-plugin&#34;, register(api: OpenClawPluginApi) { // 注册逻辑 } };<br/> </li></ol><ol><li data-pid="YAO8ZdkA"><b>永远不要提交</b><br/> </li></ol><ul><li data-pid="9g8MWGXf">API 密钥</li><li data-pid="j3tSvSzl">密码</li><li data-pid="pS_707wm">真实的电话号码</li><li data-pid="jcb0Onp7">个人信息</li></ul><p class="ztext-empty-paragraph"><br/></p><ol><li data-pid="wBn7JxWY"><b>使用占位符</b> “typescript // ✅ 正确 const phone = “+”; // 明显的假号码

// ❌ 错误 const phone = “+86138”; // 真实号码模式

3. 配置验证 
     
     
                  
  • 使用 JSON Schema 验证
  • 类型安全检查
  • 错误处理

🔗 有用的资源

官方资源

  • 官网: https://openclaw.ai
  • 文档: https://docs.openclaw.ai
  • GitHub: https://github.com/openclaw/openclaw
  • Discord: https://discord.gg/clawd
  • 技能中心: https://clawhub.ai

学习资源

  • 快速开始: https://docs.openclaw.ai/start/getting-started
  • 配置指南: https://docs.openclaw.ai/configuration
  • 通道文档: https://docs.openclaw.ai/channels
  • 插件开发: https://docs.openclaw.ai/plugins
  • 测试文档: docs/testing.md
  • 发布流程: docs/reference/RELEASING.md

社区

  • GitHub Issues: 报告 bug 和功能请求
  • GitHub Discussions: 讨论想法
  • Discord: 实时聊天和支持
  • X/Twitter: @openclaw

🚀 下一步

  1. 安装和试用 “`bash npm install -g openclaw@latest openclaw onboard
  1. 加入社区

  • 加入 Discord: discord.gg/clawd
  • 关注 GitHub: github.com/openclaw/ope
  1. 选择学习路径

  • 用户: 配置和使用 OpenClaw
  • 开发者: 开发插件和贡献代码
  • 架构师: 深入理解系统设计
  1. 实践项目

  • 开发一个简单的插件
  • 添加一个新的通道支持
  • 改进现有功能
  • 编写测试

术语 解释
Gateway 网关,OpenClaw 的中央控制平面
Agent 代理,AI 助手的逻辑实体
Channel 通道,消息平台的抽象(如 Telegram、Discord)
Plugin 插件,扩展 OpenClaw 功能的模块
Session 会话,对话的上下文和状态
Hook 钩子,在特定事件时执行的回调
Tool 工具,Agent 可以调用的功能
Provider 提供商,LLM API 提供者(如 OpenAI、Anthropic)
Skill 技能,Agent 的特定能力
Dock Dock,通道注册的统一模式
Runtime 运行时,插件执行的环境
Registry 注册表,管理插件、通道等的中央存储

OpenClaw 是一个架构优雅、高度可扩展的个人 AI 助手系统。它通过以下特点脱颖而出:

  1. 模块化设计: 清晰的分层架构,每层职责明确
  2. 插件化扩展: 强大的插件系统,易于添加新功能
  3. 多通道支持: 统一的通道抽象,支持 15+ 消息平台
  4. 类型安全: 全面的 TypeScript 类型系统
  5. 开发者友好: 完善的文档和工具链
  6. 社区活跃: 持续更新和改进

无论你是想使用扩展还是贡献到 OpenClaw,这份指南都将帮助你快速上手。

祝你学习愉快!🦞

小讯
上一篇 2026-03-11 21:23
下一篇 2026-03-11 21:25

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/213719.html