研究与思考
关于能力、合作与工作的研究,也记录那些改变了我们做法的细节。

从这里读起
按主题阅读
Flowness 工程进展:从需求到交付
七篇文章,以整体架构、自开发实录、长任务操作和企业方法,连接合并、事件与恢复的工程细节。
通爻算法解读:从候选检索到合作安排
八篇算法文章,把合作发现中的提问、检索、合并、去重、规划与容量分配逐步算清。
Flowness 运行机制:从任务派发到故障恢复
八篇源码机制解读,解释长期运行的 Agent 怎样查历史、安排任务、控制资源与处理失败。
从向量表示到检索结果的第一页
沿着表示、候选、排序与请求成本,理解向量检索中的几个不同问题。
一次合作怎样变得可能
从尚未说清的求助,到有用的回应、一次尝试和可以执行的共同安排。
跨过一次 Agent 会话的工作
从有用的交付物、可信的完成记录,到前提变化后仍能继续的任务。
让开放系统持续运行的劳动
Sidekiq 与 Matrix 背后的人、专业服务和经费关系。
全部文章
从需求到验收:Flowness 怎样把一项工作串起来
从需求简报到任务包、上下文胶囊与提交信封,Flowness 把一项工作的依据、权限和结果连成可追溯的交接链,也让复查能够按原因退回负责层。
把上下文接到任务上:一次 Flowness 自开发实录
2026 年 6 月的一次自开发任务发现:胶囊内核和语义检查已经实现,生产会话却仍使用占位引用。任务接通工作会话的启动与完成,以及规划、共识的会话起点,再用范围内接受、范围外拒绝的正反控制验收。
长任务怎样交接、暂停与验收
把需要多天推进的工作交给系统,先保存需求、边界和完成条件,再安排会话换手、暂停范围和收货检查。任务继续、会话存活与验收合格,是三种不同状态。
从第一个项目,长出企业自己的 Flowness 工作方法
企业的方法可以从一个真实项目开始生长:按需求接入必要流程,交付业务成果,同时留下设计判断与检查依据。共享技能与运行时工具逐步更新,项目事实和定制保留;下一项目检验这些方法是否仍然适用。
从问题登记册到合并关口:一次“全绿”漏洞的工程复盘
把修复经验变成可执行约束,还需要证明约束实际运行在将要合入的代码上。一次通过数足够却漏掉守卫的反例,推动了逐目标审计、合并后树验证和关口负对照。
完成事实的入口:类型化事件与共享写入边界
当完成声明藏在通用事件包装中,写入许可与消费含义可能错位。Flowness 的一次修正把禁止包装的规则放进两条写路共用的校验边界,并以逻辑读视图保留合法历史事件,再用 AST 守卫约束生产者与消费者的演化。
游标最后推进:从两次故障推导信号重放
一批信号可以重读,却不能重复加到累计值里。沿着丢信号与重复计数两个故障窗口,推导游标、计数和字节水位的写入顺序。
增量事件索引:Flowness 如何查任务,而不反复解析整本日志
把新事件补进索引,只在查询命中时展开记录,让不断增长的工作历史仍然可以按任务读取。
DAG 任务调度:Flowness 如何找出能开工的任务,优先推进最长依赖链
先检查前置工作是否完成,再在可运行任务中安排优先级,避免并发数量增加了,项目仍卡在同一条链上。
预测配额调度:Flowness 如何在用量耗尽前收紧新任务准入
结合剩余额度、消耗速度与重置时间,计算还能承受多少并发,并为正在运行的工作留出缓冲。
世代号写入隔离:Flowness 如何拒绝旧执行者迟到的结果
租约到期允许新的执行者接手,存储端再核对世代号,阻止旧身份继续写入受保护的账本。
上下文工作集:按阅读预算组织材料,明确原文与投影
Flowness 按执行、修复、审阅和规划的角色组织材料,分别记录原文交付与审计投影,避免把一份短材料误认成完整依据。
机器告警去重:把重复提醒归入同一件未解决的问题
同一机器再次报告同一问题时,Flowness 查找仍开放的告警,记录复发;问题不同、原告警已经结束,就重新提出。
有界重派:Flowness 如何让失败任务停止重复消耗
为自动恢复设置独立次数预算,耗尽后持久记录停止状态,把任务交给需要改变条件的处理过程。
访谈停止判定:Flowness 如何判断需求信息是否足以进入设计
先检查关键问题是否闭合,再看信息质量,输出足够、有条件足够或仍需补充的建议。
基于信息价值的提问选择:Agent 如何决定继续问什么
发现引擎中的问答调度:用决策收益与提问成本,选择下一问或停止追问。
BM25 检索:如何从需求文本中筛选合作候选
合作发现中的文本检索基线:词语稀有度、重复饱和与长度调整如何共同决定排名。
NAC 公共锚坐标:如何比较不同模型生成的向量
异构编码器之间的候选匹配:将原始坐标转换为相对共同参照的相似度。
RRF 排名融合:如何合并多路合作候选检索结果
从各路名次计算共同排序,并区分候选覆盖与前十名排序质量。
Jaccard 结构距离:如何识别合作方案中的重复
方案生成后的多样性检查:比较角色、交付关系和阶段,而非标题与措辞。
同类型流路径压缩:如何简化合作图中的中转关系
发现引擎的 shrink_ring 操作:按两段流量的较小值生成直接边。
有界广度优先搜索:如何寻找合作任务的完成路径
从状态与动作模型中找出可执行步骤,并区分预算内不可达与信息不足。
资源容量校验:如何发现多项合作承诺的重复占用
按资源来源汇总分配量,检查单项承诺有无支撑,以及总量是否超配。
我们暂时保留了 BM25
一次多路检索组合把 Recall@100 从 0.5384 提高到 0.5750,却降低了前十名的排序质量。这个结果改变了我们组合发现方法的方式。
用共同参照连接不同的向量空间
从一个旋转的坐标系出发,理解相对表示,以及 NAC 如何把它组织成可交换的发现信号。
给合作创造条件
PFE 的一个设计起点:把试教、工具建设和寻找伙伴纳入规划,让行动能够改变下一轮规划的条件。
一次查询访问 11 个 Agent,却为 512 个付了账
一次藏在预处理里的全量扫描,以及把它移出请求路径后的变化。
把成功提交放到身份校验之后
一个子项认错了任务,整批结果却已被记为成功。这次故障修的是提交顺序。
同样三件工具,三个不同的产品
转接器、差异探针和图集需要不同的中间结果。一次空气质量组合设计,让这个区别变得具体。
让工作拥有会话之外的地址
Flowness 的 Work 设计,把接手所需的目标、依据与剩余动作,组织成可以重新查询的当前状态。
员工表之外的 Sidekiq
Mike Perham 的早期创业记录里,支撑一家小公司的劳动,远比公司内部的人数丰富。
小许不想再管预算
一个思想实验:履历帮助我们进入合作,也可能把我们留在最熟悉的角色里。
从一句“我卡住了”开始
帮助一个人找到下一步,有时先要给他一次修改问题的机会。
公共参照的盲区
公共参照让不同系统可以比较,也决定了哪些差别容易被表达。一个二维例子,说明参照选择为什么值得认真对待。
群里都说“可以”以后
把零散的赞成变成可以执行的安排,靠的是具体范围,以及变化发生时找得回的依据。
为开放付维护费
Matrix 的互联方式和资金来源,说明开放网络需要分别安排公共维护与具体服务的收入。

