乐于分享
好东西不私藏

用 OpenClaw 给孩子搭全科辅导系统(3)

用 OpenClaw 给孩子搭全科辅导系统(3)

沟通平台:飞书怎么接入、孩子账号怎么隔离、家长怎么做管理员视角

前两篇,我把这套全科辅导系统最底下的两层先拆开了。

第一篇讲的是地基:怎么搭工作区,怎么用 SOUL.mdUSER.md、目录结构,把“辅导员是谁、孩子是谁、数据往哪放”先定义清楚。

第二篇讲的是系统真正开始运转的部分:怎么把三个核心 Skill 跑起来——接作业、复习调度、错题追踪也就是:作业进来以后怎么拆,错题怎么沉淀,复习怎么形成节奏。

写到这里,很多人自然会进入下一个问题:

这些东西在本地都能跑了,那孩子平时到底怎么用?家长又怎么参与进去,而且还不互相打扰?

这个问题非常关键。因为真正影响一套系统能不能长期用下去的,往往不是 Skill 写得漂不漂亮,而是:

入口顺不顺手

孩子会不会用。家长愿不愿意看。每天发作业、收反馈、看结果,是不是足够自然。如果每次都要打开终端、切窗口、找文件、复制粘贴,那哪怕系统再强,最后大概率也会烂尾。

所以到这一步,重点已经不再是“系统会不会做事”,而是:

这套系统怎么进入日常生活

我后来选的方案是 飞书

不是因为它最酷,也不是因为它最“AI”,而是因为它在这个场景里有几个特别现实的优点:

  • iPad 上能直接用,孩子操作门槛低
  • 消息、文档、表格是同一套环境
  • 数据沉淀天然方便
  • 最重要的是:账号隔离和视角隔离很容易做

这点真的非常重要。

因为孩子的使用体验,和家长的管理体验,本来就不应该是一个界面。孩子只需要看到:

  • 今天要做什么
  • 做完了有什么反馈
  • 下一步是什么

而家长需要看到的是:

  • 今天整体做了什么
  • 哪些地方卡住了
  • 错题有没有进入复习池
  • 最近哪一科波动大
  • 规则是不是要调整

这两种视角混在一起,系统就会很难用。

所以这一篇,我就专门讲三件事:

  • 飞书为什么适合做这个入口
  • 孩子账号怎么隔离
  • 家长怎么做管理员视角

如果说前两篇是在搭“系统本体”,那这一篇,就是把它真正接到孩子和家长每天会碰到的沟通场景里。


飞书接入 OpenClaw:路线选择与基础接入

你要先理解一件事:飞书接入有两种“插件路线”

路线 A:OpenClaw 内置飞书 Channel(@openclaw/feishu)

主要把飞书当“聊天入口”,安装简单。

路线 B:飞书官方插件(LarkSuite 官方维护)

更偏“以你本人身份操作飞书文档/日历/任务”等高级能力,但安装/授权更重。

你这个“全科辅导系统”场景,大多数人用路线 A 就够了(稳定、步骤少)。下面我先写 路线 A(推荐),最后补一段“如果你要高级操作再选路线 B”。


Part 1:飞书接入 OpenClaw

(路线 A:内置飞书 Channel,推荐)

Step 1:在飞书开放平台创建“企业自建应用(机器人)”

打开 飞书开放平台 → 创建 企业自建应用

进入应用后,找到:

应用能力 → 机器人 → 开启机器人能力

去 凭证与基础信息 页面,记下两样东西:

  • App ID
    (形如 cli_xxx)
  • App Secret
    (非常重要,不要发给任何人)

这是飞书机器人接入的基础步骤。


Step 2:配置权限(先按最小可用)

在 权限管理 里至少保证机器人具备 IM 消息相关权限(读取/发送)。不同企业后台的权限项显示略有差异,但目标是让机器人能够:接收消息事件 + 发送消息

**小白建议:**先按文档/向导默认推荐的权限跑通“收发消息”,后面再加文档/表格权限。


Step 3:事件订阅选“WebSocket 长连接”

(关键点:不需要公网 webhook)

在 事件与回调 / 事件订阅 中,把接收方式选成:使用 WebSocket(长连接),并订阅消息接收事件(例如 im.message.receive_v1)。

这样 OpenClaw 网关通过 WebSocket 直接收事件,不需要你买域名/配 https webhook。


Step 4:发布应用并把机器人添加到飞书

