折腾了好一段时间,升级了 pi2.nvim 插件,为什么我又造了个 subagents 的轮子

1 小时 42 分钟前
 yuez

先交代背景,免得误会:pi2.nvim 是 pi 这个 coding agent 的 Neovim 前端(在 alex35mil/pi.nvim 基础上改的),不是新造 agent 。最近把子会话功能做完了,v1.5.0 刚发,来聊聊为什么我觉得它跟现有的不一样。

先说痛点。想在 Neovim 里"并行用多个 agent",现有方案基本三选一,都很别扭:

所以我的思路很简单:需要的时候现造,用完不扔,想看能看,想管能管。四个特点:

1. 现用现造,零预配置。 要第二个、第三个 agent 了?一句话当场创建,每个孩子独立进程、独立 session 、独立的模型和思考档位。没有"先注册一堆模板才能用"的门槛。

2. 用完不扔,可复用。 子会话干完是休眠(dormant),不是删除。下次再要它干活,直接对同一个孩子发消息,宿主自动拉起进程,历史、上下文全在,接着上次的进度干。父子血缘写进 manifest,你 /new 、重启 Neovim 、resume 都打不散——不会"重启一下六亲不认"。

3. 随时围观,也能插嘴。 想看看某个孩子干得怎么样,不用切 tab:按一下开个只读浮窗,它正在想什么、在调什么工具,实时流式放给你看,底部还标着 context 用量、模型、思考档位。觉得跑偏了,直接切进去接管对话纠正两句,再回父会话,互不打断。

4. 大多数时候根本不用你管。 父 agent 被注入了调度纪律:先查有没有能复用的旧孩子、能复用就不新建、要并行就一批派出去、按 batch_id 统一收结果。所以日常是 agent 自己在当调度员,上面那些手动操作只是兜底,不是主流程。

环境要求:Neovim 0.10+、pi ≥ 0.65.2 。效果图:

仓库:github.com/zgs225/pi2.nvim,详细设计在 doc/sessions.md。欢迎拍砖交流。

74 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1240516

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX