腾讯云轻量 + OpenClaw + DeepSeek V4 + 飞书:一个人 3 天搭出 AI 阅读老师
5,769 行 Python、18 次 Git 提交、5 篇飞书文档、4 个学生用户、96% 模型缓存命中率、实际模型费用接近零——五一假期窝在家,看着孩子语文作业做着头大,每次考试阅读理解作文都是老大难问题。作为一个老父亲,冥思苦想一个小时后,决定搭个 AI 阅读老师,看能否通过持续的练习,帮助孩子提升阅读理解能力。
我相信这个世界大部分问题的解决都在于重复和坚持。
一、这台机器,先睹为快
硬件配置
|
项目 |
详情 |
|
云服务商 |
腾讯云轻量应用服务器(Lighthouse) |
|
CPU |
AMD EPYC 7K62,2 vCPU @ 2.0GHz |
|
内存 |
8GB(已用 2.9GB,可用 4.7GB) |
|
硬盘 |
50GB SSD |
|
系统 |
OpenCloudOS 9.4 |
|
当前 CPU 负载 |
0.00 / 0.04 / 0.09 |
7.5GB 总内存,日常只用了不到 3GB——跑着 Nginx + Gunicorn(4 worker × 10 线程)+ OpenClaw Agent 引擎,轻量服务器的性能对这个场景来说,完全没问题。
网络与流量
上线半个月的真实访问数据:
|
指标 |
数值 |
|
总请求数 |
390 |
|
HTTP 200 响应 |
180 |
|
HTTP 404(含爬虫扫描) |
87 |
|
客户端断开(499) |
59 |
|
唯一访问 IP |
141 |
|
真实用户 IP |
约 5 个 |
|
恶意扫描请求 |
62(WP 漏洞扫描等) |
62 个扫描请求全是自动化攻击——暴露在公网的服务器,即使刚上线不久,也会立刻被扫描器盯上。
二、项目全景:「瘦狗伴读·伴你阅读」
2.1 做什么的?
这是一个面向小学高年级和初中的阅读练习平台。每天自动抓取一篇高质量文章,AI 生成六大学习板块,通过飞书文档分发,Web 端提供交互式练习和评分,每日一练,让语文悄悄变好。

