Obsidian

AstrBot 文件消息捕获与 LLM 工具桥接设计 (AstrBot File Message Capture and LLM Tool Bridge Design)

结论“聊天文件登记 → 生成 file_id → 模型调用工具 → 本地读取并转 Base64 → 云端生成讲义”这一分层设计是可行的。模型不应直接接触本地路径或 Base64,file_id 只作为受控引用。关键陷阱AstrBot 的 @filter.event_message_type(...) 处理器并不是在唤醒检查之前执行。管道顺序是:waking_check 读取消息链并筛选 Adapt

Obsidian

OpenAI 兼容反代的协议兼容与语义保真 (Protocol Compatibility and Semantic Fidelity)

核心结论OpenAI 兼容(OpenAI Compatibility)有两个层次,不能混为一谈:传输层兼容:客户端可以向 /v1/chat/completions 发送 messages: [...],代理在一次 HTTP 请求中把消息数组转发给上游。语义层保真:每条消息的 role、content 结构、多模态内容、tool_calls、tool 结果等是否原样保留并由上游按原协议解释。cnb2

Obsidian

SharkCloud 订阅全死事件复盘 (SharkCloud Subscription Outage Postmortem)

记录一次以为"订阅死了"、实际是两段式故障(先 DNS 后机场)的完整排查过程,含可复用的净化内核隔离法。一句话结论节点端口全通、DNS 正常、订阅能拉到,但所有节点在 TLS 握手时被远端掐断(forcibly closed by remote host)——最终判定为机场入口/中间设备干扰,非本机问题,且当天先后叠加了 EasyConnect 掐 DNS 的内循环故障。事件时间线 (2026-