OpenClaw【三、skill配置集成】

在 2026 年的版本中,OpenClaw(及其衍生版 QClaw)的配置和 Skill(技能)系统已经非常成熟。相比腾讯 WorkBuddy 的“黑盒”模式,OpenClaw 提供了完全的自定义能力,特别是支持本地 Ollama 模型。

以下是 OpenClaw 添加配置和使用 Skill 的保姆级流程详解


一、核心概念:OpenClaw 的架构逻辑

在开始之前,你需要理解 OpenClaw 的三个核心组件,这决定了你配置的位置:

  1. LLM Provider (大模型):大脑。可以是本地 Ollama,也可以是云端 API。
  2. Skills (技能/工具):手脚。定义 AI 能做什么(如:读取文件、搜索网页、执行 Shell 命令)。
  3. Agents (智能体):指挥官。将“大脑”和“手脚”组合在一起,并设定人设和任务流程。

二、第一步:配置大模型 (LLM) - 接入 Ollama

OpenClaw 的配置文件通常位于项目根目录下的 config.yaml.env 文件中(取决于具体安装方式,2026 版推荐统一使用 config.yaml)。

1. 启动本地 Ollama

确保你的 Ollama 正在运行,并且已经拉取了模型:

ollama serve
ollama pull qwen2.5-coder:7b  # 推荐用于代码和工具调用的模型

2. 修改 config.yaml

找到配置文件中的 llm 部分,修改如下:

llm:
  # 选择提供商,OpenClaw 支持 'ollama', 'openai', 'azure', 'deepseek' 等
  provider: ollama
  
  # Ollama 默认地址,如果是远程服务器请修改 IP
  base_url: http://localhost:11434
  
  # 你刚才 pull 的模型名称
  model: qwen2.5-coder:7b
  
  # 上下文窗口大小 (根据显存调整,7B 模型通常 8192 或 16384)
  context_window: 16384
  
  # 温度参数 (工具调用建议低一点,0.1-0.3,减少幻觉)
  temperature: 0.2
  
  # 是否流式输出 (终端调试建议 true,生产环境可 false)
  stream: true

验证配置
重启 OpenClaw 服务,在日志中查看是否有 Connected to Ollama 字样,或者在交互界面问一句“你好”,看是否有回复。


三、第二步:添加和使用 Skill (技能)

OpenClaw 的 Skill 系统采用 “注册制”。你可以使用内置技能,也可以编写自定义技能。

场景 A:使用内置技能 (开箱即用)

OpenClaw 2026 版预置了大量常用技能,无需额外配置,只需在 Agent 配置中启用即可。

  1. 查看可用技能
    在项目目录运行命令查看列表:

    python main.py --list-skills
    # 或者在 Web UI 的 "Skills Market" 页面查看
    

    常见内置技能file_reader (读文件), web_search (搜网页), shell_executor (执行命令), calendar_manager (日程管理)。

  2. 在 Agent 中启用技能
    编辑 agents/default_agent.yaml (或你自定义的 agent 文件):

    agent:
      name: "MyAssistant"
      role: "你是一个高效的个人助理,擅长处理文件和网络搜索。"
      
      # 关键:在这里列出你要启用的技能 ID
      enabled_skills:
        - file_reader
        - web_search
        - shell_executor
        
      # 可选:限制某些技能的权限
      skill_constraints:
        shell_executor:
          allowed_commands: ["ls", "cd", "cat", "mkdir"] # 禁止 rm, sudo 等危险命令
          blocked_dirs: ["/", "/etc", "/sys"]
    
  3. 测试
    启动后,直接对 AI 说:“帮我读取桌面的 test.txt 内容”,它会自动调用 file_reader 技能。


场景 B:添加自定义技能 (Python 脚本)

如果内置技能不够用,你可以自己写一个 Python 函数作为技能。这是 OpenClaw 最强大的地方。

步骤 1:创建技能文件
skills/custom/ 目录下新建一个文件,例如 weather_skill.py