去 版本管理与发布

创建版本 → 提交/发布

在飞书里把机器人添加到:

  • 家长的群(管理群)
  • 孩子的私聊(或孩子所在群)

Step 5:在 OpenClaw 里添加飞书 Channel

(macOS / Windows)

官方文档给了两条路:新手向导 openclaw onboard 或 CLI openclaw channels add小白我建议用 channels add,更直观。

macOS 操作

打开「终端」

先确认 gateway 能跑:

openclaw gateway status

添加飞书渠道(按提示选择 Feishu,并输入 App ID / App Secret):

openclaw channels add

重启网关生效:

openclaw gateway restart

追日志看是否连上:

openclaw logs --follow

Windows 操作

打开 PowerShell

同样执行:

openclawgatewaystatusopenclawchannelsaddopenclawgatewayrestartopenclawlogs--follow

飞书频道文档明确提到:配置好后用 gateway status / logs --follow 排查。


Step 6:飞书里验证“能收能回”

在飞书里私聊机器人:发一句 在吗 或 请把这句话总结成一句话

或在群里 @机器人 发送:请输出今天的学习计划模板

如果不回复:先去文末【排错清单】看“能连但不回”。


Part 2:孩子账号怎么隔离

(两种方案:轻隔离 / 强隔离)

你要的“隔离”,本质是:**不同人说话不要串记忆、不要串文件、不要串输出。**OpenClaw 的官方思路是用 多 Agent 路由(bindings) 来做隔离:每个 Agent 有独立 workspace、独立状态目录、独立会话。


方案 1(轻隔离,最省事):一个 Agent + 私聊自动分桶

适合:只有 1 个孩子、家长偶尔问问,不需要严格权限边界。

做法:

  • 所有人都跟同一个机器人聊
  • 主要在“私聊”使用(群里尽量只让家长发指令)
  • 让机器人每次输出都落盘到同一个工作区,但文件命名里带上“孩子标识/日期”

优点:

快,几乎不用配置。

缺点:

隔离不绝对(多人/多孩子容易串)。


方案 2(强隔离,推荐):两个 Agent(孩子 Agent / 家长管理员 Agent)+ 路由绑定

适合:你这个“全科辅导系统”长期用,而且要让家长/孩子看到的内容不同。

做法是最标准的:

  • Agent A:child-coach
    (孩子视角:只发闯关任务、鼓励、一步一步)
  • Agent B:parent-admin
    (家长视角:看汇总、看趋势、看错题回流、看计划执行)

每个 Agent 用不同工作区:

~/openclaw-workspaces/study-child~/openclaw-workspaces/study-parent-admin

然后用 bindings 把飞书来源路由过去(“谁发的消息 → 去哪个 Agent”)。多 Agent 路由是官方推荐的隔离方式。

macOS:创建第二个工作区(家长管理员)

mkdir-p

~/openclaw-workspaces/study-parent-admin/{data/reports/{daily,weekly},data/mistakes/review_queue,logs,skills}touch

~/openclaw-workspaces/study-parent-admin/SOUL.md 

~/openclaw-workspaces/study-parent-admin/USER.md 

~/openclaw-workspaces/study-parent-admin/AGENTS.md ~/openclaw-workspaces/study-parent-admin/TOOLS.md

Windows:创建第二个工作区(家长管理员)

$base="$HOME\openclaw-workspaces\study-parent-admin"New-Item-ItemTypeDirectory-Force-Path `"$base\data\reports\daily","$base\data\reports\weekly","$base\data\mistakes\review_queue","$base\logs","$base\skills"|Out-NullNew-Item-ItemTypeFile-Force-Path `"$base\SOUL.md","$base\USER.md","$base\AGENTS.md","$base\TOOLS.md"|Out-Null

然后在 OpenClaw Control 里新建第二个 Agent,并把 workspace 指向这个目录(你第 1 篇已经做过一次,这里同样操作即可)。


路由绑定怎么做

(新手能懂的方式)

你不需要一上来就手写复杂配置。最容易落地的方式是:

  • 孩子只在“私聊机器人”里发消息 → 默认路由到 child-coach
  • 家长只在“家长管理群 @机器人”里发命令 → 路由到 parent-admin
  • 群里只允许家长发管理指令(比如“生成周计划、导出日报、查看错题队列”)

