@home$
Systems, code, and things worth understanding.
很惭愧,就做了一点微小的工作。
Contributed to some open source projects, including:
go-mysql-driver/mysql gogf/gf fastclaw-ai/weclaw tw93/Kaku
Worked on some company projects, including:
incident.woa.com mdb.woa.com dbmanager.woa.com/api dba.baidu.com/mis
Agent Development Kit (ADK) · 07 - Flow
neat-annotations 上手指南
ADK-Go 源码阅读系列
Attention 背后的数学:Q、K、V 白话详解
基于 Outcome School 文章《Math behind Attention - Q, K, and V》的中文整理与扩展讲解。
原文链接:https://outcomeschool.com/blog/math-behind-attention-qkv
原文作者:Amit Shekhar
原文页面标注日期:2026 年 4 月 3 日
一句话理解 Attention
Attention 可以理解成:
每个词都先问一句:“当前情况下,我应该重点参考哪些词?”然后根据相关程度,从其他词那里提取信息,形成一个包含上下文的新表示。
例如句子:
I love AI
处理 I 时,模型可能会发现 love 和它关系比较大,于是给 love 更高权重;处理 AI 时,也可能重点参考 love。
完整公式是:
Attention(Q, K, V)
= softmax(Q × Kᵀ / √dₖ) × V
这条公式可以拆成 6 步:
文字
↓ embedding
数字向量 X
↓
生成 Q、K、V
↓
Q 和 K 做匹配
↓
Softmax 转成权重
↓
用权重加权混合 V
↓
得到包含上下文的新向量
从 Jekyll 到 Hugo:重构我的终端风格博客
Redis 持久化 - AOF & RDB
Redis 基于内存运行,因此如果 Redis 服务器崩溃,数据将会丢失。为了防止数据丢失,Redis 提供了两种持久化机制:RDB 和 AOF。
先给结论
- RDB 是定期快照:文件小、加载快、适合备份和快速恢复,但两次快照之间的写入可能全部丢失。
- AOF 是写命令日志:通常能把故障时的丢失窗口压到约 1 秒,但文件会增长,需要 rewrite;磁盘写入、
fsync和恢复回放都要付出成本。 - 线上有状态数据通常同时开 RDB 和 AOF:AOF 用于较小的 RPO,RDB 用于备份、迁移和快速装载。两者同时打开时,Redis 启动优先加载 AOF。
- Redis 7 是文件布局分水岭:AOF 从单文件变为 Multi-Part AOF(MP-AOF),由 base 文件、incremental 文件和 manifest 共同组成。备份时不能只拷贝一个
appendonly.aof。 - 持久化不是高可用:副本、Sentinel、Cluster 能缩短故障切换时间,但不能替代跨故障域的持久化备份。
可以把目标拆成两个指标:
- RPO(Recovery Point Objective):最多能接受丢多少数据。
- RTO(Recovery Time Objective):希望多快恢复服务。
RDB 通常更偏向较短的 RTO,AOF 通常更偏向较小的 RPO。最终结果还受文件系统、磁盘控制器、云盘写入保障和备份流程影响,不能只看 Redis 配置名义上的策略。
1. Redis 为什么需要持久化
Redis 的工作集在内存中。进程重启、主机掉电或容器被销毁时,内存状态本身不会保留。持久化把内存状态转换为可在启动时重新装载的文件:
客户端命令
|
v
内存中的数据集 ---------------> RDB 快照(某一时刻的完整状态)
|
+--------------------------> AOF(按顺序记录的写命令)
这里有三个容易混淆的边界:
…Herdr 面向 AI Agent 的终端工作区管理器
Herdr 是一个终端多路复用器(terminal workspace manager),定位和 tmux 类似,但它是为「同时跑多个 AI coding agent」这个场景设计的。
核心差别在于:tmux 只知道某个 pane 里有个进程在跑;Herdr 能识别出 pane 里跑的是 claude / codex / pi / cursor 这类 agent,并把它的生命周期状态(idle / working / blocked / done / unknown)暴露出来。这样 agent 之间就能互相编排——一个 agent 可以开一个新 pane,在里面拉起另一个 agent,发 prompt,等它跑完,再读结果。
安装
macOS 上用 Homebrew:
brew install herdr
herdr status
herdr status 会分别打印客户端和服务端信息:
client:
version: 0.8.0
channel: stable
protocol: 19
server:
status: running
version: 0.8.0
compatible: yes
socket: /Users/elon/.config/herdr/herdr.sock
protocol 要求客户端和服务端一致,升级后如果 restart_needed: yes 就得重连会话。
ChatGPT 如何优化智能体循环:Harness、API 与推理
Read more ⟶