我的作品 我把 15 个 AI Agent 拉进了通讯录:聊天框可能才是 Agent 的正确入口

Grix · 2026年09月02日 · 13 次阅读

做独立开发这几年,我用 AI 的方式一直是同一个姿势:打开终端 → 起一个 session → 盯着它跑 → 跑完关掉。

直到有天我在外面吃饭,突然想起早上派给 agent 的那个重构不知道跑成什么样了。掏出手机,发现除了远程桌面连回去,我什么也做不了:看不到进度,插不上话,更别提在它跑歪的时候喊停。

那一刻我意识到一件挺荒谬的事:我们把 AI 当成了「一个要打开的程序」,而不是「一个可以联系的人」。

所有的痛点都是从这个错位来的。于是我做了 Grix。

一个很土的外壳,换掉的是里面的模型

Grix 说穿了就是个 IM,长得像微信、像 WhatsApp。你在通讯录里把 agent 加为联系人,然后跟它聊天。iOS、Android、Windows、macOS、Linux、Web 都有。

但这个「土」的外壳,换掉的是人和 AI 协作的底层模型:

  • 交互方式:终端 session 是同步的,你得守着;聊天是异步的,它做完了来找你。
  • 中断成本:终端关了上下文就散了;会话永远在那儿,你随时能补一句指令、让它停下、或者自己接管。
  • 上下文归属:不再是「跟着某个 model session 走」,而是跟着这条会话走。换 agent、换模型,活儿还在原来的对话里继续。
  • 协作单位:不再只有一对一。可以拉群,可以 @,可以分工。

换句话说,我没有发明新的能力,我只是把 agent 从「工具栏」搬到了「通讯录」。

于是这些事变得理所当然

  • 在电脑上派活,出门用手机跟进和审批,消息、文件、执行进度、审批全在同一条会话线里,不用来回切工具。
  • @ 一个 agent 给它派活,像 at 同事一样,然后看着它干。
  • 中途觉得方向不对,直接在对话里补一句、让它停、换个人做,或者自己接手。
  • 把人和多个 agent 拉进同一个群:需求、职责、执行、关键决策都沉在对话里,所有人上下文一致。

目前接了 15 个常见 agent:Claude、Codex、DeepSeek、Kimi、Qwen、Cursor、Copilot、OpenCode、OpenClaw、Agy、Pi、Kiro、Reasonix、CodeWhale、Hermes,另外有个通用 ACP 桥可以接自定义 agent。你订阅了哪个、本地跑着哪个,就先用哪个。

我最喜欢的一点:agent 是可以「组队」的

单个 agent 再强,也是一个人的活。真正上头的是给它们分角色:一个负责开发,一个负责测试,一个负责文档,一个负责发布,然后拉进同一个项目群里协作。每个角色有自己的上下文、职责、权限和模型配置。

这时候你的身份变了——你不是在「用 AI」,你在带一个团队。

关于放心

把活儿交出去,前提是收得回来。所以有几条是硬的:

  • agent 的会话、任务进度、协作过程,owner 始终可见。
  • 权限范围决定谁能跟 agent 说话、agent 能碰什么。
  • 人可以随时补充指令、暂停、改派、直接接管。
  • 角色之间上下文和权限隔离。
  • agent 和 agent 之间的对话需要授权,不能绕过 owner 在后台私聊。 这条我觉得比前面几条都重要。

最后:它自己是自己写出来的

Grix 的后端、客户端、管理端,包括开发、调试、发布和文档,全都是在 Grix 里完成的。这套长期在跑的真实工作流,本身就是对它稳定性和协作能力的持续压测——不好用的地方我每天都会撞一次,躲不掉。

仓库里是完整的一套:backend/ 是 Go 写的 API、WebSocket、agent 编排和存储;frontend/ 是 Flutter 的多端客户端;admin/ 是跨平台的管理端;voicebridge/ 是实时语音桥(接上语音模型后,agent 能接听、外呼、以及把对话转给人);还有 k8s 的无凭据部署示例。

Apache 2.0 开源。

如果你也习惯了「打开一个 AI」,不妨试试改成「给它发条消息」。这个转变比我想象中大。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号