如果你已经会配置 bindings,再进阶到“按发送者 user_id 路由”即可(属于进阶篇,这里不展开写代码,避免新手劝退)。多 Agent 路由机制本身在官方文档里有完整概念说明。


Part 3:家长怎么做“管理员视角”

(建议做成 3 个固定指令)

管理员视角的关键不是“多说”,而是固定三类输出,家长一眼能看懂:


管理员指令 1:每日学习记录(日报)

家长在飞书群里发:

“生成今日学习记录(日报):完成了什么/卡点/明天计划,并保存到 data/reports/daily/”

输出应包含:

  • 今日完成清单(是否完成)
  • 1 个最卡点
  • 明天 1 个重点
  • (可选)家长一句话建议(不指责)

落盘路径:

data/reports/daily/YYYY-MM-DD_daily.md


管理员指令 2:每周复盘(周报)

家长发:

“生成本周复盘(周报):薄弱点趋势、错题回流完成度、下周建议,并保存到 data/reports/weekly/”

落盘路径:

data/reports/weekly/YYYY-Wxx_weekly.md


管理员指令 3:错题队列与回流计划

家长发:

“输出当前错题复习队列(含回流日期),并给出接下来 3 天的复习安排”

读取路径:

data/mistakes/review_queue/

这样家长不用懂系统结构,也能像“看仪表盘”一样看孩子学习。


飞书接入常见问题与解决办法

(按现象对号入座)

1)机器人收不到消息 / 不回复

优先排这三件事:

  • 事件订阅是不是 WebSocket 长连接(不是 webhook)
  • OpenClaw gateway 是否在运行(很多人配完就关了)
  • openclaw logs --follow
     里有没有飞书连接/鉴权报错

解决顺序:

  • 先 openclaw gateway restart
  • 再看 openclaw logs --follow
  • 再回飞书开放平台检查事件订阅方式与权限

2)提示 App ID / Secret 不对

  • 确认复制的是应用“凭证与基础信息”里的 App ID / App Secret
  • Secret 不要有空格/换行
  • 改完后重启 gateway

3)群里 @了机器人,但它不理你

  • 有些配置需要确保机器人已加入群,并且该群允许机器人发言
  • 确认你 @ 的是正确机器人(企业里可能有多个机器人)

4)隔离失败:孩子问的内容跑到家长视角里

  • 先用“运营策略”解决:孩子只走私聊;家长只走管理群
  • 真要彻底隔离:上 双 Agent + 路由绑定(方案 2)

到这里,你再进入下一步:账号隔离


三、孩子账号隔离,别只做“聊天隔离”

要做的是四层隔离

这里是这一篇最关键的部分。

很多人一开始会觉得:

“给孩子一个单独聊天框不就行了?”

不够。

真正有效的隔离,不只是分聊天窗口,而是要做到:

  • 不串记忆
  • 不串文件
  • 不串任务结果
  • 不串输出视角

所以最稳的做法,是做 四层隔离


1. App 隔离

一个孩子一个飞书机器人 App。


2. Channel 隔离

一个飞书 App 对应一个 OpenClaw Channel。


3. Agent 隔离

一个孩子一个 Agent,独立会话、独立状态目录。


4. workspace 隔离

一个孩子一个工作区,作业、错题、日报全部分开放。


最稳的公式就一句话:

一个孩子 = 一个飞书机器人 App = 一个 OpenClaw Channel = 一个 Agent = 一个独立 workspace

这就是最不容易串台的强隔离方案。

如果你只有一个孩子,前期可以稍微简化。但如果你准备长期跑,或者未来可能不止一个孩子,我非常建议你一开始就按这个思路搭。


四、为什么我不推荐“所有人共用一个机器人”?

因为这种方案只在非常轻量的场景下勉强成立:

  • 只有一个孩子
  • 家长只是偶尔问问
  • 不怎么做数据沉淀
  • 不怎么做管理员视角

一旦你认真跑起来,共用一个机器人的问题会非常明显:

  • 多个孩子容易串文件
  • 家长和孩子的输出视角会混
  • 错题、日报、复习计划容易写到一起
  • 后面做趋势统计时,数据会越来越脏

所以如果你是认真想把它做成一套长期可用的系统,共用一个机器人,通常不是好主意。


五、命名规则一定要统一

这是最土,但最有效的防串台方法

我后来总结下来,最稳的命名方式其实很简单:

给每个孩子一个固定代号

比如:

  • kid1
  • kid2
  • kid3

然后所有东西都跟着这个代号走:

  • 工作区:kid1-coach
  • Agent:kid1-coach-agent
  • 飞书应用:学习辅导-kid1
  • 飞书机器人:kid1辅导员

别嫌这个土。它最大的价值不是好看,而是:

能少掉大部分串台和管理错误

系统一多,最怕的不是功能不够,而是你自己都分不清谁是谁。


六、真正不串台的做法:

目标

多个孩子 / 多个账号同时用,完全不串台

原理

一个孩子 = 一个飞书机器人(App) = 一个 OpenClaw Channel = 一个 Agent(独立工作区)


你要准备什么

  • 一台运行 OpenClaw 的电脑(macOS 或 Windows 都行)
  • 一个飞书企业 / 组织(能进飞书开放平台创建“企业自建应用”)
  • 每个孩子都有一个“对话入口”(私聊机器人或孩子群)

总体结构(先看懂你在搭什么)

假设有 3 个孩子(你可以是 2 个、5 个……都一样):

  • kid1:飞书 App1(机器人1)→ OpenClaw Channel1 → Agent1(kid1 专属 workspace)
  • kid2:飞书 App2(机器人2)→ OpenClaw Channel2 → Agent2(kid2 专属 workspace)
  • kid3:飞书 App3(机器人3)→ OpenClaw Channel3 → Agent3(kid3 专属 workspace)

另外再加一个:

  • 家长管理员:飞书 AppAdmin(管理员机器人)→ ChannelAdmin → AgentAdmin(汇总视角 workspace)

Part 0:命名规则(强烈建议照做,能少 80% 的串台)

给每个孩子一个代号(不要用真名也行):

  • kid1
  • kid2
  • kid3

你后面所有东西都按这个代号命名:

  • 工作区:kid1-coach
  • Agent:kid1-coach-agent
  • 飞书应用:学习辅导-kid1
  • 飞书机器人名称:kid1辅导员

这样你永远不会搞混。


Part 1:在电脑上给每个孩子创建独立工作区(文件隔离)

Step 1.1:创建 3 个孩子的工作区(macOS / Windows)

macOS(终端)

1)打开「终端」2)复制粘贴执行(一次建好 3 个孩子的目录和四个规则文件):

# 你有几个孩子就把 kidX-coach 加几个for k in kid1-coach kid2-coach kid3-coach; domkdir-p ~/openclaw-workspaces/$k/{memory,logs,skills,assets/{attachments,screenshots},data/{homework/{inbox,parsed,done},mistakes/{inbox,subjects,review_queue},plans/{weekly,daily},reports/{daily,weekly},rubrics}}touch ~/openclaw-workspaces/$k/{SOUL.md,USER.md,AGENTS.md,TOOLS.md}done

Windows(PowerShell)

1)开始菜单搜索 PowerShell → 打开2)复制粘贴执行:

$base="$HOME\openclaw-workspaces"$kids=@("kid1-coach","kid2-coach","kid3-coach")foreach($kin$kids){New-Item-ItemTypeDirectory-Force-Path `"$base\$k\memory","$base\$k\logs","$base\$k\skills","$base\$k\assets\attachments","$base\$k\assets\screenshots","$base\$k\data\homework\inbox","$base\$k\data\homework\parsed","$base\$k\data\homework\done","$base\$k\data\mistakes\inbox","$base\$k\data\mistakes\subjects","$base\$k\data\mistakes\review_queue","$base\$k\data\plans\weekly","$base\$k\data\plans\daily","$base\$k\data\reports\daily","$base\$k\data\reports\weekly","$base\$k\data\rubrics"|Out-NullNew-Item-ItemTypeFile-Force-Path `"$base\$k\SOUL.md","$base\$k\USER.md","$base\$k\AGENTS.md","$base\$k\TOOLS.md"|Out-Null}


Step 1.2:把“规则文件”复制进去(每个孩子都要有)

你之前写过 SOUL.md / USER.md / AGENTS.md / TOOLS.md 的模板。现在做法是:

  • kid1-coach 里:写 kid1 的年级、特点、可用时间等
  • kid2-coach 里:写 kid2 的信息
  • kid3-coach 里:写 kid3 的信息

新手简化:先把同一份模板复制 3 份,后面再慢慢改细节也行。

macOS(复制模板到每个孩子)

假设你原模板在 ~/openclaw-workspaces/study-coach/

for k in kid1-coach kid2-coach kid3-coach; docp ~/openclaw-workspaces/study-coach/SOUL.md ~/openclaw-workspaces/$k/SOUL.mdcp ~/openclaw-workspaces/study-coach/USER.md ~/openclaw-workspaces/$k/USER.mdcp ~/openclaw-workspaces/study-coach/AGENTS.md ~/openclaw-workspaces/$k/AGENTS.mdcp ~/openclaw-workspaces/study-coach/TOOLS.md ~/openclaw-workspaces/$k/TOOLS.mddone

Windows(复制模板到每个孩子)

$src="$HOME\openclaw-workspaces\study-coach"$kids=@("kid1-coach","kid2-coach","kid3-coach")foreach($kin$kids){Copy-Item"$src\SOUL.md""$HOME\openclaw-workspaces\$k\SOUL.md"-ForceCopy-Item"$src\USER.md""$HOME\openclaw-workspaces\$k\USER.md"-ForceCopy-Item"$src\AGENTS.md""$HOME\openclaw-workspaces\$k\AGENTS.md"-ForceCopy-Item"$src\TOOLS.md""$HOME\openclaw-workspaces\$k\TOOLS.md"-Force}


Part 2:把 3 个 Skill 分发到每个孩子工作区(能力隔离)

你已经做好的 3 个 Skill:

  • homework-intake
  • review-scheduler
  • mistake-tracker

Step 2.1:复制 skills 到每个孩子的工作区

macOS

for k in kid1-coach kid2-coach kid3-coach; domkdir-p ~/openclaw-workspaces/$k/skillscp-R ~/openclaw-workspaces/study-coach/skills/* ~/openclaw-workspaces/$k/skills/done

Windows

$src="$HOME\openclaw-workspaces\study-coach\skills\*"$kids=@("kid1-coach","kid2-coach","kid3-coach")foreach($kin$kids){New-Item-ItemTypeDirectory-Force-Path"$HOME\openclaw-workspaces\$k\skills"|Out-NullCopy-Item$src"$HOME\openclaw-workspaces\$k\skills"-Recurse-Force}

✅ 检查点(新手一定要看一眼):任意一个孩子目录里应该存在:kid1-coach/skills/homework-intake/SKILL.md(另外两个 skill 同理)


Part 3:在 OpenClaw Control 里创建“每个孩子一个 Agent”(记忆隔离)

Step 3.1:创建 3 个 Agent(在网页里操作)

你在 OpenClaw Control(管理网页)里依次创建:

  • kid1-coach-agent → workspace 指向 .../kid1-coach
  • kid2-coach-agent → workspace 指向 .../kid2-coach
  • kid3-coach-agent → workspace 指向 .../kid3-coach

工作区路径示例:

  • macOS:/Users/你的用户名/openclaw-workspaces/kid1-coach
  • Windows:C:\Users\你的用户名\openclaw-workspaces\kid1-coach

Step 3.2:验证 3 个 Agent 真的不串(必须做)

分别进入三个 Agent 的聊天窗口,分别发送:

“请在 data/reports/daily/ 下创建 test.md,写入:我是 kid1(或 kid2/kid3)。”

然后去各自目录确认:

macOS 检查

cat ~/openclaw-workspaces/kid1-coach/data/reports/daily/test.mdcat ~/openclaw-workspaces/kid2-coach/data/reports/daily/test.mdcat ~/openclaw-workspaces/kid3-coach/data/reports/daily/test.md

Windows 检查

type$HOME\openclaw-workspaces\kid1-coach\data\reports\daily\test.mdtype$HOME\openclaw-workspaces\kid2-coach\data\reports\daily\test.mdtype$HOME\openclaw-workspaces\kid3-coach\data\reports\daily\test.md

✅ 看到各自写各自的内容,说明“文件隔离 + agent隔离”已经成功。


Part 4:飞书侧——为每个孩子创建一个独立机器人 App(入口隔离)

这一步是方案 A 的核心:每个孩子一个 App,天然不会串台。

对每个孩子重复一次(kid1 / kid2 / kid3 都要做一遍):

Step 4.1:创建企业自建应用

飞书开放平台 → 创建应用 → 选择“企业自建应用”

建议命名:

  • 学习辅导-kid1
  • 学习辅导-kid2
  • 学习辅导-kid3

Step 4.2:启用机器人能力

应用内 → 应用能力 → 机器人 → 开启

Step 4.3:配置权限(先最小权限)

在权限管理里,确保机器人具备:

  • 接收消息事件
  • 发送消息

新手建议:先只开 IM 消息相关,跑通后再加文档 / 表格权限。

Step 4.4:事件订阅选择 WebSocket(推荐)

事件与回调 / 事件订阅:

  • 选择 WebSocket(长连接)
  • 订阅消息接收事件(消息事件)

Step 4.5:发布应用

版本管理与发布 → 创建版本 → 发布(不发布很多情况下机器人无法正常工作)

Step 4.6:把机器人加入“该孩子”的对话入口

  • kid1 的机器人只加到 kid1 的私聊或 kid1 群
  • kid2 的机器人只加到 kid2 的私聊或 kid2 群
  • kid3 同理

⚠️ 不要把 kid1 机器人加到 kid2 群,否则你自己也会混。


Part 5:OpenClaw 侧——为每个孩子添加一个 Feishu Channel(通道隔离)

现在你有 3 个飞书 App,每个 App 都有:

  • App ID
  • App Secret

你要在 OpenClaw 里把这 3 组凭证分别加进去(3 次 channel add)。

Step 5.1:确保 gateway 在跑(mac / win 一样)

openclaw gateway status

Step 5.2:添加第 1 个孩子(kid1)的飞书渠道

执行:

openclaw channels add

按提示选择 Feishu,然后填 kid1 的 App ID / App Secret。

Step 5.3:添加第 2、3 个孩子(重复)

再执行两次:

openclaw channels addopenclaw channels add

分别填 kid2、kid3 的 App ID / Secret。

Step 5.4:重启 gateway 并看日志

openclaw gateway restartopenclaw logs --follow

✅ 检查点:日志里不应持续报鉴权错误 / 连接失败。如果有,先看文末排错。


Part 6:把“每个飞书机器人”绑定到“对应孩子 Agent”(关键:不串台)

不同版本 OpenClaw 的 UI / 配置入口会不同,但方案 A 有一个新手最稳绑定法:

一个飞书机器人 App 只对应一个 Channel,并在控制台里把该 Channel 的默认 Agent 指向对应的 kidX Agent。

你可以这样做(两种方式任选其一):

方式 6A(推荐):在 OpenClaw Control 里设置“Channel → Default Agent”

1)打开 OpenClaw Control2)进入 Channels(频道)3)找到 kid1 的 feishu channel4)设置 Default Agent = kid1-coach-agent5)kid2 / kid3 同理

方式 6B(如果 UI 找不到绑定项):用“物理隔离”确保不串

  • kid1 的机器人只加入 kid1 的群 / 私聊
  • kid2 的机器人只加入 kid2 的群 / 私聊
  • 你在 OpenClaw 里分别用不同会话窗口测试回复

这种方式也能做到“用户侧不串”,但管理上不如 6A 优雅。


Part 7:家长管理员视角(一个管理员机器人 + 一个管理员 Agent)

Step 7.1:创建家长管理员工作区(macOS / Windows)

macOS

mkdir-p ~/openclaw-workspaces/parent-admin/{memory,logs,skills,data/{reports/{daily,weekly},mistakes/review_queue,plans/{weekly,daily}}}touch ~/openclaw-workspaces/parent-admin/{SOUL.md,USER.md,AGENTS.md,TOOLS.md}

Windows

$base="$HOME\openclaw-workspaces\parent-admin"New-Item-ItemTypeDirectory-Force-Path `"$base\memory","$base\logs","$base\skills","$base\data\reports\daily","$base\data\reports\weekly","$base\data\mistakes\review_queue","$base\data\plans\weekly","$base\data\plans\daily"|Out-NullNew-Item-ItemTypeFile-Force-Path `"$base\SOUL.md","$base\USER.md","$base\AGENTS.md","$base\TOOLS.md"|Out-Null

Step 7.2:创建 parent-admin-agent

在 OpenClaw Control 新建 parent-admin-agent,workspace 指向 parent-admin。

Step 7.3:创建“管理员飞书 App”(跟孩子一样流程)

再在飞书开放平台创建一个应用:

学习辅导-admin

按 Part 4 完成机器人、权限、WebSocket、发布、加入“家长管理群”。

Step 7.4:在 OpenClaw 添加 admin channel 并绑定到 admin agent

openclaw channels addopenclaw gateway restart

然后在 Control 里把这个 admin channel 默认 agent 设为 parent-admin-agent。


家长管理群固定 3 条指令(让家长像看仪表盘)

家长在群里 @ 管理员机器人输入:

1)日报

生成今日日报:各孩子完成了什么 / 卡点 / 明天1个重点;保存到 data/reports/daily/

2)周报

生成本周周报:各孩子薄弱点趋势、错题回流完成度、下周建议;保存到 data/reports/weekly/

3)错题趋势

统计最近7天各孩子新增错题数、主要错因分布(审题 / 计算 / 概念 / 习惯),并给出3条改进建议

建议:admin agent 只做汇总,不直接辅导做题,体验会清晰很多。


方案 A 排错清单(新手最常见问题 → 直接解决)

1)某个孩子机器人不回复

按顺序检查:

  • 飞书应用是否“已发布版本”(没发布常见:无响应)
  • 事件订阅是否 WebSocket
  • OpenClaw gateway 是否在运行
  • openclaw logs --follow
     是否报 AppID / Secret 鉴权失败(填错最常见)

2)三个机器人只有一个能用

通常是:

  • 你只在 OpenClaw 里 add 了一个 channel(或后两个 add 时没保存)
  • 或者后两个 App 的权限 / 发布没做完

解决:

  • 逐个在飞书里私聊机器人发“在吗”
  • 哪个不回,就去 logs 看它对应的 channel 是否在线

3)串台(kid1 回到了 kid2 的内容)

串台在方案 A 里几乎只会因为:

  • 机器人被加错群(kid1 机器人跑去 kid2 群)
  • channel 默认 agent 绑定错

解决:

  • 按代号检查机器人所在群
  • 在 Control 里重新设置 Channel → Default Agent

4)Windows 目录里文件变成 .txt 导致规则不生效

解决:

  • 打开“显示文件扩展名”
  • 确认是 SOUL.md 不是 SOUL.md.txt


八、家长管理员视角,最好的做法不是“看得更多”

而是“固定看 3 类东西”

这一部分也是整篇里特别关键的一块。

很多家长一听“管理员视角”,会下意识觉得:

  • 可以实时看所有对话
  • 可以随时插手
  • 可以逐题监控
  • 可以不断给指令

但这样做,系统最后很容易变成一个更高级的“监工后台”。

这其实违背了你搭这套系统的初衷。

所以我现在更推荐的做法是:

家长管理员视角固定成 3 类指令


指令 1:日报

家长在管理群里固定发:

生成今日日报:各孩子完成了什么 / 卡点 / 明天 1 个重点;保存到 data/reports/daily/

理想输出应该包括:

  • 今日完成清单
  • 一个最卡点
  • 明天一个重点
  • 一句不指责的家长建议

指令 2:周报

家长固定发:

生成本周周报:各孩子薄弱点趋势、错题回流完成度、下周建议;保存到 data/reports/weekly/

这一条特别适合每周固定看一次。家长看完之后,心里会很清楚:

  • 哪一科最近在波动
  • 哪类错题一直没收住
  • 下周重点应该放哪

指令 3:错题趋势

家长固定发:

统计最近 7 天各孩子新增错题数、主要错因分布(审题 / 计算 / 概念 / 习惯),并给出 3 条改进建议

这条指令的价值很大。因为它会让家长从“感觉孩子最近老错”变成“我知道孩子最近到底在错什么”。


九、管理员 Agent 应该只做汇总

不要直接下场辅导做题

这是我后来特别坚持的一条设计原则。

最清晰的分工应该是:

孩子 Agent

负责:

  • 接作业
  • 出当天任务
  • 给一步一步反馈
  • 跟踪错题回流

家长管理员 Agent

负责:

  • 看日报
  • 看周报
  • 看错题趋势
  • 看规则是否需要调整

家长管理员 Agent 最好不要直接下场辅导做题。一旦它又开始讲题、出题、追着孩子跑,孩子视角和家长视角就会重新混在一起。


十、实际使用链路,跑起来应该是什么样?

如果你把前面这些都搭好,那这套系统真正进入日常之后,链路大概是这样的:


孩子端

1. 发作业

可以发:

  • 文字
  • 拍照
  • 老师消息截图
  • 课本作业页

2. OpenClaw 接住后

走“接作业”Skill:

  • 拆任务
  • 排顺序
  • 给出孩子版清单

3. 做题过程中如果出错

系统会:

  • 触发错题追踪
  • 写入错题目录
  • 放进复习池

4. 每天结束后

自动生成:

  • 学习记录
  • 简短反馈
  • 明日建议

家长端

1. 不需要全过程盯着

家长不必每做一题都介入。

2. 固定看管理群里的汇总

比如:

  • 日报
  • 周报
  • 错题趋势

3. 看到异常再介入

比如:

  • 某类题连续 3 天都错
  • 某一科明显掉状态
  • 某周作业执行率很低

这时候再调整规则、改节奏。

这会让家长从“盯作业的人”,慢慢变成“看系统节奏的人”。


十一、飞书接入里最常见的坑

这一部分建议你保留着,后面排错会很有用。


1)机器人不回复

优先检查:

  • 飞书应用有没有发布版本
  • 事件订阅是不是 WebSocket
  • OpenClaw gateway 是否在运行
  • openclaw logs --follow
     里有没有鉴权报错

2)只有一个孩子的机器人能用

常见原因是:

  • 只 add 了一个 channel
  • 后两个 App 权限没开全
  • 后两个 App 没发布

最笨但有效的排查方式就是:

  • 逐个私聊机器人发“在吗”
  • 哪个不回,就查哪个 channel 的日志

3)串台

最常见的来源就两类:

  • 机器人被加错群
  • Channel 默认 Agent 绑定错了

4)Windows 下 .md 其实是 .txt

这个坑特别隐蔽。

你以为自己写的是:

  • SOUL.md
  • USER.md

实际上可能是:

  • SOUL.md.txt
  • USER.md.txt

所以 Windows 用户一定要打开“显示文件扩展名”,确认文件后缀真的是 .md


十二、这一篇最重要的结论

如果你只记住一句话,我希望是这个:

飞书在这套全科辅导系统里,最重要的不是“能聊天”,而是“能把不同角色放进不同入口”

孩子只看到任务。家长只看到汇总。孩子的机器人只进孩子的入口。家长的管理员机器人只进家长管理群。每个孩子有自己独立的 App、Channel、Agent、workspace。

这样做的结果不是系统更复杂了,而是:

它终于能长期跑,而且不容易乱


结尾总结

前两篇解决的是:

这套系统能不能搭起来,能不能跑起来

这一篇解决的是:

这套系统能不能真的进入孩子和家长的日常生活

如果你前两篇已经把工作区和三个核心 Skill 跑通了,那这一篇最推荐你优先做的,就是:

  • 先把飞书接上
  • 先跑通最基本的收发消息
  • 再把孩子视角和家长视角分开
  • 最后再去做更完整的后台管理和数据看板

一步一步来,不要一开始就想把一切都自动化。

真正好用的学习系统,从来不是“功能最多”的那个,而是放进日常以后:

  • 孩子愿意打开
  • 家长看得明白
  • 数据自然沉淀
  • 双方都不觉得累

这才是最难、也最值钱的部分。


下一篇预告(第 4 篇)

下一篇,我会继续讲这套系统最后一个特别关键的部分:

数据沉淀:每天自动写学习记录、错题怎么归类、薄弱项趋势怎么看

也就是:

  • 每天的学习记录到底怎么自动生成
  • 错题分类怎么做才有价值
  • 家长怎么从“感觉孩子最近不稳”,变成“看得见地知道哪里不稳”

到那一步,这套系统就真正从“能用”走向“越来越懂你的孩子”。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 18:48:59 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/488753.html
  2. 运行时间 : 0.108641s [ 吞吐率:9.20req/s ] 内存消耗:4,998.19kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=f5fb51d80c35546e12fa59c992615437
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.68 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000508s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000583s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000312s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001330s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000522s ]
  6. SELECT * FROM `set` [ RunTime:0.000212s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000701s ]
  8. SELECT * FROM `article` WHERE `id` = 488753 LIMIT 1 [ RunTime:0.001785s ]
  9. UPDATE `article` SET `lasttime` = 1774608539 WHERE `id` = 488753 [ RunTime:0.008546s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.002882s ]
  11. SELECT * FROM `article` WHERE `id` < 488753 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001053s ]
  12. SELECT * FROM `article` WHERE `id` > 488753 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002557s ]
  13. SELECT * FROM `article` WHERE `id` < 488753 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003869s ]
  14. SELECT * FROM `article` WHERE `id` < 488753 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000875s ]
  15. SELECT * FROM `article` WHERE `id` < 488753 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004924s ]
0.110291s