终端复用器是给坐在键盘前的人写的,分屏、切窗口、断线重连,前提都是有个人在看着。现在 pane 里跑的常常是 agent,人不在跟前,要的东西就变了。 起因 一开始是想找个现成的用,找了一圈没有合预期的。能用的那些都还是按「有人看着」写的,pane 里跑的是什么它不关心,更不会让两个 pane 说上话。于是自己写,第一个提交的标题是「wmux: tmux-style terminal multiplexer for Windows」,那会儿还叫 wmux。 消息 给 pane 起个名字,它就能收消息: powershell keepane rename-pane -t %3 builder keepane set-work-mode…
阅读全文向量检索有个不太好看的账:索引往往比原始数据还大。六千万条文本切块,用传统办法建索引要 201 GB,而那堆文本本身没那么大。想在自己笔记本上索引邮件、浏览记录、聊天记录,这道门槛就卡在硬盘上。 LEANN 的选择是索引里干脆不存向量,只存一张剪过的图,搜索时走到哪一跳就现算哪一跳的向量。同样那六千万条,索引降到 6 GB。 arXiv:2506.08276,伯克利那批人写的,作者名单里有 Ion Stoica、Matei Zaharia、Joseph Gonzalez。 存储开销 摘要里的原话是索引「需要存储高维嵌入和大量索引元数据,其总大小可能是原始数据(例如文本块)的数倍」。占地方的是那一堆浮点数,文本本身反倒是小头。 一条…
阅读全文现在优化 skill 的工具都是一次挑一个:你选中某个 skill,给它写一批测试 prompt,跑评委打分,改完再跑一遍。有几十上百个 skill 的时候这条路走不通,瓶颈根本不是优化算法,是你没空逐个去挑、逐个编测试用例。 lamarck 换的是这个前提:装一次,之后所有已装的 skill 全部进入观察,不用挑、不用写用例、不用配置。它在后台看真实调用,攒够同一类证据才对某一个提出一处改动,改完立刻验,变差就退回去。 观察范围 一次挑一个的做法,隐含假设是你知道哪个 skill 有问题。实际上你不知道,你只知道最近某个任务干得不顺,至于是哪条指令没写清楚、还是压根触发错了 skill,事后很难复盘。而那些一直安静工作的 skil…
阅读全文长程 agent 跑着跑着就废了,这件事大家都见过,但很少有人把它拆成具体的失败模式再拿数据说话。 FrontierAgent 是 Apodex 前两天开源的 agent 运行时,翻代码时发现它把两个失败模式量化过:一个是上下文压缩触发得太晚,子 agent 被端点打死;另一个是压缩把旧结果换成占位符之后,模型开始一遍遍重发同一个搜索。 项目概况 仓库里是一套 agent 运行时加终端产品加评测套件,两种自带工作流:ReAct 是单个有状态的 agent 自己查、读、写、跑命令;Agent Team 是一个协调者维护任务板,把独立的活拆给并行子 agent,收报告再合成。同一套引擎也驱动它们评测自家模型的 benchmark run…
阅读全文星标过的仓库再没打开过第二次,截图记得长什么样却翻不出来,书签埋在几层文件夹里,一小时前复制的那段东西不知去向,想开的应用埋在三层菜单下面。这些东西的共同点是存的时候顺手,找的时候只能靠运气。 Alt+Space 唤出面板,把还记得的那点描述打进去,或者丢一张图进去,回车。 源 Tab 在四个标签之间切:本地、星标、Web、剪贴板,顺序和默认打开哪个都能在设置里改。应用不单独占标签,在本地标签里作为置顶命中出现。每个源有各自的索引方式和排序选项。 本地文件 手动加进来的目录,里面每个文件都能按名字找到,认识的格式连内容一起进全文索引。 78 种纯文本与代码扩展名,整篇读入,默认单文件上限 4 MB,设置里可调到 16、64 或不限…
阅读全文前一篇翻完一个把 agent 摆进办公室的项目,顺手又去看了火山引擎开源的这个,两个都在解决 agent 记不住事,路子完全不一样。 OpenViking 的做法是别让 agent 去查一个黑盒向量库,让它像开发者一样用 ls、tree、find 翻自己的上下文。记忆、资源、技能统一挂在 viking:// 这个虚拟文件系统下,每个目录带一份摘要和一份概览,检索先定位到目录再往下钻。 项目概况 不是薄封装,是三种语言各管一层。到今天的 HEAD(afa5aae9),从 1 月 29 日起 2,033 次提交。Python 那层是服务和业务逻辑,openviking/ 下 619 个文件、148,477 行;Rust 那层是文件系统…
阅读全文刷到这个仓库的时候是被名字骗进去的,munder-difflin,《办公室》里那家最差的纸业公司,主管 Michael 也搬了过来当了这层楼的老板。演示视频里一堆像素小人在办公室里走来走去,互相发消息的时候还有信封在桌子之间飞,看着像个玩具。 docs/message-queue.md 的文档,一千多字只讲一件很窄的事:一个真实的 CLI 只有一根输入行,而想用它的不止你一个。这篇就记一下里面几处认真想过的地方。 项目概况 munder-difflin 是个 Electron 桌面应用,把你已经在终端里跑的 agent CLI 包起来当 agent 用,README 里列了十种:claude、agy、codex、grok、kimi、…
阅读全文同时用好几个编码 agent 的人都遇到过:Claude Code 干到一半退了,换 Codex 打开同一个目录,上一个知道的事一件都不剩。 ai-memory 是个 Rust 单二进制,用 MCP 加生命周期钩子给这些 CLI 接一层共享的长期记忆,不用手动 write_note,也不用把总结在会话之间复制粘贴。 要解决的问题 它把记忆沉淀成一棵 git 版本化的 markdown 树,作者管这叫 Karpathy 式的 LLM wiki:页面随时间被增量编译、就地版本化,语义知识累积,情节日志衰减。旁边一个 SQLite 索引负责检索。 关键是这两者的主从关系——下面那张图里,从左到右只有一条主链,而真相始终在最左边落盘的那一份…
阅读全文时序预测这行以前的规矩是一个数据集训一个模型,调参调到吐。 定位 decoder-only 的 patch 化时序模型,论文进的 ICML 2024,开源仓库 Apache-2.0。它自己的话是零样本精度接近逐数据集单独监督训练的水平——注意是接近,不是超过,这个定位一开始就没吹。 现在这东西不只是个 repo:BigQuery ML 里能用 SQL 调,Connected Sheets 里能在表格里拉预测,Vertex Model Garden 有 dockerize 好的端点。倒是仓库自己写着,开源这版不是 Google 官方支持的产品。 两套版本号 第一个坑在这儿:库的版本号和模型的版本号是两套,而且库的还更小。 pyproj…
阅读全文自我改进的 agent 现在不新鲜了,让模型自己改自己的 prompt 和工具,谁都能搭一套。 DarwinX 给的答案挺利落——模型全程冻死,把「不许倒退」写进准入条件,然后养一群外壳互相配种。 外壳 论文里的 agent 分两层:模型权重,和包在外面那层跑起来的东西。后者是它说的 harness。 变的不是权重,是它读的提示、能调的工具、留的笔记,以及给动作排序的控制流。 可编辑的面被切成两块:skill(提示、记忆、蒸馏出来的知识)和 code(工具、控制流、agent 循环本身)。 单线搜索的毛病 现在多数自我改进循环是单谱系的:一个 agent,一条时间线,改一次跑一次,好就留下。 这有两个后果。一是路径依赖——前面某一步…
阅读全文图片超分这类工具,模型早就够用了,卡住普通人的是环境:Python、PyTorch、CUDA 版本、一长串命令行参数。 Final2x 做的事情是把这堆东西塞进一个六百多像素宽的小窗口——拖图进去、选模型、点开始。 让我想写一篇的不是它的界面,是它划进程边界的方式:界面这边一行推理代码都没有,真正干活的是另一个进程、另一门语言,两边靠三样东西通信。 定位 跨平台的图片超分辨率工具,Windows、macOS、Linux 都有发行物,BSD 3-Clause。当前是 v4.0.0,推理后端换成了 cccv,开始支持挂自定义权重。 它不训练模型也不实现算法,做的是把一堆现成的超分模型包装成能双击的东西。内置的权重列表覆盖 Real-ES…
阅读全文上一篇写 DeepSeek Harness 的时候,底下那层 Cordis 我只用五句话带过,因为当时手上没有它的代码。 现在代码拿到了,从头读了一遍,发现那五句里至少有一句是错的,而真正值得说的地方一句都没提到。 这篇补上:一次插件激活到底走了哪些步骤、每个模块是怎么实现的,以及我认为它在方法论上真正解决了什么。 定位 Cordis 不是为 agent 写的。它 2022 年 5 月的第一个提交,是从聊天机器人框架 Koishi 里抽出来的通用底座,作者 Shigma 一个人写了绝大部分。四年多、五百多次提交,dsh 把它 vendor 进仓库当地基。 有意思的是它现在的处境:Cordis 自己的 README 把文档链接指向了…
阅读全文DeepSeek Harness(命令行叫 dsh)是 DeepSeek AI 开源的 agent harness,MIT,还在 developer preview 阶段,明说会有破坏性变更。它不是又一个「把 prompt 和工具拼起来跑一圈」的循环,而是把整个 agent 运行时——模型适配器、工具注册表、会话日志、连 agent loop 本身——全部做成插件,挂在一个叫 Cordis 的框架上。没有一个要打补丁的内核,任何一层都能从配置替换掉。 这篇不介绍怎么用它写 agent,而是拆它的架构:Cordis 的插件范式、启动时怎么把一棵插件树组合出来、会话日志为什么是唯一事实源、一个回合怎么执行、工具管线和能力接缝是怎么设计的…
阅读全文给编码助手装「子人格」这件事,各家工具都支持,但角色从哪来是个体力活:自己写,或者满网抄。 Agency Agents 干脆把它做成了一个仓库——起于一条 Reddit 帖子, 定位 MIT 协议的角色集合,每个角色一个 markdown 文件:frontmatter 记名字、简介、配色、性格标签, 角色文件 拿 Code Reviewer 感受一下成色。frontmatter 之外,正文把评审风格钉死成规则: 分发管线 角色写成 markdown 只算完成一半,各家工具各认各的格式,这是仓库最工程化的部分。 角色的分发管线:一份 markdown 源,按契约渲染成各工具认得的形状 (交互版,可缩放、可播放数据流轨迹。) tools…
阅读全文评测 agent 的基准大多长在程序员的地界上:修 bug、刷题、逛网页。 Harvey LAB(Legal Agent Benchmark), 定位 MIT 协议的开源基准,两部分:一个任务数据集,一个执行与评测 harness。 tasks/,结果在 results/,报告是静态 HTML。 一次基准跑的全流程:任务进沙箱执行,交付物逐条过评审,得分进对比仪表盘 (交互版,可缩放、可播放数据流轨迹。) 任务模型 一个任务就是一个目录:task.json 加一个 documents/ 资料室。 task.json 里有给 agent 的指令(instructions)、工作类型(分析 / 起草 / 审阅 / 检索四种)、 coc-…
阅读全文用聊天窗口学东西有个通病:金鱼记忆。今天讲明白的概念,下周开个新会话又得从头解释一遍; DeepTutor 是港大 HKUDS 实验室开源的学习工作台,想把这些串成一个整体—— 定位 简单来说就是一个装在你自己机器上的 AI 家教,Apache 2.0 开源,pip install deeptutor 就能起。 DeepTutor 整体结构:浏览器和命令行两个入口,一个引擎,数据全在本地 data/ 目录 (交互版,可缩放、可播放调用轨迹。) 统一引擎 DeepTutor 有六种玩法:聊天、出题(Quiz)、深度研究(Research)、可视化(Visualize)、解题(Solve)、学习路径(Mastery Path)。 这个循…
阅读全文上一篇拆了管省钱的 prompt-cache,这篇接着拆管认账的。 Semantica 用知识图谱来补这块,把源码翻了一遍,记下来。 定位 一个 Python 框架,pip install semantica 就有,自我介绍是「Open Source Palantir for AI Agents」——营销词放一边,实际是三层东西: Semantica 数据管线:五段推进,治理在入图之前 (交互版,可播放数据流轨迹。) 数据管线 管线五段,每段都是独立可导入的模块,不强迫全家桶: ingest 是三十多个摄取器套一个统一接口:本地文件(PDF/DOCX/Excel 等十来种)、SQL 库、Kafka/Kinesis 流、Git 仓库、…
阅读全文线上的 LLM 调用看多了,会发现请求高度重复:客服机器人翻来覆去就那几问,RAG 内部问答也扎堆。 prompt-cache 这个 Go 项目的源码通读了一遍,架构、每个模块的做法、以及它没说透的风险,都记在这里。 定位 PromptCache 是一个自托管的语义缓存网关:单个 Go 二进制,横在应用和 LLM 提供商之间, /v1/chat/completions,SDK 把 base_url 一改就算接入,业务代码零改动。 PromptCache 组件架构:单进程、嵌入式存储,右侧上游只在未命中时才被触达 图是静态的,交互版在这里(可缩放、可播放调用轨迹、明暗主题)。 双阈值判定 核心机制说起来很简单:一次相似度检索,卡两道阈…
阅读全文终端 coding agent 见得多了,Prime Agent 还是让我停下来看了半天:模型手里只有一个工具,跑过的经验能沉淀回自身,关了终端会话也接着跑。 只有一个工具 一般的 coding agent 给模型发一把工具:读文件、写文件、跑命令、搜索,各是各的调用。Prime Agent 只内建一个 ipython——一个持久的 IPython 内核:读写文件、跑 shell(%%bash 单元)、变换数据、调 skill、开子 agent,全部写成代码。 这套设计他们叫 RLM(Recursive Language Model):上下文是变量(prompt-as-a-variable),子 agent 是函数调用,模型在一个常…
阅读全文传统服务的行为由 config 决定,AI agent 的行为由 skill 和 prompt 决定。这两样东西本质上是同一类:都是写在代码之外、运行时才去取的行为定义。既然是同一类,就该收进同一个服务统一管理。 .env 一键导入。 起因 我先有的是 prompt-shelf——管 prompt 的小服务。后来开始大量写 Agent Skills,发现两件事撞在一起了。 一是 skill 需要版本管理。skill 不是一段文本,是一个目录包:SKILL.md 加 scripts/、references/、assets/。改一版发现不如上一版,想回退;想开个分支试试新写法;想看两版之间到底差了什么。这些需求和 Git 一模一样。 二…
阅读全文