文章
共 67 篇,按更新时间倒序。更早的按月份翻,去 归档。
-
工程约束:测试、迁移 lint 与 CI 裁剪
88 万行 Go、56 万行 TypeScript、632 个迁移。测试、迁移 lint、边界合同与 CI 裁剪如何执行,以及维护成本。
-
三端共享:业务层与平台适配器
Web、桌面与移动端共享 core、views、ui 三层,平台能力由适配器接口注入。文章说明依赖方向、状态分工与契约漂移的处理。
-
WebSocket 推送:作用域、鉴权与多副本广播
实时推送需要处理连接鉴权、作用域路由与多副本广播。文章说明七个作用域、权限校验位置、Redis Stream 中继与去重表。
-
上下文分层:prompt 组装与缓存复用
prompt 只提供入口与规则,平台状态由 agent 通过 CLI 读取。文章说明分层结构、缓存顺序、失忆恢复与外部内容注入的边界。
-
Daemon:CLI 探测、任务隔离与结果回收
daemon 探测本机 agent CLI,为每个任务建立隔离目录,拉起进程并回传结果。文章说明路径漂移、目录撞车与进程失联的处理方式。
-
任务领取协议:并发、租约与回收
任务领取由一条条件 UPDATE、Redis 空队列缓存与分阶段租约完成。文章分别处理空转、双领与丢任务三类失败。
-
数据模型与迁移:632 个 up 迁移的演进
Multica 的数据库从 13 张表增长到 150 张,累积 632 个 up 迁移。文章说明外键移除、并发建索引、状态枚举扩展与迁移文件约定。
-
Multica 架构:issue 接口、daemon 执行与状态归属
Multica 以 issue 为人和 agent 的共同接口,daemon 在用户机器上执行任务,服务端持有状态与权限。文章覆盖组件边界、任务生命周期与设计取舍。
-
后训练:从会说话到会做事
预训练模型会续写,后训练模型才会办事。SFT 教格式,RLHF 教偏好,GRPO/RLVR 教推理。
-
同一道题,换个壳为什么更准
GPT-6 的 ARC-AGI-3 98.6% 是 Responses API 跑出来的,不是裸模型。上下文压缩、effort 档位、安全沙箱,正在把“买模型”变成“买模型加运行时”。
-
Jev 拆解:把决策从生成里拆出来
Jev 用一次前向替换了逐 token 生成:官方说快 193 倍、便宜 444 倍,第三方实测是 5 到 6 倍,自家流水线只快 15.9%。这篇拆它的输出契约、校准实测与适用边界。
-
上下文越长,Agent 越准吗
同一任务,4K、32K、1M 的 Agent 表现并不单调。NoLiMa、RULER、CompactionBench 的数据指向同一个结论:质量是倒 U,成本是线性甚至二次。
-
能力边界:隔离、性能与限制
前六篇讲的都是「怎么做到」。最后一篇讲代价:PRoot 给你一个看起来很完整的 guest 系统,但它既不是沙箱,也不是免费午餐。
-
浏览器操作:感知、定位与动作空间
网页对 Agent 是一张截图加一个动作空间。选择器与坐标、动作后的确认、URL 变化与不可信输入,决定它是在操作还是在猜。
-
扩展机制:kompat 与插件接口
PRoot 的三个招牌功能——-0(假装 root)、-l(硬链接转符号链接)、-k(假装旧内核)——都不是核心代码,而是插件。核心只提供一串事件回调,插件决定在这些点上改什么。
-
子 Agent 的运行:委派、并发与回收
委派默认异步,子 Agent 有自己的会话、轮次与回收规则。状态不可见、取消不级联,界面上就剩一堆「运行中」。
-
execve 与 ELF loader:PRoot 的程序加载
前四篇里,PRoot 做的都是「改参数、改返回值」。但 execve 是个硬边界:内核要打开 ELF、读 PT_INTERP、映射动态链接器——这些全在内核里完成,PRoot 插不进手。更要命的是,ELF 文件里写的 PT_INTERP 是 guest 路径(/lib/ld-linux-x86-64.so.2),宿主上根本不存在,内核会直接 ENOENT。
-
多模态:图片进入上下文的方式
图片不是附件,是正文:它占上下文、留在历史里,还要和缓存一起算账。多模态没有绕过预算,只让预算更难算。
-
系统调用改写:参数与返回值的替换
路径翻译只解决了「算」,还没解决「改」。要改一个正在运行的程序的内存,手段只有两个:process_vm_writev(或 PTRACE_POKEDATA)和改寄存器。PRoot 两样都用,而且必须在系统调用的两个 stop 点之间完成。
-
模型路由:组、优先级与降级
模型组是候选列表加一条规则。何时降级、降级后绑定怎么办、成员能力要不要对等——边界画错,备胎就是新故障。
-
路径翻译:canonicalize、binding 与 glue
内核只认宿主路径。所以 PRoot 接到 openat(AT_FDCWD, 「/etc/passwd」, ...) 时,必须先把它变成 /home/u/rootfs/etc/passwd,再把指针换掉——而 guest 里那个 /etc/passwd 可能根本不存在,也可能是三层符号链接套出来的。
-
流式输出:首字延迟与中断处理
流式解决的不是速度,是等待感。三个状态、增量渲染、中断与超时,任何一处出错都会卡在「正在思考」。
-
事件循环:waitpid 与进程树管理
PRoot 没有线程池,没有 epoll,没有协程。整个 tracer 就是一个 while (1) 加一次 waitpid(-1, ..., __WALL)——所有被追踪的进程、所有系统调用、所有信号,全都从这一个点流进来。
-
缓存利用率:前缀复用与失效代价
Agent 的请求九成是重复的。前缀复用能压低账单,但缓存与压缩天生冲突,省下的钱常以另一种方式还回去。
-
PRoot 的实现原理:ptrace 与系统调用改写
PRoot 的官方定义只有一句话:chroot、bind mount 和 binfmt_misc 的用户态实现。它不需要 root,不需要内核模块,不需要 user namespace,甚至不需要容器运行时——只要一个 ptrace(2)。代价同样干脆:被它接管的进程,每走一步都要停下来问它一次。
-
会话保持:中断、恢复与状态一致
会话不是文件,是一串状态。中断、恢复、孤儿工具调用,顺序错一步,「继续」就变成另一段对话。
-
沙箱:工具的执行位置与隔离
工具需要一个真实的地方执行,而手机没有 root、没有命名空间。PRoot 伪造路径、身份与内核版本,也留下了裂缝。
-
记忆机制:从上下文到持久化
上下文会过期,记忆不会。两层记忆、写入时机、读取方式与预算,决定了它记住的是你要的,还是它以为的。
-
失效模式:能力边界与防御
幻觉工具、死循环、观察失真、上下文污染、权限膨胀、提示注入、静默成功——七种失效、四种坏法,和一张诊断表。
-
任务分片:上下文隔离的代价
子 Agent 解决的不是并行,是上下文装不下。用「看不见过程」换「装得下任务」,代价是它不知道你知道什么。
只列了最近 30 篇,剩下 37 篇在 按月归档 里。