2.2 技术架构
四层结构,从上到下:
-
Nginx — 反向代理,静态文件直出,POST 限流 5次/分钟 + burst 8,Cache-Control: no-store
-
Gunicorn — 应用服务器,4 worker × 10 线程,承载 Flask 业务逻辑
-
Flask Web 应用 — 学生端互动 + 教师端管理 + SQLite(8张表)
-
OpenClaw Agent — 心跳定时任务(自动抓取→生成→发布),飞书指令(对话→改代码→部署)
外部依赖:
-
飞书 API — 文档创建 + 消息推送,78 次调用 0 失败
-
DeepSeek V4 Pro — 内容生成引擎,缓存命中率 96%
三、OpenClaw:龙虾壳下的 Agent 引擎
3.1 它是什么
OpenClaw 不是一个聊天机器人前端,而是一个完整的 AI Agent 运行时。你可以把它理解为:
「给 AI 配了工具箱 + 定时器 + 多通道收发器」的操作系统
在这台服务器上,OpenClaw 扮演的角色包括:
-
内容主编:每天定时抓文章 → 筛选 → 让 DeepSeek 生成教学内容
-
飞书管家:创建文档、设置权限、发送消息、接收指令
-
运维工程师:收到飞书消息→ 执行 → reload 服务
-
记忆系统:MEMORY.md + 每日笔记,跨会话保持上下文
3.2 一条指令的完整旅程
在飞书里发「把好句赏析搞紧凑点」,背后的旅程:
-
飞书消息到达
-
OpenClaw 接收 → 读取上下文(SOUL.md / MEMORY.md / HEARTBEAT.md)
-
理解意图:需要修改「四、好句赏析与仿写」的飞书文档格式
-
读取当前文档 MeDzd3iCEotXwfxoQLjcjXCenpb
-
用 DeepSeek V4 生成新的紧凑格式内容(emoji 行内标签代替【原句】【赏 析】)
-
调用飞书 API 写回文档
-
更新 state.json → 同步 Web 端 → reload Gunicorn
-
飞书回复「搞定!打开看看?」
全程无 SSH、无 IDE、无手动操作——一个人在飞书里打字就完成了从需求到上线的闭环。
3.3 会话数据(真实)
|
指标 |
数值 |
说明 |
|
上下文窗口 |
77k / 200k(38%) |
大量空间留给工具调用和上下文 |
|
Token 输入 |
3,200 |
当前会话累计 |
|
Token 输出 |
3,500 |
当前会话累计 |
|
缓存命中率 |
96% |
系统指令、工具定义几乎全缓存 |
|
会话压缩 |
2 次 |
自动压缩长对话,不丢关键信息 |
|
模型费用 |
$0.00 |
缓存折扣 + 低用量 |
96% 的缓存命中率是关键——工具定义(飞书 API、读写文件、Git 操作等)和系统指令(AGENTS.md、SOUL.md 等)每次对话都会重复加载,DeepSeek 对缓存内容有大幅折扣,导致很多对话的实际计费为零。
四、DeepSeek V4 Pro:能写会改的 AI 阅读老师
4.1 它做了什么
DeepSeek V4 Pro 是整个系统的内容引擎。:
-
文章筛选:从公开优质文章中摘选 400-800 字、贴近生活的适读内容
-
生字词:拼音 + 释义 + 难易度把控
-
词语运用:从文中提炼精华词汇,造句练习
-
好句赏析与仿写:修辞分析 + 仿写提示
-
阅读思考题:开放式问题,鼓励独立思考
-
写作小课堂:技法讲解 + 练习建议
4.2 质量实测
以文章《小小绿化带 为生活添彩》为例:
生字词示例:
-
绿化(lǜ huà):种植树木花草,使环境优美。
-
景观(jǐng guān):自然或人造的景色、风景。
-
晶莹(jīng yíng):光亮透明,形容物品清澈闪亮。
-
脆嫩(cuì nèn):又脆又嫩,口感好。
-
绽放(zhàn fàng):花朵开放。
注音准确,释义简洁,难度适配小学中高年级——这个水平已经不输很多教辅资料。
好句赏析示例:
这句话用”春会、夏能、四季常绿”三个短句排比,写出了荔枝树一年四季的不同姿态,节奏明快。接着从”清凉”和”味蕾”两个角度——视觉和味觉——写出荔枝树带给人们的双重享受。
能识别排比修辞,能分析多感官描写,能解释表达效果——这就是 V4 的中文理解力。
4.3 多模型储备
|
模型 |
类型 |
上下文窗口 |
用途 |
|
DeepSeek V4 Pro |
主力 |
200K |
日常内容生成 |
|
DeepSeek V4 Flash |
快速模式 |
200K |
简单任务 |
|
MiniMax M2.5 |
备选 |
200K |
长文本理解 |
|
混元 TurboS |
备选 |
200K |
腾讯云原生(更低延迟) |
|
Kimi K2.5 |
备选 |
200K |
超长文档处理 |
实际体验下来,DeepSeek V4 Pro 的中文生成质量最稳定,MiniMax 在长文本处理上有优势,混元因为是腾讯云自家产品,内网延迟最低。
五、飞书:不只是聊天工具
5.1 双通道交互
-
通道一:内容分发——OpenClaw 定时任务 → 飞书 API 创建文档 → 写入 6 大板块内容 → 设置「互联网公开可读」→ 发送文档链接到用户对话
-
通道二:运维指令——在飞书里发消息 → OpenClaw 接收 → Agent 理解意图 → 调用工具(读文件/改代码/重启服务/Git 提交)→ 飞书回复结果
5.2 API 调用统计
-
文档创建:5 次,0 失败
-
文档写入:8 次(含格式调整后的重写)
-
权限设置:5 次,全部成功
-
消息推送:约 60 次(对话回复 + 文档链接推送)
-
总计约 78 次 API 调用,0 次失败,0 次限流
飞书免费 API 的调用限额是 100 次/分钟,日常使用完全碰不到上限。
5.3 一个坑:create 后必须 write
feishu_doc.create 只创建一个空白文档壳子(有标题无正文)。如果不立刻调用 feishu_doc.write 写正文,用户收到的就是一个空文档。
这是踩过的坑——第一次生成时,文档创建成功、权限也设好了,但正文是空的,因为忘了 write。后来把这个教训写进了 MEMORY.md 和 HEARTBEAT.md,确保不会再犯。
六、开发全记录
这次开发最让我惊喜的是 飞书 + OpenClaw + DeepSeek V4 的组合,能力非常强悍。全程在飞书里对话,代码自动写、自动改、自动部署上线——一条消息下去,从需求到发布全闭环,实现了”对话即开发”,即使到亲戚家吃饭,都能随时调整随时执行开发。
6.1 开发过程
核心开发:
-
项目初始化:「瘦狗伴读·伴你阅读」仓库创建
-
Flask + SQLite 骨架搭建
-
文章抓取脚本
-
飞书文档自动生成
-
Flask dev server → Gunicorn 4 worker × 10 thread
-
Nginx 反向代理 + 静态文件直出
-
POST 限流:5 次/分钟 + burst 8
-
SQLite busy_timeout = 5000ms
-
域名购买 + ICP 备案提交 → 临时切 IP 访问模式
-
Popover API 命名冲突:togglePopover 是浏览器原生方法
-
学生首页 UI 打磨(头像、帮助、状态卡片)
交互深化:
-
生字词三种学习模式:✍️ 跟写(笔画动画 )、🎧 听写(听音打字)、📷 OCR(拍照识别 、自动匹配)
-
生字词跟写、听写、OCR拍照上传三种模式各自闭环,互不干扰
-
AI 评分引擎:分模式计分(跟写 2★、听写 1★)
-
经验值系统分模式记录,避免重复发放
6.2 代码统计
|
语言/类型 |
行数 |
说明 |
|
Python(app.py) |
5,676 |
主应用:路由 + 业务逻辑 + 模板 + 评分引擎 |
|
Python(脚本) |
305 |
文章抓取 + 权限设置 + 同步 |
|
内联 JavaScript |
~464 行 |
分页卡片、OCR、语音朗读 |
|
内联 CSS |
~697 行 |
全站样式(响应式、暗色模式适配) |
|
内联 HTML |
~505 行 |
Jinja2 模板 |
|
总计 |
~7,647 行 |
全部在 3 个 .py 文件中 |
没有前端构建工具、没有 Webpack、没有 node_modules——就是一个 Flask 单体应用,HTML/CSS/JS 全内联在 Python 字符串里。对于这种规模的项目,单体架构的开发效率远高于前后端分离。
七、费用拆解
|
项目 |
费用 |
备注 |
|
腾讯云轻量服务器 |
99 元/年 |
Lighthouse 8GB,活动价申请 |
|
DeepSeek V4 API |
≈50 元/月 |
缓存命中率 96%,大部分会话 $0.00,开发使用Pro |
|
其他模型 API |
0 元 |
MiniMax/混元/Kimi 备而未用 |
|
飞书 API |
0 元 |
免费额度内 |
|
域名 |
≈83 元(一次性) |
shougoubandu.com + .cn 购买 + ICP 备案 |
服务器是今年初腾讯云做活动时申请的,一年 99 元的轻量应用服务器,8GB 内存——随时关注云服务商的推广活动,比如618、双11等。
DeepSeek V4 为什么这么便宜?
官价:输入 2.00/1M tokens。但实际产生费用的 token 很少,原因:
-
缓存折扣:OpenClaw 每次会话都会加载大量系统指令和工具定义,这些内容在 DeepSeek 服务端被缓存,不计入输入费用或大幅折扣
-
短对话:大部分日常交互只需要几千 token
-
心跳任务:每日文章生成的上下文稳定,缓存命中率极高
实测:一个包含代码修改 + 文档写入 + Git 提交的对话会话,费用经常是 $0.00。
八、踩过的坑(避坑指南)
坑 1:Popover API 命名冲突
浏览器原生提供了 HTMLElement.togglePopover()、showPopover()、hidePopover() 方法。如果定义同名函数会直接报 DOMException。解决方案:换个名字(如 openInfoPopup())。
坑 2:HTTP 80 端口被云服务商 DPI 拦截
域名备案期间,腾讯云会对未备案域名的 HTTP 80 请求做 DPI(深度包检测)拦截。解决方案:备案完成前直接用 IP 访问,Nginx 在 80 端口监听不做域名绑定,备案通过后再切回域名 + SSL。
坑 3:飞书文档 create 后必须 write
feishu_doc.create 只创建文档元数据(标题),不包含正文。必须紧接着调 feishu_doc.write 写内容。正确流程:create → write → set_public_perm → send message,漏掉任何一步都会出问题。
九、下一步
-
语音交互:学生可以通过语音回答问题,AI 语音点评
-
多年级适配:一到九年级,不同难度自动调整
-
家长端、老师端数据看板:孩子的学习曲线、薄弱点分析
-
多平台分发:微信公众号 + 企业微信 + 钉钉
工具链:🦞 OpenClaw + DeepSeek V4 Pro + 飞书开放平台。 作者:胖猫和瘦狗
夜雨聆风