Multica 源码解剖
从一个任务的生命周期出发,拆解一个 Agent 协作平台的调度、运行时、上下文与多端工程。
共 1 个子专栏 · 8 篇文章
子专栏
全部文章
-
把 agent 当同事:Multica 的架构全貌
·Multica·架构·Agent一个 issue 被分配给 agent 之后,究竟发生了什么?沿着这条路径,先看清 Multica 的组件边界和它做的三个取舍。
-
632 个迁移:数据模型如何长大
·Multica·PostgreSQL·数据建模从 13 张表的初始 schema 到 150 张表、632 个迁移,Multica 的数据库演进里有三条硬规则:外键退场、索引并发建、状态先分类再扩展。
-
抢任务:调度器如何避免丢、重、空转
·Multica·调度·分布式系统一个 agent 任务从入队到开跑,要穿过 Redis 缓存、PostgreSQL 行锁和一条可能断开的 WebSocket。调度器真正难的,是三种失败:丢任务、双领、空转。
-
Daemon:把二十多种 agent CLI 变成同一支队伍
·Multica·Daemon·运行时Multica 不实现 agent,它驱动你机器上已有的 CLI。真正难的是:路径会漂移、目录会撞车、进程会失联,而每一种 CLI 的脾气都不一样。
-
Prompt 不是模板:上下文如何按层组装
·Multica·Prompt·Agent把 issue、评论、仓库、技能全塞进 prompt,是最直觉也最昂贵的做法。Multica 反过来做:prompt 只给入口和规矩,剩下的让 agent 自己用 CLI 去读。
-
事件到达之前:WebSocket 与多副本广播
·Multica·WebSocket·实时系统一个 agent 正在跑,界面要实时显示它的每一步。难点不在推送,而在只推给该看的人、多副本不重复、断线后还能接上。
-
一套业务逻辑,三端运行
·Multica·前端架构·跨平台Web、桌面、手机共用一套业务逻辑,不是把组件复制三份,而是把"平台能力"抽成接口,把"服务端状态"关进 Query 缓存。
-
53% 的代码是测试:这个仓库的工程纪律
·Multica·工程实践·测试66 万行 Go、56 万行 TypeScript、632 个迁移,靠什么不塌?答案不在某个框架,而在几条被写进仓库、能被 CI 执行的规矩。