OpenClaw 是一个强大的个人 AI 助手系统,允许你在自己的设备上运行 AI 助手,并通过你已经使用的各种通讯平台与其交互。
- 版本: 2026.3.3
- 开源协议: MIT
- 代码规模: 815,502 行 TypeScript
- 架构模式: 多通道网关 + 插件系统
- 官网: https://openclaw.ai
- 文档: https://docs.openclaw.ai
- GitHub: https://github.com/openclaw/openclaw
- 隐私优先: 完全本地运行,数据不经过第三方
- 多平台集成: 支持 15+ 通讯平台
- 高度可扩展: 插件化架构,易于扩展
- 跨平台: 支持 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()
- 加载配置 (loadConfig)
- 初始化设备身份
- 注册技能变更监听
- 初始化子代理注册表
- 创建通道管理器
- 启动健康监控
- 启动配置重载器
- 启动发现服务
- 附加 WebSocket 处理器
- 启动旁路服务
// 消息类型
- 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. 用户在通讯平台发送消息 ↓
- 通道适配器接收消息 (ChannelMessagingAdapter) ↓
- 消息路由到会话键 (routing/session-key.ts) ↓
- 解析代理配置 (agents/resolver.ts) ↓
- 注册代理运行上下文 (registerAgentRunContext) ↓
- 执行代理命令 (commands/agent.ts) ↓
- 运行 CLI 代理 (agents/cli-runner.ts) ↓
- 调用 LLM API (通过 Pi-Agent 框架) ↓
- 执行工具调用 (如果需要) ↓
- 发射代理事件 (emitAgentEvent) ↓
- 生成响应 ↓
- 投递结果 (deliverAgentCommandResult) ↓
- 通道出站适配器发送 (ChannelOutboundAdapter) ↓
- 用户在通讯平台接收响应
讯享网
客户端 (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 ↓
- 读取清单文件 (manifest.ts)
- 加载 openclaw.plugin.json
- 验证 JSON Schema ↓
- 检查启用状态
- 全局 enabled 标志
- allow 列表
- entries.enabled ↓
- 动态加载模块 (loader.ts)
- 使用 Jiti 加载
- 路由别名解析 ↓
- 调用注册函数
- plugin.register(api) ↓
- 记录到注册表 (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
理解项目的整体架构和核心概念
- 阅读文档
- README.md
- VISION.md
- CONTRIBUTING.md
- docs/start/getting-started.md
- 安装和运行
npm install -g openclaw@latest openclaw onboard –install-daemon openclaw gateway –port 18789 - 查看入口文件
src/index.ts- 程序入口openclaw.mjs- 二进制包装器src/cli/program/- CLI 定义
- 理解配置系统
- 查看
~/.openclaw/config.json - 阅读
src/config/config.ts - 尝试
openclaw config命令
深入理解网关、代理和通道系统
- 网关系统
- 阅读
src/gateway/client.ts - 阅读
src/gateway/server.impl.ts - 理解 WebSocket 协议
- 查看
src/gateway/protocol/
- 代理系统
- 阅读
src/agents/cli-runner.ts - 理解代理配置 (
src/agents/config.ts) - 查看代理事件系统 (
src/infra/agent-events.ts)
- 通道系统
- 阅读
src/channels/registry.ts - 查看通道抽象 (
src/channels/plugins/types.ts) - 研究一个完整的通道实现(推荐 Telegram:
src/telegram/)
- 实践练习
- 发送一条消息到不同通道
- 追踪消息的完整流程
- 修改一个简单的通道配置
学会开发自定义插件
- 插件系统架构
- 阅读
src/plugins/loader.ts - 理解插件发现机制
- 查看插件注册表 (
src/plugins/registry.ts)
- Plugin SDK
- 阅读
src/plugin-sdk/index.ts - 理解
OpenClawPluginApi接口 - 查看 Hook 系统
- 研究现有插件
- 简单示例:
extensions/msteams/ - 复杂示例:
extensions/matrix/ - 内存插件:
extensions/memory-core/
- 开发自己的插件 “`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 周)
目标
掌握高级功能和**实践
学习主题
- 路由和会话管理
- 阅读
src/routing/session-key.ts - 理解会话隔离
- 学习会话存储
- 阅读
- 媒体处理
- 查看
src/media/目录 - 理解媒体管道
- 学习图片/音频/视频处理
- 查看
- 安全机制
- 阅读
SECURITY.md - 理解配对系统
- 查看权限管理
- 阅读
- 性能优化
- 理解懒加载机制
- 查看缓存策略
- 学习资源管理
- 测试策略
- 阅读测试文件
- 理解测试模式
- 编写单元测试
第五阶段:贡献代码 (持续)
目标
为项目做出贡献
步骤
- 找到合适的任务
- 查看 GitHub Issues
- 寻找 “good first issue” 标签
- 加入 Discord 社区
- 提交 PR
- Fork 项目
- 创建功能分支
- 遵循代码规范
- 编写测试
- 提交 Pull Request
- 代码审查
- 响应审查意见
- 修改代码
- 学习**实践
🎯 重点学习文件清单
必读文件 (第一优先级)
| 文件 | 重要性 | 内容 |
|---|---|---|
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/- 浏览器集成
💡 **实践
代码风格
- TypeScript 严格模式
- 使用严格类型
- 避免
any - 永远不使用
@ts-nocheck
- 文件大小限制
- 尽量保持文件在 500-700 行以内
- 超过时考虑拆分
- 命名规范
- 产品名: OpenClaw
- CLI/路径:
openclaw - 驼峰命名:
camelCase
- 模块导入
- 使用 ESM (
import/export) - 避免混用静态和动态导入
- 懒加载使用
*.runtime.ts边界
- 使用 ESM (
测试
- 测试命名
- 单元测试:
*.test.ts - E2E 测试:
*.e2e.test.ts - 测试文件与源文件同目录
- 单元测试:
- 覆盖率要求
- 70% 行覆盖率
- 70% 分支覆盖率
- 70% 函数覆盖率
- 70% 语句覆盖率
- 运行测试 “`bash
所有测试
pnpm test
# 单个文件 pnpm vitest run src/path/to/file.test.ts
# 监视模式 pnpm vitest watch
- 提交消息 “`bash
使用 scripts/committer
scripts/committer “feat: add new feature” file1.ts file2.ts
# 格式: : # 类型: feat, fix, docs, style, refactor, test, chore
2. 分支策略
main- 主分支feature/*- 功能分支fix/*- 修复分支
- PR 规范
- 一个 PR 一个功能
- 包含测试
- 更新文档
- 通过 CI 检查
插件开发
- 插件结构
my-plugin/ ├── package.json ├── openclaw.plugin.json ├── index.ts └── src/
讯享网
└── plugin.ts - 清单文件 “
json { "id": "my-plugin", "name": "My Plugin", "configSchema": { "type": "object", "additionalProperties": false } }</code></pre></div><ol><li data-pid="9Wx3M9h8"><b>插件入口</b> export default { id: "my-plugin", 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
🚀 下一步
- 安装和试用 “`bash npm install -g openclaw@latest openclaw onboard
- 加入社区
- 加入 Discord: https://discord.gg/clawd
- 关注 GitHub: https://github.com/openclaw/openclaw
- 选择学习路径
- 用户: 配置和使用 OpenClaw
- 开发者: 开发插件和贡献代码
- 架构师: 深入理解系统设计
- 实践项目
- 开发一个简单的插件
- 添加一个新的通道支持
- 改进现有功能
- 编写测试
| 术语 | 解释 |
|---|---|
| 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 助手系统。它通过以下特点脱颖而出:
- 模块化设计: 清晰的分层架构,每层职责明确
- 插件化扩展: 强大的插件系统,易于添加新功能
- 多通道支持: 统一的通道抽象,支持 15+ 消息平台
- 类型安全: 全面的 TypeScript 类型系统
- 开发者友好: 完善的文档和工具链
- 社区活跃: 持续更新和改进
无论你是想使用、扩展还是贡献到 OpenClaw,这份指南都将帮助你快速上手。
祝你学习愉快!🦞
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/213719.html