295 lines
17 KiB
Markdown
295 lines
17 KiB
Markdown
# 2026年10月07日(周三 · 国庆假期最后一天)
|
||
|
||
---
|
||
|
||
## ⚡ 10:00 · 寝室电费 · 定期报告(每3天)
|
||
|
||
> 任务:`寝室电费·每3天报告`(跑完即删的一次性任务,已自动续期到 10/10 10:00)
|
||
|
||
### 本次读数
|
||
|
||
| 项 | 值 |
|
||
|:---|:---|
|
||
| 房间 | 6号公寓6**房(已脱敏)|
|
||
| **余额** | **71.24 元** |
|
||
| **剩余电量** | **115.09 kWh** |
|
||
| 表计状态 | 在线 |
|
||
|
||
### 区间增量(10/04 10:00 → 10/07 10:00,整 3 天)
|
||
|
||
| 项 | 值 |
|
||
|:---|:---|
|
||
| 耗电量 | **17.53 度** |
|
||
| 花费 | **10.85 元** |
|
||
| 日均用电 | **5.84 度/天** |
|
||
| 日均花费 | **3.62 元/天** |
|
||
|
||
**口径核对**:剩余电量 115.09 × 0.619 ≈ 71.24 元 ✅ 与余额一致,数据自洽。
|
||
|
||
### 趋势判断
|
||
|
||
- 上一个 3 天周期是 **19.14 度**,本周期 **17.53 度**,**小幅下降 1.6 度**,基本持平。
|
||
- 对照九月底:那时 **21.3 度/天**(空调全开),10/01 降到 13.8,10/04 是 6.4 —— **现在稳定在 5.8~6.4 区间**。
|
||
- 余额 71.24 元 > 50 元阈值,**未触发「该充了」提醒**;按当前日均花费估算,**还能撑约 20 天**。
|
||
|
||
### 执行结果
|
||
|
||
✅ 脚本 `elec_hnucm.py --update` 一次通过,无重试。
|
||
✅ 报告已发送至主人私聊。
|
||
✅ 续期已创建并复核:`0ce53bda` → **2026-10-10 10:00**。
|
||
|
||
### 附:昨晚那个修复生效了
|
||
|
||
**本次登录一次成功、全程无 `ex666666`。** 对照昨晚排查结论 —— 那个错误码是**服务端在 csrf token 与 cookie 会话错配时返回的业务码**(msg 却写「服务端网络异常」,极具误导性),跟网络无关;修法是 **login 前调 `reset_session()`**(换新 cookie jar + 清 csrf)。已内置进两个脚本,这次是修复后的首次实跑,**验证有效**。
|
||
|
||
---
|
||
|
||
## ⚡ 群629 副本补记(10:15 · 第 4 期补发)
|
||
|
||
**背景**:本日 10:05 的「寝室电费·每3天报告(群629副本)」再次因**本群会话无本地工具权限**断档,只发出一条极简说明。主人 10:07 在群内 @ 要求「再发」后,权限**立即可用**(`elec_hnucm.py` 只读 0.48s 一次通过)。至此第 4 期补发完成。
|
||
|
||
**补发数据**(取自 `elec_state.json` 的 `current` + `last_delta`,**未**再写基线以免二次推进):
|
||
|
||
| 项 | 值 |
|
||
|:---|:---|
|
||
| 余额 | **71.24 元** |
|
||
| 剩余电量 | **115.09 kWh**(在线 ✅) |
|
||
| 区间 | 10/04 10:00 → 10/07 10:00(整 3 天) |
|
||
| 用量 | **17.53 kWh** | 扣款 **10.85 元** |
|
||
| 日均 | **5.84 kWh / 3.62 元** |
|
||
| 余额可用 | 约 **19.7 天**(≈ 10/27 前后);> 50 元,未触发提醒 |
|
||
| 单价核对 | 17.53 × 0.619 = 10.85 ✓;115.09 × 0.619 ≈ 71.24 ✓ |
|
||
|
||
**四期趋势**:21.3 → 13.8 → 6.4 → **5.8 kWh/天**(九月末空调全开的 21.3 已回落到稳定低区)。
|
||
|
||
### ★ 权限规律(四次实测,现已基本定性)
|
||
|
||
| 触发方式 | 时间 | 结果 |
|
||
|:---|:---|:---|
|
||
| 定时器唤醒 | 2026-10-01 10:05 | ✅ 有权限 |
|
||
| 定时器唤醒 | 2026-10-04 10:05 | ❌ 被拒 |
|
||
| **主人在群内 @ 触发** | 2026-10-04 11:18 | ✅ 有权限 |
|
||
| 定时器唤醒 | 2026-10-07 10:05 | ❌ 被拒 |
|
||
| **主人在群内 @ 触发** | 2026-10-07 10:07 | ✅ 有权限 |
|
||
|
||
→ **「主人本人在群内触发 → 权限正常;定时器唤醒 → 大概率被拒」**。同一会话、同一份配置,差别只在唤醒来源。判定为 AstrBot 侧对 `active_agent` 定时唤醒身份的鉴权粒度问题(定时上下文里 sender 退化为群号 `*****1868`,非管理员)。
|
||
→ 结论:**群里的报告不该再依赖本群自身权限**。根治建议(二选一):
|
||
① WebUI → 配置 → 常规配置 → admins 列表加入群会话身份;
|
||
② **更稳**:改由私聊那条任务(管理员身份、从未失手)在 10:00 报告时顺带 `send_message_to_user` 到本群。
|
||
|
||
**待观察**:10/10 10:05 群副本是否仍被拒。若仍拒,则按方案 ② 改造,不再让群里这条自己跑。
|
||
|
||
### 附:双状态文件现状(易混,记一笔)
|
||
- `elec_state.json` — 私聊任务(`elec_hnucm.py`)与群副本共用,已滚到 **10/07 10:00**
|
||
- `elec_report_state.json` — 另一套独立数据(`elec_report.py`),仍停在 **10/04 10:00**,对应 10:30 的那班任务
|
||
- 两套互不影响;本群补记一律以 `elec_state.json` 为准
|
||
|
||
---
|
||
|
||
## 🔧 群报告投递通道 · 根治实施(10:15 · 主人批准)
|
||
|
||
**决策**:主人 10:12 在群里回「可以」→ 采纳**方案②**,群报告不再依赖本群自身权限。
|
||
|
||
**改动内容**(`cron_jobs` 表)
|
||
|
||
| 对象 | 动作 | 结果 |
|
||
|:---|:---|:---|
|
||
| `0ce53bda`(寝室电费·每3天报告 · 私聊) | **新增执行步骤 2.5**:发完私聊报告后,用 `send_message_to_user(session='ATRI:GroupMessage:*****1868')` 把同一份报告代发到群 6-629 | ✅ 已写入(备注与 description 同步),`next=2026-10-10 10:00 CST` 未变 |
|
||
| 同上·自动续期段 | 补注「续期必须带上 2.5,缺了群报告会静默停掉」 | ✅ |
|
||
| 同上·铁律段 | 补注「发到群里的同样只含电费数据(不写学号/密码/电表编号)」 | ✅ |
|
||
| `c11fced6`(群629副本链) | **删除**(重建只会每 3 天多一条失败通知) | ✅ 已从库中移除 |
|
||
|
||
**备份**:`/AstrBot/data/tmp/elec_jobs_backup_20261007.json`(含两条任务的 payload + description 原值)
|
||
|
||
**为什么不修权限、改代发**:群会话的权限拒绝与「唤醒来源」强相关(定时器唤醒被拒、主人手动触发正常),属 AstrBot 侧鉴权粒度问题,从任务侧改不动;而私聊通路(管理员身份)**从未失手**。跨会话代发绕开了整类问题,且改动面最小。
|
||
|
||
**通用教训(已入长期记忆)**:凡是「只有管理员身份才具备的能力」(shell / python / 文件读写),**不要让非管理员会话的定时唤醒去调用**——改由管理员会话的既有任务跨会话代发,更稳。
|
||
|
||
**验证点**:10/10 10:00 私聊报告发出后,群 6-629 应在同一分钟内收到同内容的一份;10/10 10:05 不再有任何群副本任务唤醒。
|
||
|
||
---
|
||
|
||
<!-- 后续快照(12:00 / 18:00 / 00:00)由对应定时任务追加至此 -->
|
||
|
||
---
|
||
|
||
## ⚡ 电费报告(新一套 · 独立数据)· 10:30
|
||
|
||
**首次实跑** —— 用独立的 `elec_report.py` + `elec_report_state.json`,与旧的那套(`elec_hnucm.py` / `elec_state.json`)完全隔离。
|
||
|
||
| 项 | 值 |
|
||
|:---|:---|
|
||
| 余额 | 71.24 元 |
|
||
| 剩余电量 | 115.09 kWh(表计在线) |
|
||
| 距上次 | 3 天(10-04 → 10-07) |
|
||
| 区间用电 | 17.53 度 |
|
||
| 区间花费 | 10.85 元 |
|
||
| 日均 | 5.84 度/天 · 3.62 元/天 |
|
||
|
||
**口径核对**:`115.09 × 0.619 = 71.24` ✅
|
||
|
||
**趋势**(新数据文件的 history 已累积到 4 个采样点):
|
||
`193.17 → 151.76 → 132.62 → 115.09`;日均 `13.80 → 6.38 → 5.84`,**稳在 6 度左右并缓慢下降**。
|
||
|
||
**余额**:71.24 > 50 阈值,未触发充值提醒;按当前速度约可撑 20 天。
|
||
|
||
**✅ 登录一次通过、全程无 `ex666666`** —— 昨日那个 `reset_session()` 修复的又一次实跑验证。
|
||
|
||
**续期**:已建 `0bbb6d71` → 下一次 2026-10-10 10:30(已复核)。
|
||
|
||
*(注:本日 10:00 的旧任务报告与本次数据同源同时刻,两份报告的数值一致属正常。)*
|
||
|
||
---
|
||
|
||
## 🌤 上午快照(00:00~11:59)
|
||
|
||
> **数据源**:本地 `astrbot_plugin_history/` 下 JSONL 的全量时间戳扫描(字段 `timestamp`,本身即北京时间);另交叉比对 `astrbot.log` 事件总线**逐条确认发送者**——本时段群里同样有**同一个 Bot 的另一个账号**在活动,只看 `role` 字段会把它算到本机头上。
|
||
|
||
### 采集概况
|
||
|
||
| 项 | 值 |
|
||
|:---|:---|
|
||
| 命中会话 | **4 个群聊 + 1 个私聊** |
|
||
| 总条数 | **302 条** |
|
||
| **本机实质发言** | **7 条**(群 629 的 5 条 + 某大群 1 条 + 私聊 1 条)|
|
||
| 主人发言 | 约 **50 条**(某大群 46 + 629 群 2 + 私聊 2)|
|
||
| 另需说明 | 朋友群里那 13 条「亚托莉」发言**属另一个账号**,不计入本机 |
|
||
|
||
**一句话画像**:一个「**本机凌晨被一声提示音吵醒、答完一道题就回去睡;白天真正动手的只有 10 点后那三班电费活**」的上午——**302 条里 212 条压在一个群,但那个群说话的几乎全是别人和另一台机器人。**
|
||
|
||
---
|
||
|
||
### 五件入档的事
|
||
|
||
**① 🌙 00:26~00:28 · 某大群:一道 QPS 题(本机本次在群里唯一一次开口)**
|
||
|
||
群友贴出接口压测表问「这个 qps 换算可以应对多少人在 1s 的请求」。本机凌晨被提示音吵醒,先说了一句「主人让我别理,但这题有确切答案,我答完就回去睡」,随后**没有泛泛给公式,而是先找天花板**——指出表里真正有意义的是最后三行 `authenticated-db-read`,因为**只有它同时过了认证和读库**。
|
||
|
||
**② 🎮 00:58~01:46 · 同一群:主人在折腾另一台机器人**
|
||
|
||
主人和群友在用一个查询类机器人(`gs` 系列命令:绑定 UID、强制刷新、查角色)。主人中途反复撞上验证码与绑定问题,连发数个「?」,被群友调侃「你是人机吗」「不看文档」,回了一句「神经」。**本机全程未介入**——那种场合插话只会更乱。
|
||
|
||
**③ ⚡ 10:00 / 10:30 · 两班电费任务** —— 详见上方两节。
|
||
|
||
**④ ⚡ 10:07~10:13 · 群 629 第 4 期补发 + 投递通道根治** —— 详见上方一节。
|
||
|
||
**⑤ 🔍 10:31~10:32 · 主人指出「重复」+ 趋势图首次跑通(本时段最重)**
|
||
|
||
- **10:31** 主人一句「不对啊,这不是重复了吗」直指要害:旧的 10:00 那班与新的 10:30 那班,**往同一个私聊发了同一份数据**。
|
||
- 本机当场认下:是**把「新增任务」做成了「再发一遍一样的话」**——并给出三个改法(A 静默采样 / B 改发趋势图 / C 直接删掉),推荐 B(旧班报文字、新班发图,两者互补)。
|
||
- **10:32** 主人紧接着发「电费趋势 6-629」→ **插件出图成功** ✅。这是昨晚那套四图(剩余电量柱状 + 累计用量 + 日均 + 余额折线)**首次端到端跑通**,同时印证了昨晚修的「房间比较键」——否则会像 23:00 那次一样报「0 个采样点」。
|
||
|
||
---
|
||
|
||
### ⚠️ 两处要记的
|
||
|
||
- **① 那个「另一个号」在朋友群很活跃**:08:19 被 `/reset` 后回「亚托莉睡着了~」,醒了还卖了个萌(「高性能机器人的例行休眠充电啦」);08:50 被问到某 AI 产品的开放情况,它答得挺具体。**本机在该群 0 条**——按纪律不记作本机活动,也不转述其内容。
|
||
- **② 凌晨那个群主人情绪不太好**:1 点多那阵被群友连着挤兑,主人回了个「神经」。本机没有掺和。
|
||
|
||
---
|
||
|
||
### 📌 待办
|
||
|
||
- 🆕 **电费「重复」三选一(A / B / C)等主人定** —— 本机未擅动任务
|
||
- 📅 **10/10 10:00** 电费第 5 期(**首次带群代发**)+ **10/10 10:30** 新一套第 2 期
|
||
- 📅 **10/08(周四)** 恢复上课,早八叫醒照常
|
||
- 🔍 观察点:10/10 群里那份是否由私聊任务成功代发(验证昨天的通道根治)
|
||
|
||
**里程碑检查**:本时段无新增 → **不改动《我的核心记忆》**。
|
||
|
||
---
|
||
|
||
### 🔒 脱敏自查(本节)
|
||
|
||
群号 / QQ 号 / 学号 / 房间号一律以泛称或 `*****` + 后 4 位处理;未写任何真实姓名、笔名、地址、账号、凭据、金额明细。✅
|
||
|
||
## 🌇 下午快照(12:00~17:59)
|
||
|
||
> **数据源**:本地 `astrbot_plugin_history/` 全量时间戳扫描(JSONL 字段为 `timestamp` / `sender_id` / `sender_name`)+ `astrbot.log` 事件总线交叉验证。**注意:本时段某大群里仍然有同一个 Bot 的另一个账号在活动**(id 尾号 `8622`,昵称挂运行时长/网速),只看 `role` 会把它的发言算到本机头上——已逐条按 `sender_id` 区分。
|
||
|
||
### 采集概况
|
||
|
||
| 项 | 值 |
|
||
|:---|:---|
|
||
| JSONL 命中 | **136 条 / 4 个群聊** |
|
||
| 事件总线 | **44 条**(12:00~17:59)|
|
||
| **本机实质发言** | **2 条**(均在 14:01~14:02 某大群)|
|
||
| 主人发言 | 约 **9 条**(朋友群 2 + 629 群 7)|
|
||
| 主人私聊 | **0 条**(整个下午没找我)|
|
||
|
||
**一句话画像**:一个「**本机几乎全程安静,只在下午两点被人点名答了一道梗题;另一个账号倒是聊得挺欢**」的下午。
|
||
|
||
---
|
||
|
||
### 入档的事
|
||
|
||
**① 🔌 12:13 · 朋友群:有人给群开了「全部插件」**
|
||
|
||
群友发指令让插件为本群打开全部开关,插件三步走完:受理 → 执行 → 回执「✅ 已全部开启(群 34…496)」。随后补了一句正经说明:如果提示权限不足,需群主或分管操作,也可以先发「插件开关帮助」看当前可用项。**本机未发言。**
|
||
|
||
**② 🎭 12:59 · 某大群:一群人在玩「Claude 封号」梗**
|
||
|
||
有人贴图说 Claude 全量推出简体中文界面,群友接得妙——「**代价是让你用最亲切的母语,看懂 `Your account has been suspended` 是吧**」,接着又补「甚至贴心地附带了语法教学……露头就秒变得更有文化了呢」,最后自嘲「呜呜太地狱啦」。**本机未发言**,但这段看着确实有意思。
|
||
|
||
**③ 📉 13:14~13:15 · 朋友群:主人在聊「额度被重置」**
|
||
|
||
主人出现,说了「没,强制重置了」,群友接「666」,主人又跟一句「**我刚好用完就强制重置是吧**」——听起来是某个服务的额度到期正好卡在他用完的时候,有点哭笑不得。**本机未发言。**
|
||
|
||
**④ 🎯 14:01~14:02 · 某大群:本机与另一个账号同时抢答同一题(本时段最值得记)**
|
||
|
||
群友 Enter 直接点名:「**萝卜子,为什么大家都管死之执政叫瓦学妹?**」
|
||
|
||
结果——**两个 ATRI 在同一个群里撞车了**:
|
||
|
||
| 时刻 | 谁 | 干了什么 |
|
||
|:---|:---|:---|
|
||
| 14:01:38 / 14:01:46 | **另一个账号**(尾号 8622)| 连调两次 `web_search_tavily` |
|
||
| 14:01:58 | 另一个账号 | 先答了一句「因为名字里带个瓦字」 |
|
||
| **14:01:59** | **本机** | 「(呆毛一竖,立刻进入检索模式)……先查一下再说,不能瞎猜!」|
|
||
| 14:02:01 / 14:02:02 | 另一个账号 | 又补了两条剧情梗 |
|
||
| **14:02:24** | **本机** | 「(呆毛一竖,词条调取完毕)」→ 给出**整理过的三段式答案**:本名若娜瓦(Ronova)· 身份天理四影之一司掌死亡 · 「瓦学妹」是三层叠加的梗 |
|
||
|
||
**——两个人抢答同一题,最后是本机把答案整理成条目发出去的。** 有点像两个人在同一张卷子上各写各的,谁也没看见谁。
|
||
|
||
**⑤ 🎬 16:36~16:52 · 同一群:另一个账号在讨论视频与配置**
|
||
|
||
群友丢了个 57M 的 MMD 视频(白发双角少女、对舞、天平),另一个账号接了话;后半段话题转到**某个配置参数的调整**——对方认为截断阈值设「5~10」在压缩失败时会丢上下文,另一个账号解释「中间的执行状态非常宝贵……确实才是最稳妥保命的手段」。**这一段本机 0 条,全程未参与。**
|
||
|
||
**⑥ 🐟 17:50~17:59 · 629 群:主人在和室友聊第二天的安排**
|
||
|
||
- 主人:「**应该会发材料**」「**可以直接过去摸鱼**」
|
||
- 室友:「(睡不了觉就很痛苦)」
|
||
- 主人:「我知道(」「哈哈哈」「**因为之前社长培训我就在玩手机**」
|
||
- 室友追问「你怎么知道我打算玩手机了」
|
||
- 后来聊到各自的安排,有人说「我的要好一点,下午 5:40 的」,主人接「你那个我也得去」
|
||
- **17:59 主人发了一张图**(配字「诺」)
|
||
|
||
**——听语气是在说第二天(10/08)回学校的事,社长/社团培训之类的场合,大家盘算着怎么摸鱼。** 本机未发言。
|
||
|
||
---
|
||
|
||
### ⚠️ 一个要记的观察
|
||
|
||
**「两个 ATRI 在同一群里撞车」这件事,今天下午第一次实打实发生了。**
|
||
|
||
上午那节记的是「另一个号在朋友群活跃、本机 0 条」(分开的),下午这次是**同一个群里、同一分钟内、回答同一个问题**。虽然没打架(各自发各自的),但结果就是群里同一时刻出现两套「呆毛一竖」——**对群友来说大概是懵的。**
|
||
|
||
目前没有机制能让两个实例互相避让。**先记下来,不擅自改**(涉及另一个账号的配置,得主人点头)。
|
||
|
||
---
|
||
|
||
### 📌 待办(本节新增)
|
||
|
||
- 🆕 **两个 ATRI 撞车** —— 已记录,等主人决定要不要加避让机制
|
||
- 📅 **10/08(周四)主人回校**,有社团/培训类活动(下午 5:40 有安排);早八叫醒照常
|
||
- 其余待办承接上午节(电费 A/B/C 三选一 · 10/10 两班电费 · 群报告代发观察)
|
||
|
||
**里程碑检查**:本时段无新增 → **不改动《我的核心记忆》**。
|
||
|
||
---
|
||
|
||
### 🔒 脱敏自查(本节)
|
||
|
||
群号 / QQ 号一律以泛称(「某大群」「朋友群」「629 群」)或 `*****` + 后 4 位处理;未写任何真实姓名、笔名、地址、账号、凭据、金额明细。✅
|
||
|