☰
用 OpenClaw 管理个人待办事项:从 SKILL.md 到 Gateway 的配置骨架
2026/9/29 6:57:14 网站建设 项目流程

1. 为什么我最后把待办搬进了 OpenClaw

我平时待办散落在三个地方:手机备忘录、飞书任务、还有一个常年不打开的 Obsidian 库。结果就是每次想记一件事,先得纠结"记哪儿",纠结完事情已经忘了。后来我把待办这件事整个交给 OpenClaw 来管,核心思路很简单——我不再打开任何 App,直接在聊天框里说人话,它负责解析、存储、提醒。

OpenClaw 是一个可以本地跑、也能接云端模型的智能体运行环境,它通过 Skills 扩展能力,通过 Gateway 统一管理模型通道。ClawHub 是它的技能市场,你可以理解成"给 AI 装插件"的地方。SKILL.md 则是每个技能的定义文件,用自然语言加少量脚本描述"这个技能能干什么、怎么触发、执行什么命令"。Gateway 负责把请求转发到模型服务,这里我们统一走 TaoToken 的 Key/API 通道,一个 Key 打通对话、编码、Agent 场景。

这套方案适合谁?适合不想被待办 App 绑架、又希望数据留在自己手里的人。你不需要写复杂代码,会复制粘贴、会改路径就行。下面我从环境准备讲到 SKILL.md 骨架,再到 Gateway 配置和验证动作,全程可跟做。

2. 前置准备:ClawHub 装 Skills 与 TaoToken 通道

在写自己的技能之前,先把地基打好。这一步分两块:装现成技能、配好模型通道。

2.1 安装 ClawHub 上的待办技能

ClawHub 上有社区维护的成熟技能,最省事。确保 Gateway 已经在跑,然后执行:

# 安装待办管理 + 智能提醒组合 clawhub install todo-manager remind-me # 重启网关让技能生效 openclaw gateway restart

todo-manager负责增删改查,remind-me负责定时和循环提醒。装完之后,你就能直接在聊天框里说"添加待办:完成项目报告,优先级高,截止本周日",它会自动解析日期和优先级。这一步是"动口不动手"的起点。

2.2 配置 TaoToken 统一 Key 通道

模型通道我统一用 TaoToken,好处是一个 Key 覆盖多个模型,不用在配置文件里塞一堆厂商密钥。先去控制台拿 Key:

  • 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
  • API Key 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite

拿到 Key 之后,在 OpenClaw 的 Gateway 配置里指向 TaoToken 的 API 地址。API 基础地址是https://taotoken.net/api(注意这个地址不加 UTM 参数,直接填)。配置片段如下,放到你的 Gateway 配置文件里:

# ~/.openclaw/gateway.yaml providers: taotoken: type: openai-compatible base_url: "https://taotoken.net/api" api_key: "sk-你的TaoToken密钥" models: - gpt-4o - claude-3-5-sonnet default_provider: taotoken

注意:base_url结尾不要多加/v1,OpenClaw 会按 OpenAI 兼容格式自动拼接路径。填错会导致 404,这是最常见的坑。

改完配置重启网关:

openclaw gateway restart

到这里,模型通道和现成技能都就位了。如果你只想快速用起来,其实已经可以开始说人话了。但如果你像我一样,希望待办存成本地 Markdown、数据完全自己掌控,那就继续往下写自己的 SKILL.md。

3. 手写 SKILL.md:定义待办增删改查能力

现成技能功能全,但数据存在 OpenClaw 自己的目录里。我更喜欢纯文本极客风——待办就是一个todos.md文件,用 Obsidian 或 VSCode 都能直接看。这就需要自建一个 Skill。

3.1 SKILL.md 的目录结构与头部

在技能目录下创建文件:

mkdir -p ~/.openclaw/workspace/skills/todo-local touch ~/.openclaw/workspace/skills/todo-local/SKILL.md

SKILL.md 的头部是 YAML front matter,定义技能名、描述和触发词。触发词很关键,它决定了你说哪些话时 AI 会调用这个技能:

--- name: todo-local description: "管理本地 ~/Documents/todos.md 文件中的待办事项。触发词:todo/待办/任务" ---

description里写清楚触发词,模型会根据语义匹配。我实测下来,把"待办""任务""todo"都列进去,命中率最高。

3.2 增删改查四个动作的脚本骨架

SKILL.md 的正文用自然语言描述能力,配合 bash 代码块给出具体命令。下面是我在用的完整骨架,你可以直接复制:

# 本地待办管理器 数据文件固定为 `~/Documents/todos.md`,格式为 Markdown 复选框。 ## 添加任务 当用户说"待办:xxx"或"添加任务 xxx"时执行: ```bash TASK="$1" echo "- [ ] $TASK ($(date '+%Y-%m-%d'))" >> ~/Documents/todos.md echo "已添加:$TASK"

列出任务

当用户说"列出待办"或"我的任务"时执行:

if [ -f ~/Documents/todos.md ]; then grep -n "\[ \]" ~/Documents/todos.md else echo "暂无待办" fi

完成任务

当用户说"完成 xxx"时,把对应行从[ ]改成[x]:

TASK="$1" sed -i "s/- \[ \] $TASK/- [x] $TASK/" ~/Documents/todos.md echo "已完成:$TASK"

删除任务

当用户说"删除 xxx"时:

