分享一个保持主session干净且分支可控的AI且留有专门用于污染的session的工具,且兼容grillmedocs和Treills

J_Zhang 2026-06-10 22:27 1

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:



  • 我的帖子已经打上 开源推广 标签:

  • 我的开源项目完整开源,无未开源部分:

  • 我的开源项目已链接认可 LINUX DO 社区:

  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:

  • 以上选择我承诺是永久有效的,接受社区和佬友监督:


以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出






作为一个既需要发论文(科研导向)又需要做项目(工程导向)的学生,我在使用ai的过程中,经常遇到下面几个问题:


1)主session污染问题:在一个session内和ai聊久了,主 session 很快会被需求讨论、实现细节、失败尝试、长篇解释、review 记录全部污染,最后自己也不知道哪个 session 是干什么的。在科研上,有了idea后需要做不同的实验去验证和实现,实验过程中涉及到配环境、调参等很容易让ai陷入局部最优而进行过度尝试污染上下文的问题。在工程上,很多工程也会涉及到这些问题,subagent由于其不可显示导致人为不可控且需要用户自己设计而过于繁琐。


2)无论是工程还是科研都来源于一个并不具体的想法,可以说:在完成整个项目的过程中,没有人对这个项目完全了解,这就需要有一个session能拿到所有session的context,来解答用户所有的问题,无论是什么问题,这个session就是用来污染的,且永远不会并入主session污染其他session。


3)过程文档至关重要,但是一个被污染的session总结出的过程文档往往是带有各种无意义信息,比如偏向用户让他给解释的概念、反复陈述各种试错的失败信息,显然这对于未来需要这份过程文档的人是噪音,所以如何维护一个无污染的过程文档至关重要。


针对上述问题,我写了conductor,它的思路是把当前主对话变成一个永远干净的master session(用于自己需要理清项目逻辑、写过程文档等),只保留全局目标、关键决策、分支地图和批准后的子session的摘要;具体使用而言:使用时会先把当前对话设为干净的master session,如果需求不清楚,可以结合grill-me or grill-me-docs追问,等讨论清楚后,conductor会先做依赖分析,判断哪些任务可以并行,哪些必须串行等待。


接着,它不会乱开session,而是先生成branch card,每张card写清这个分支要做什么,为什么开,允许带入哪些context,预期产物是什么,完成标准和return condition,只有用户确认后,才会开真正的branch session。最开始会有四个session。1)主session。2)专门用于问问题随便污染的session。3)讨论分多少branch,并行or串行的session。4)第一个branch session


进入branch session后,这个session只拿到自己的branch brief和已批准的master session的context,不会继承任何session的杂乱历史,用户可以在branch里继续交互实现任何东西,这解决了subagent不能交互的问题,这下每个子任务用户都可以及时纠偏,这些细节都会留在branch里,主session依然干净。


当branch觉得任务完成后,不会自动合并,它会先建议完成,用户确认完成后,会生成总结,把这个session中过度的污染去掉但是把经验和正确的流程总结压缩,然后master session会询问用户是否合并,因为某些子任务必须合并进入主线,要么主线不完整,比如,在科研中,配环境复现paper的branch可以不合并,但是自己的重要实验必须要合并,不然主session会缺乏细节了解。


如果使用Treills,conductor还会把master、branch、依赖关系、状态和产物路径持久化成parent/child tasks、branchmap和metadata,方便回看、回退和继续推进。


整个流程的目标是:主session保持干净和主导,分支负责探索完成,专门留有一个有所有session context的session来让用户随意问问题讨论、污染。

最新回复 (8)
  • Drlinuxdo 06-10 22:32
    2

    这个看上去很有用,虽然我不写论文,但在和AI讨论问题的时候也会遇到类似的问题。以前都只能不断分支对话出去,最后一堆一模一样的对话都不好查找。

  • J_Zhang 楼主 06-10 22:44
    3

    我不写论文,但在和AI讨论问题的时候



    是的,这个既面向科研导向的人群也面向工程导向的人群,普通的对话也很适合呢

  • ciarany 06-10 22:53
    4

    类似于Claude code的by the way功能吗

  • J_Zhang 楼主 06-10 22:57
    5

    佬您好,conductor和BTW不太一样,BTW类似一个分叉的能力,conductor不仅分叉,还规定分叉什么时候创建、叫什么、拿到哪些上下文、什么时候算完成、如何生成压缩信息、是否允许合并回主 session。

  • bjwdttz 06-10 23:07
    6

    个人经验,保证主session注意力集中的最佳实践(重要性降序):



    1. 一路上都用文档固化设计和取舍点

    2. 用opencode-dcp这种插件动态压缩上下文

    3. 大型项目用serena codegraph open-viking 这类工具和自制cli降低上下文长度

    4. 灵活创建sub agent,单独完成这种上下文长且有效信息低的工作(我个人常用的有debug的,写单测的,重构的,运行仿真的等)

  • JsonSong89 06-10 23:11
    7

    感觉不用这么复杂吧


    想整理session了,直接让AI按照你的重点summary一下写入md文档,然后/new 之后让新session读取就行了.

  • J_Zhang 楼主 06-11 00:51
    8

    确实,简单任务让 AI summary 成 md,然后 /new 读进去就行。但是复杂项目里普通 summary 有几个风险:

    谁来决定哪个子任务该进summary?比如我通常一个idea可能会分十个以上的branch session去跑实验验证,可能其中9个都是失败的,而且我之前这样做的时候容易犯懒,

    等 session 已经乱了再总结,很多上下文已经混在一起被污染了,多个分支会互相污染。

    实现、review、解释、调研都混在一个 summary 里,新 session 读了以后也会继承噪声。而且Conductor 记录了哪个分支依赖谁、哪个能并行、哪个还没完成,这样就可以减轻我们使用的负担。

  • J_Zhang 楼主 06-11 00:53
    9

    make sense,思考佬的经验继续完善这个skill

* 帖子来源Linux.do
返回