# skills/custom/weather_skill.py
from openclaw.skills import register_skill
import requests

# 1. 注册技能装饰器
@register_skill(
    name="get_weather",
    description="获取指定城市的当前天气情况。输入格式:城市名 (如 'Beijing')。",
    parameters={
        "city": {"type": "string", "description": "城市名称", "required": True}
    }
)
def get_weather(city: str) -> str:
    """
    具体的技能实现逻辑
    """
    print(f"🌤️ 正在查询 {city} 的天气...")
    
    # 模拟 API 调用 (实际使用时替换为真实 API Key)
    # api_key = "YOUR_API_KEY"
    # response = requests.get(f"http://api.weather.com?q={city}&key={api_key}")
    
    # 这里为了演示直接返回假数据
    return f"{city} 今天天气晴朗,气温 25°C,湿度 40%。"

步骤 2:自动加载
OpenClaw 启动时会自动扫描 skills/ 目录。

  • 确保你的 Python 文件中有 @register_skill 装饰器。
  • 确保依赖库已安装 (pip install requests)。

步骤 3:在 Agent 中启用
修改 agents/default_agent.yaml,加入你的新技能 ID(通常是文件名或装饰器中定义的 name):

agent:
  name: "MyAssistant"
  enabled_skills:
    - file_reader
    - get_weather  # <--- 添加这里

步骤 4:测试
重启 OpenClaw,输入:“北京天气怎么样?”
AI 会识别意图,自动调用 get_weather 函数,并将结果返回给你。


场景 C:导入社区技能包 (Skill Packs)

2026 年的 OpenClaw 支持一键导入社区技能包(类似 VS Code 插件)。

  1. 获取技能包
    从 GitHub 或 OpenClaw 社区下载 .zip.yaml 定义的技能包。
  2. 导入命令
    python main.py --install-skill ./my-custom-pack.zip
    
  3. 生效
    系统会自动解压文件到 skills/community/ 并更新配置。重启即可使用。

四、第三步:调试与优化 (关键技巧)

配置好后,如何让 AI 更聪明地使用技能?

1. 优化技能描述 (Description)

AI 是否调用技能,完全取决于你在 @register_skill 或 YAML 中写的 description

  • 差描述: "获取天气。"
  • 好描述: "当用户询问某个城市的天气、气温、下雨情况时,必须使用此技能。输入必须是城市中文名或英文名。"
  • 技巧: 在描述中明确触发条件参数格式

2. 调整模型温度 (Temperature)

  • 如果发现 AI 乱调用技能(比如只是打招呼却调用了搜索):降低 temperature (设为 0.1)。
  • 如果发现 AI 该调用时不调用:检查技能描述是否清晰,或者稍微提高 temperature (0.3-0.4)。

3. 查看执行日志

OpenClaw 会在 logs/ 目录下生成详细日志。

  • 查看 agent_thought.log:可以看到 AI 的思考过程(“用户问了天气 -> 匹配到 get_weather 技能 -> 准备调用”)。
  • 查看 skill_execution.log:可以看到技能输入的参数和返回的结果,方便排查报错。

五、常见问题排查 (FAQ)

问题 可能原因 解决方案
AI 不调用技能 1. 技能未在 enabled_skills 中启用2. 模型太笨 (Ollama 小模型)3. 描述不清晰 1. 检查 yaml 配置2. 换用 qwen2.5-coder:14b32b3. 重写 description,增加示例
技能执行报错 1. Python 依赖缺失2. 参数类型错误3. 权限不足 (如文件读写) 1. pip install -r requirements.txt2. 检查日志中的参数3. 以管理员身份运行 OpenClaw 或调整文件夹权限
Ollama 连接超时 1. Ollama 未启动2. 地址配置错误3. 防火墙拦截 1. 运行 ollama serve2. 检查 base_url3. 关闭防火墙或添加例外
循环调用死循环 AI 认为技能执行失败,不断重试 在技能代码中增加 max_retries 限制,或在 Agent 配置中设置 max_iterations

六、总结流程图

┌─────────────────────────────────────────────────────────────────┐
│  阶段 1: 环境准备 (本地大模型)                                   │
├─────────────────────────────────────────────────────────────────┤
│  1. 启动 Ollama 服务                                            │
│     ▶ 命令:ollama serve                                        │
│                                                                 │
│  2. 拉取推荐模型 (工具调用能力强)                                │
│     ▶ 命令:ollama pull qwen2.5-coder:7b                        │
└───────────────────────┬─────────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────────┐
│  阶段 2: 核心配置 (连接大脑)                                     │
├─────────────────────────────────────────────────────────────────┤
│  编辑 config.yaml                                               │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ llm:                                                      │  │
│  │   provider: ollama           # 指定提供商                 │  │
│  │   base_url: http://localhost:11434 # 本地地址             │  │
│  │   model: qwen2.5-coder:7b    # 模型名称                  │  │
│  │   temperature: 0.2           # 低温度保证工具调用稳定     │  │
│  └───────────────────────────────────────────────────────────┘  │
└───────────────────────┬─────────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────────┐
│  阶段 3: 技能管理 (赋予手脚) [二选一]                            │
├─────────────────────────────────────────────────────────────────┤
│  【路径 A: 使用内置技能】                                       │
│  ▶ 查看列表:python main.py --list-skills                       │
│  ▶ 启用方法:在 agents/default_agent.yaml 的 enabled_skills     │
│     中添加技能 ID (如:file_reader, web_search)                 │
│                                                                 │
│  【路径 B: 自定义技能】                                         │
│  ▶ 编写代码:skills/custom/my_skill.py                          │
│     (必须包含 @register_skill 装饰器)                           │
│  ▶ 定义描述:清晰描述触发条件和参数 (关键!)                    │
│  ▶ 自动加载:重启服务即可识别                                  │
└───────────────────────┬─────────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────────┐
│  阶段 4: 智能体装配 (指挥官)                                     │
├─────────────────────────────────────────────────────────────────┤
│  编辑 agents/default_agent.yaml                                 │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ agent:                                                    │  │
│  │   name: "MyAssistant"                                     │  │
│  │   role: "你是一个高效助理..."                             │  │
│  │   enabled_skills:                                         │  │
│  │     - file_reader                                         │  │
│  │     - my_custom_skill  <-- 这里关联技能                   │  │
│  └───────────────────────────────────────────────────────────┘  │
└───────────────────────┬─────────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────────┐
│  阶段 5: 运行与调试                                              │
├─────────────────────────────────────────────────────────────────┤
│  1. 启动服务:python main.py                                    │
│  2. 发送测试指令:"帮我读取 test.txt 并总结内容"                │
│  3. 观察日志:logs/agent_thought.log (查看思考过程)             │
│                                                                 │
│  ❓ 如果失败?                                                  │
│     → 检查技能描述是否清晰?                                    │
│     → 检查模型温度是否过高?                                    │
│     → 检查 Ollama 连接是否正常?                                │
└─────────────────────────────────────────────────────────────────┘
graph TD A[启动 Ollama] --> B[配置 config.yaml (指向 Ollama)] B --> C{需要新技能吗?} C -- 否 --> D[在 Agent YAML 中启用内置技能] C -- 是 --> E[编写 Python 脚本 + @register_skill] E --> F[放入 skills/ 目录] F --> D D --> G[重启 OpenClaw] G --> H[发送指令测试] H --> I{成功?} I -- 否 --> J[查看 logs/ 调试描述或参数] I -- 是 --> K[享受自动化]

通过以上步骤,你就可以在完全本地化、隐私安全的环境下,拥有一个能无限扩展能力的 AI 助手了。这就是 OpenClaw 对比 WorkBuddy 的最大优势:你的技能库,由你定义。

posted @ 2026-03-17 11:10  蓝迷梦  阅读(1179)  评论(0)    收藏  举报