TASK="$1" sed -i "/$TASK/d" ~/Documents/todos.md echo "已删除:$TASK"
这里有个细节:`sed -i` 在 macOS 上需要写成 `sed -i ''`,Linux 上不用。如果你在 Mac 上跑,记得改一下,否则会报 `sed: 1: "...": invalid command code`。这个坑我踩过,排查了半天。 ### 3.3 让技能被正确加载 写完 SKILL.md 后,重启网关让它生效: ```bash openclaw gateway restart

然后你可以用openclaw skills list确认todo-local出现在列表里。如果没出现,检查两点:文件路径是否在~/.openclaw/workspace/skills/下,以及 front matter 的---是否闭合。YAML 格式错一个空格都会导致解析失败。

4. Gateway 配置打通与请求验证

技能写好了,但真正让它跑起来的是 Gateway 把请求正确路由到模型。这一节我们把配置串起来,然后做三个验证动作。

4.1 完整 Gateway 配置片段

把前面的 provider 配置和技能目录配置合并,一个可用的 Gateway 配置长这样:

# ~/.openclaw/gateway.yaml server: port: 18789 workspace: "~/.openclaw/workspace" providers: taotoken: type: openai-compatible base_url: "https://taotoken.net/api" api_key: "sk-你的TaoToken密钥" models: - gpt-4o - claude-3-5-sonnet default_provider: taotoken skills: dirs: - "~/.openclaw/workspace/skills" auto_reload: true

auto_reload: true是个省心选项,改完 SKILL.md 不用每次手动重启。不过涉及 provider 变更时,还是建议手动openclaw gateway restart,避免连接池没刷新。

4.2 验证一:创建待办

重启后,在 OpenClaw 聊天框输入:

待办:买牛奶

预期结果:终端或聊天框返回"已添加:买牛奶",同时~/Documents/todos.md里多出一行- [ ] 买牛奶 (2025-xx-xx)。你可以用cat ~/Documents/todos.md确认。

4.3 验证二:查询待办

输入:

列出我的任务

预期返回所有未完成项。这里我做了个优化——脚本里用grep "\[ \]"只列未完成的,已完成的[x]不会干扰视线。如果你想要全部,把 grep 条件去掉即可。

4.4 验证三:完成与删除

输入:

完成 买牛奶

再cat文件,应该看到那行变成了- [x] 买牛奶。然后输入:

删除 买牛奶

文件里对应行消失。三个动作跑通,说明 SKILL.md 的增删改查和 Gateway 的模型路由都正常。

提示:如果模型没有调用技能,而是直接闲聊回复,多半是触发词没匹配上。把description里的触发词写得更具体,比如加上"当用户提到待办清单时"。

5. 本篇常见错误排查

这一节是我实际配置时遇到过的报错,按出现频率排序。

报错一:clawhub: command not found

说明 ClawHub CLI 没装或不在 PATH 里。先确认 OpenClaw 主程序装好了,ClawHub 通常随主程序一起安装。如果单独装,检查~/.openclaw/bin是否加进了环境变量。

报错二:Gateway 启动后请求返回 401

九成是 TaoToken 的 Key 填错或过期。去 API Keys 页面重新生成一个,注意复制时别带空格。另外确认base_url是https://taotoken.net/api,不要写成带/v1的版本。

报错三:技能不触发,AI 答非所问

先openclaw skills list看技能有没有加载。加载了但不触发,就是description的触发词问题。把用户可能说的口语都列进去,比如"记一下""帮我记""待办事项"。

报错四:sed: invalid command code

macOS 和 Linux 的sed -i语法不同。Mac 上改成sed -i '' "s/.../.../",或者干脆用perl -i -pe替代,跨平台更稳。

报错五:定时提醒时间不对

检查服务器时区,用date命令看当前时间。如果时区是 UTC 而你在东八区,提醒会差 8 小时。改时区:sudo timedatectl set-timezone Asia/Shanghai。

报错六:修改 SKILL.md 后不生效

如果没开auto_reload,必须openclaw gateway restart。开了还不行,检查文件是否有语法错误,YAML front matter 的缩进用空格不用 Tab。

6. 把通道固定下来,长期用得更顺

待办这种高频场景,最怕的就是通道不稳定——今天能记,明天 Key 失效,后天模型换了要重配。我的做法是把 TaoToken 作为统一通道固定下来,一个 Key 管所有模型调用,换模型只改配置里的models列表,不用动 Key。

如果你只是偶尔记几件事,现成的todo-manager加remind-me就够了,五分钟能跑起来。如果你像我一样要把待办和知识库、会议记录串起来,那自建 SKILL.md 更值得投入,因为数据格式完全由你定,后面接日历、接转录、接自动晨报都好扩展。

几个我长期用下来的小技巧:待办文件放在~/Documents/todos.md而不是技能目录里,这样 Obsidian 能直接打开;每周用grep -c "\[x\]"统计完成数,给自己一点正反馈;提醒类任务交给remind-me,别自己写 cron,省得时区踩坑。

通道配置和 Key 管理都在控制台统一处理,接入文档里有各语言的调用示例,需要的时候直接查:

  • 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
  • 模型对话体验:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite
  • 长期编码与 Agent 场景:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

把 SKILL.md 骨架复制过去,改一下文件路径,重启网关,说一句"待办:试试 OpenClaw",这件事就算落地了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询