OpenClaw【三、skill配置集成】
在 2026 年的版本中,OpenClaw(及其衍生版 QClaw)的配置和 Skill(技能)系统已经非常成熟。相比腾讯 WorkBuddy 的“黑盒”模式,OpenClaw 提供了完全的自定义能力,特别是支持本地 Ollama 模型。
以下是 OpenClaw 添加配置和使用 Skill 的保姆级流程详解。
一、核心概念:OpenClaw 的架构逻辑
在开始之前,你需要理解 OpenClaw 的三个核心组件,这决定了你配置的位置:
- LLM Provider (大模型):大脑。可以是本地 Ollama,也可以是云端 API。
- Skills (技能/工具):手脚。定义 AI 能做什么(如:读取文件、搜索网页、执行 Shell 命令)。
- 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 配置中启用即可。
-
查看可用技能:
在项目目录运行命令查看列表:python main.py --list-skills # 或者在 Web UI 的 "Skills Market" 页面查看常见内置技能:
file_reader(读文件),web_search(搜网页),shell_executor(执行命令),calendar_manager(日程管理)。 -
在 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"] -
测试:
启动后,直接对 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 插件)。
- 获取技能包:
从 GitHub 或 OpenClaw 社区下载.zip或.yaml定义的技能包。 - 导入命令:
python main.py --install-skill ./my-custom-pack.zip - 生效:
系统会自动解压文件到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:14b 或 32b3. 重写 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 连接是否正常? │
└─────────────────────────────────────────────────────────────────┘
通过以上步骤,你就可以在完全本地化、隐私安全的环境下,拥有一个能无限扩展能力的 AI 助手了。这就是 OpenClaw 对比 WorkBuddy 的最大优势:你的技能库,由你定义。
本文来自博客园,作者:蓝迷梦,转载请注明原文链接:https://www.cnblogs.com/hewei-blogs/articles/19728489

浙公网安备 33010602011771号