Skip to content

群里的接力要不要给个上限?现在一条提问能跑出 4 跳 #66

Closed

Description

@Apageoflove

想问一下这个方向要不要做,以及默认怎么定。

现在的行为是 README 里写的那句:There is no fixed reply cap。我拿官方 bot 实跑了一遍 8 步,第 4 步只是群里 @ 了一个成员问标题怎么起,结果一轮就接力了 4 跳(考据 → 执笔 → 考据 → 执笔),313 秒 6 次工具调用,最后也没落到一个能用的标题上。链条能一直跑下去,是因为每个 Bot 在回复里 @ 下一个 Bot 就会接着排。

我的想法是加一个可配的 group.maxHops,0 表示不限、也就是现在的行为;到上限之后不再排新的人,而是让最后说话的那个 Bot 收个口,把这一轮的结论说清楚。另外交接的时候把上一位的结论一起带过去(不额外起回合),这样上限截断的时候不会丢掉上下文。

我自己改了一版试过:开 maxHops=2 之后每条消息都停在 2 跳,并且会给用户一句「接力到这里收尾」的提示,313 秒那种情况变成 82 秒。

想请维护者拍两个点:默认值给多少比较合适(0 保持现状、还是 2);以及收口的时候要不要在群里明说「到上限了」,还是只让最后说话的 Bot 安静地收尾。这两个都仅个人判断,需要你们确认。另外 313 秒 / 4 跳是我单次 8 步对照里的第 4 步,样本只有一次,别的用法下的表现我没实测过。

Activity

  1. Apageoflove commented on Nov 9, 2026

    @Apageoflove
    ContributorAuthor

    这条已经在 #68 里做掉了,10-26 合并,现在插件是 0.7.24。

    群里设置里多了一个可配的接力跳数上限。0 是默认值,意思是不限,跟现在的行为完全一样,最大可以填到 20。到上限的时候链条就停在那里,群里会说明白,同时刚说完的那个 Bot 会被要求给个收口总结,而不是再 @ 下一个人;被拦下的那一次交接不会跑,但收口本身算一个独立回合。上限计的是这一轮里所有发言的 Bot,包括「所有成员依次回复」那种群里已经在队列里的成员。

    上一位的结论也一起交接过去了,不用额外起回合,所以截断的时候上下文不会丢。你举的那个 313 秒的例子,开上限之后是 82 秒。

    当时问的两点,答案就是这样。默认给 0 是保守的选择,仅个人判断;如果实际用下来别的默认值更合适,改一个常量就行。到上限了在群里明说,不静默收尾。

    关掉了,别的地方还有想法的话重新开一条就行。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions