OpenClaw 自定义技能开发:打造专属 AI 助手

OpenClaw 不仅仅是一个 AI 助手,它还是一个高度可定制的平台。本文将介绍如何通过多 Agent 路由、工作流、语音功能等高级功能,打造属于你自己的个性化 AI 助手。

多 Agent 路由

OpenClaw 支持运行多个 AI Agent,每个 Agent 可以有不同的配置、工具和工作区。你可以根据不同的渠道或任务类型将对话路由到不同的 Agent。

为什么使用多 Agent?

  • 功能隔离:不同 Agent 专注不同任务
  • 权限分离:不同 Agent 有不同的工具权限
  • 模型独立:不同 Agent 可以使用不同的模型
  • 数据隔离:每个 Agent 有独立的工作区

配置多 Agent

编辑 openclaw.json

{
  "agents": {
    "list": [
      {
        "id": "default",
        "name": "Default Assistant",
        "description": "通用助手,用于日常问答",
        "model": "openai/gpt-4o",
        "tools": {
          "profile": "full"
        }
      },
      {
        "id": "coder",
        "name": "Code Assistant",
        "description": "编程助手,专注于代码相关任务",
        "model": "openai/gpt-4o",
        "tools": {
          "profile": "coding",
          "deny": ["group:runtime"]
        }
      },
      {
        "id": "messenger",
        "name": "Message Bot",
        "description": "消息机器人,仅处理消息发送",
        "model": "openai/gpt-3.5-turbo",
        "tools": {
          "profile": "messaging",
          "allow": ["slack", "discord"]
        }
      }
    ],
    "routing": {
      "default": "default",
      "routes": [
        {
          "channel": "discord",
          "channelPattern": "^dev-",
          "agent": "coder"
        },
        {
          "channel": "slack",
          "channelPattern": "^announce-",
          "agent": "messenger"
        }
      ]
    }
  }
}

路由规则

OpenClaw 根据以下规则路由到不同的 Agent:

  • 渠道匹配:根据聊天平台类型
  • 频道模式:根据频道名称正则匹配
  • 用户匹配:根据用户 ID 或用户名
  • 默认路由:未匹配时的默认 Agent

语音功能

OpenClaw 支持语音唤醒和对话模式,让你的 AI 助手可以听和说。

语音唤醒(Voice Wake)

在 macOS/iOS 上支持语音唤醒,使用唤醒词激活助手:

{
  "nodes": {
    "voicewake": {
      "enabled": true,
      "wakeWord": "Hey Claw"
    }
  }
}

对话模式(Talk Mode)

启用语音输入和输出:

{
  "nodes": {
    "talk": {
      "enabled": true,
      "ttsProvider": "openai"
    }
  }
}

支持的语音服务:

  • OpenAI TTS:高质量文本转语音
  • Google TTS:Google 文本转语音服务
  • 本地 TTS:使用本地 TTS 引擎

定时任务(Cron)

使用 Cron 工具创建定时任务:

配置定时任务

编辑配置文件:

{
  "automation": {
    "cron": [
      {
        "name": "daily-summary",
        "schedule": "0 9 * * *",
        "enabled": true,
        "agent": "default",
        "message": "生成今天的日程摘要"
      },
      {
        "name": "backup-check",
        "schedule": "0 2 * * 0",
        "enabled": true,
        "agent": "coder",
        "message": "检查备份状态并报告"
      }
    ]
  }
}

Cron 表达式格式

字段 取值范围 说明
分钟 0-59 每小时的第几分钟
小时 0-23 每天的第几小时
1-31 每月的第几天
1-12 每年的第几个月
星期 0-6 每周的第几天(0=周日)

工作流自动化

使用 Lobster 工作流运行时创建复杂的工作流:

安装 Lobster CLI

$ npm install -g @openclaw/lobster

创建工作流

在工作流中,Agent 可以执行多个步骤,每个步骤都可以请求批准:

name: deploy-website
description: 部署网站到生产环境
steps:
  - name: build
    agent: coder
    message: "编译项目"
  - name: test
    agent: coder
    message: "运行测试"
    requiresApproval: true
  - name: deploy
    agent: coder
    message: "部署到生产环境"
    requiresApproval: true

