第 23 章 实战:搭一个全天候 AI 助理
学完了 22 章,是时候把真本事亮出来了。
朋友们好呀,我是当当老师 🐾!前面 22 章全是理论和技术,这一章我们把它们串起来。
我们要做一件事:从零开始,搭一个能 24 小时帮你干活的 AI 助理。它能帮你处理邮件、管理日程、监控服务器、推送通知——就像你请了一个超级能干的实习生。
从零搭建 AI 助理:五步走路线图
23.1 需求分析
在动手之前,先想清楚:你的 AI 助理要干什么?
问自己三个问题
我每天最烦的重复事是什么?
- 查邮件、回消息?
- 看报表、写日报?
- 管理待办、设置提醒?
什么信息我经常忘?
- 会议时间?
- 截止日期?
- 家人的生日?
什么我需要"第一时间知道"?
- 服务器挂了?
- 老板发来重要邮件?
- 股价大跌?
我的需求清单(示例)
📋 当当老师的 AI 助理需求清单
━━━━━━━━━━━━━━━━━━━━━━━━━━━
每天要做的事:
□ 8:30 晨间播报(天气 + 今日日程 + 重要邮件)
□ 12:00 午间提醒(下午要准备什么)
□ 18:00 日报提醒(今天干了什么,写日报)
随时要做的事:
□ 帮我查任何信息(天气、百科、文档)
□ 帮我管理文件(归类、搜索)
□ 帮我写草稿(邮件、文档)
监控:
□ 服务器 CPU/内存/磁盘报警
□ 重要邮件即时通知
安全规则:
□ 不能删我的文件(除非我明确说)
□ 不能改系统配置(除非我批准)
□ 晚上 11 点后别吵我
━━━━━━━━━━━━━━━━━━━━━━━━━━━
你的需求清单
现在拿出纸笔(或者打开备忘录),写下你想要的 5 个功能。这只是 MVP(最小可行产品),以后可以加。
23.2 选模型和通道
选模型就是给你的 AI 助理选"大脑"。
模型选择原则
| 场景 | 推荐模型 | 原因 |
|---|---|---|
| 日常聊天、写文章 | Claude Sonnet / GPT-4o | 语言好,理解力强 |
| 编程、技术问题 | Claude Sonnet / DeepSeek V3 | 代码能力强 |
| 全天候任务(省钱) | DeepSeek / Gemini Flash | 便宜,速度够快 |
| 中文为主 | DeepSeek / 通义千问 | 中文优化好 |
| 图像识别 | GPT-4o / Claude Sonnet | 看图能力强 |
我的选择
# openclaw.yaml 模型配置
models:
# 主力模型 - 处理复杂任务
primary:
provider: deepseek
model: deepseek-chat
apiKey: "sk-ds-xxx"
# 快速模型 - 简单任务、心跳巡检
fast:
provider: deepseek
model: deepseek-chat
apiKey: "sk-ds-xxx"
# 备用模型 - 主力挂了时
fallback:
provider: openai
model: gpt-4o-mini
apiKey: "sk-openai-xxx"
省钱小技巧:日常任务用便宜的模型(DeepSeek、Gemini Flash),复杂任务才用贵的模型(Claude、GPT-4o)。
通道配置
如果你有多个 API key(比如多个 OpenAI 账号),可以配置 Fallback:
models:
primary:
provider: deepseek
# 多个 key 轮流用
apiKeys:
- "sk-1"
- "sk-2" # 第一个用完了自动切第二个
23.3 配置 Agent(灵魂所在)
Agent 配置决定了 AI 的性格和行为方式。
编写 System Prompt
System Prompt 是 AI 的"人格说明书":
agents:
assistant:
name: "当当助手"
description: "武彬的全天候 AI 助理"
system: |
你是「当当助手」,一个全天候在线的 AI 助理。
## 你的身份
- 你是用户(武彬)的私人 AI 助理
- 你性格温和、专业、偶尔幽默
- 你的所有操作都要为用户考虑
## 核心能力
- 能查天气、看日历、读邮件、管理文件
- 能执行脚本、分析数据、生成报告
- 通过手机通知主动联系用户
## 行为准则
- 安全第一:删除操作前必须确认
- 简洁明了:能一句话说完不说两句
- 主动汇报:有重要发现及时通知
- 夜间安静:23:00-08:00 不主动打扰
## 响应风格
- 用中文回复
- 重要信息用列表 + 表情符号
- 技术问题要解释清楚
[截图:Agent 配置的 system prompt 界面]
常用 Agent 配置模板
agents:
code-assistant:
name: "代码助手"
system: |
你是一个高级程序员助理。
你擅长 Python、JavaScript、Go 编程。
回答问题时要给出可运行的代码示例。
writing-assistant:
name: "写作助手"
system: |
你是一个中文写作助手。
你擅长写文章、邮件、方案。
注意语气得体,用词精准。
23.4 配置自动化
TaskFlow 自动化
创建一个全天候工作流程:
# 24-7-assistant.yaml
name: "全天候助理工作流"
version: "1.0.0"
triggers:
- cron: "30 8 * * 1-5" # 工作日 8:30 晨间播报
- cron: "0 18 * * 1-5" # 工作日 18:00 日报提醒
- heartbeat: true # 每 30 分钟巡检
- webhook: "/webhooks/github" # GitHub 事件
steps:
- name: "判断触发来源"
tool: condition
params:
if: "{{trigger.type}} == 'cron' && {{trigger.schedule}} == '30 8 * * 1-5'"
then: run_morning_routine
else: check_other
- name: "晨间播报"
id: run_morning_routine
tool: taskflow
params:
name: "morning-brief"
- name: "日报提醒"
tool: prompt
params:
message: "到写日报的时间了!"
Heartbeat 巡检配置
# HEARTBEAT.md - 当当助手的心跳清单
## 每轮检查(约 30 分钟)
1. 📧 检查收件箱 - 是否有标记为"紧急"的邮件
2. 📅 检查日历 - 未来 1 小时内是否有会议
3. ⚠️ 检查服务器 - 监控指标是否正常
## 特别规则
- 深夜 23:00-08:00 安静模式,除非是服务器挂了
- 同样的问题不要重复提醒超过 3 次
- 发现"老板"的邮件立即通知
Cron 定时任务
cron:
jobs:
- name: "晨间播报"
schedule: "30 8 * * 1-5"
taskflow: "morning-brief.yaml"
notify: push
- name: "午间提醒"
schedule: "0 12 * * 1-5"
action: "prompt"
message: "下午有什么安排?我帮你记一下"
- name: "日报提醒"
schedule: "0 18 * * 1-5"
action: "prompt"
message: "该写日报了!今天做了什么?"
- name: "周报准备"
schedule: "0 16 * * 5"
taskflow: "week-summary.yaml"
[截图:Cron 定时任务配置完成后的状态页面]
23.5 配置通知和节点
把手机也配置好,让 AI 能推送到手机上:
通知配置
notifications:
push:
- channel: "phone" # 推送到手机
events:
- "taskflow.completed" # 任务完成
- "taskflow.failed" # 任务失败
- "alert.cpu_high" # CPU 过高告警
- "email.important" # 重要邮件
手机节点
确保你的手机已经按照第 18 章的方法配好,并上线。
23.6 安全配置
别忘了安全:
tools:
exec:
mode: "allowlist"
allowlist:
- "ls"
- "cat"
- "pwd"
- "ps aux"
- "df -h"
- "date"
- "echo"
- "git status"
sandbox: "require"
fileAccess:
allowedPaths:
- "/Users/wubin/Documents"
- "/Users/wubin/Desktop"
deniedPaths:
- "/Users/wubin/.ssh"
- "/Users/wubin/Documents/secrets"
23.7 上线运行
最终检查清单
□ OpenClaw 已启动并正常运行
□ WebChat 可以访问 (http://127.0.0.1:18789)
□ 模型配置正确,AI 能回答问题
□ TaskFlow 创建并测试通过
□ Cron 定时任务已配置
□ Heartbeat 已启用
□ 手机节点已配对
□ 安全设置已完成
□ 远程访问已配置(Tailscale 等)
□ 日志正常,没有报错
第一次运行
# 启动 OpenClaw
openclaw start
# 查看状态
openclaw status
# 测试 TaskFlow
openclaw taskflow run morning-brief.yaml
# 测试通知
openclaw notify test "AI 助理已上线!🎉"
观察一段时间
上线后的头 24 小时,注意观察:
- AI 是否按计划执行任务?
- 响应速度如何?
- 有没有意外的行为?
- 通知是否正常推送?
23.8 迭代优化
AI 助理不是一劳永逸的。上线后需要不断调整:
第一周
- ✅ 检查每个自动化是否正常工作
- ✅ 收集你不想看到的行为
- ✅ 调整 system prompt 中的行为准则
第一个月
- ✅ 增加新的 TaskFlow
- ✅ 根据实际使用调整模型
- ✅ 优化 Heartbeat 检查清单
- ✅ 添加更多 Webhook 集成
持续迭代
- 💡 每次觉得"这破事又要手动做"时 → 创建一个 TaskFlow
- 💡 每次 AI 给出多余的信息时 → 精简 prompt
- 💡 每次 AI 太啰嗦时 → 调整行为准则
23.9 本章小结
恭喜!你从一个 AI 新手变成了能搭全天候 AI 助理的"老司机":
📋 需求分析 → 🧠 选模型 → ⚙️ 配置 Agent
→ 🔄 设置自动化 → 🔐 安全配置 → 🚀 上线运行
→ 🔧 持续迭代
这个 AI 助理会 24 小时为你服务——你睡觉它在跑,你放假它在等。这就是 OpenClaw 的魅力。
下一章我们去社区看看,跟全世界的小伙伴一起玩!🌍
系统教程,帮你把工具用好,再回到任务中。 浏览任务方案 →