模型故障转移

配置多个模型提供商,当主提供商失败时自动切换:

{
  "models": {
    "failover": {
      "enabled": true,
      "providers": [
        {
          "provider": "openai",
          "model": "gpt-4o",
          "priority": 1
        },
        {
          "provider": "anthropic",
          "model": "claude-3-5-sonnet-20241022",
          "priority": 2
        },
        {
          "provider": "google",
          "model": "gemini-1.5-pro",
          "priority": 3
        }
      ]
    }
  }
}

插件开发

你可以开发自己的插件来扩展 OpenClaw 的功能:

插件可以做什么?

  • 注册新工具:添加自定义工具供 Agent 使用
  • 注册 CLI 命令:添加自定义命令行命令
  • 注册渠道:添加新的聊天平台支持
  • 注册技能:添加自定义技能

插件模板

创建一个简单的插件:

import { Plugin } from '@openclaw/sdk';

export class MyPlugin implements Plugin {
  name = 'my-plugin';
  version = '1.0.0';

  async onLoad(api) {
    // 注册工具
    api.registerTool({
      name: 'my-tool',
      execute: async (params) => {
        return { success: true, result: 'Hello from my tool!' };
      }
    });

    // 注册命令
    api.registerCommand({
      name: 'hello',
      handler: async () => {
        console.log('Hello from my plugin!');
      }
    });
  }

  async onUnload() {
    // 清理资源
  }
}

安全最佳实践

DM 配对策略

对于陌生私信,使用配对模式:

{
  "channels": {
    "telegram": {
      "dmPolicy": "pairing"
    }
  }
}

工具权限控制

严格限制危险工具的使用:

{
  "tools": {
    "deny": ["group:runtime"],
    "allow": ["group:fs", "group:web"]
  }
}

敏感操作审批

启用敏感操作审批:

{
  "tools": {
    "exec": {
      "security": "ask"
    }
  }
}

监控和诊断

日志查看

# 查看网关日志
$ openclaw gateway logs

# 查看特定 Agent 日志
$ openclaw agent logs --agent coder

健康检查

# 运行诊断工具
$ openclaw doctor

性能监控

OpenClaw 提供了丰富的指标,可以集成到监控系统:

  • 请求延迟
  • Token 使用量
  • 工具调用次数
  • 错误率

高级配置示例

一个完整的配置示例:

{
  "gateway": {
    "port": 18789,
    "host": "0.0.0.0"
  },
  "models": {
    "default": "openai/gpt-4o",
    "failover": {
      "enabled": true,
      "providers": [
        { "provider": "openai", "model": "gpt-4o" },
        { "provider": "anthropic", "model": "claude-3-5-sonnet-20241022" }
      ]
    }
  },
  "agents": {
    "list": [
      {
        "id": "default",
        "model": "openai/gpt-4o",
        "tools": { "profile": "full" }
      },
      {
        "id": "coder",
        "model": "openai/gpt-4o",
        "tools": { "profile": "coding" }
      }
    ]
  },
  "tools": {
    "loopDetection": { "enabled": true }
  },
  "channels": {
    "telegram": {
      "token": "YOUR_TOKEN",
      "dmPolicy": "pairing"
    }
  },
  "automation": {
    "cron": [
      {
        "name": "daily-summary",
        "schedule": "0 9 * * *",
        "message": "生成今日摘要"
      }
    ]
  }
}

总结

OpenClaw 是一个强大且灵活的个人 AI 助手平台。通过多 Agent 路由、工作流、语音功能、定时任务和插件开发,你可以打造完全符合自己需求的个性化 AI 助手。

希望这个教程系列能帮助你快速上手 OpenClaw!

系列文章汇总

  1. OpenClaw 入门完全指南:你的个人 AI 助手
  2. OpenClaw 安装与部署完整指南
  3. OpenClaw 平台插件配置:连接 20+ 聊天平台
  4. OpenClaw 工具插件使用:让你的 AI 助手无所不能
  5. OpenClaw 自定义技能开发:打造专属 AI 助手(本文)

相关资源

发表回复

后才能评论