ByTheWay 侧聊
ByTheWay(btw)旁路侧聊:用 /btw 在主 Paseo 会话旁提问,动态控制模型、思考、Mode 和 provider Features,实时显示工具活动,管理 Subagent,并按模型记住配置。
$ clisbot plugin add casonmo/bytheway
在 Paseo 的任意 agent 会话旁开一条侧聊:提问或做小任务,主会话的转录完全不受打扰。
它是怎么工作的
每条侧聊线程的背后是一个运行在同一工作区的临时 agent:
- 从面板或
/btw等命令发起后,插件在 daemon 侧读取主会话最近的对话作为首轮上下文快照,并把问题发给侧聊 agent; - 面板直接订阅侧聊 agent 的时间线,实时直播流式文本、思考、工具调用、待办、权限请求与每回合用量;
- 当前侧聊 agent 派生出的 Paseo 子 agent 与 provider 原生 subagent 会合并显示在输入框上方;没有子线程时不显示;
- 默认「agent 直连」上下文:侧聊 agent 通过 Paseo 内置工具按需读取主会话的最新进展;工具不可用时自动降级为被动同步(每条消息附带增量上下文);
- 转录本身保存在 Paseo 自己的 agent 时间线里;插件只在本机保留线程注册表(线程 id、标题、状态等元数据)与模型配置记忆,不复制问答内容。
使用
/btw <问题>:继续当前侧聊线程(没有则新开);不带问题时只打开面板、不创建线程;/btw-new [问题]:新开一条,不带问题时打开面板并进入新线程草稿,可先切换 provider/model;- 命令创建或续聊线程后,面板会立即刷新并选中对应线程,不再等待 20 秒轮询;
- 输入区动态显示
模型 / 思考 / Mode / Features:Mode 来自listModes,功能项来自listFeatures,思考档来自模型目录。没有对应能力的 provider 自动隐藏控件; - 模型配置记忆默认开启:每次发送或重建成功后,按
provider/model记住实际生效的 Mode、思考档和 Features;下次在模型选择器中选到同一模型时自动恢复。不同模型互不影响;选择「跟随主会话」不会套用模型记忆。可在设置中关闭; - 输入框上方的 Subagent 胶囊显示当前侧聊线程的子线程数量与运行状态:点开可打开详情;Paseo 子 agent 可分离或归档,已完成的 subagent 可一键清理;
- 新线程默认跟随主会话的 mode、thinking 和 feature 值;模型/provider 不一致时使用目标 provider/model 默认值;
- 已有线程切换 Mode、思考档或功能项会原地更新对应 subagent,不更换 agent;
/fork [提示词]:把当前会话转录克隆为一个新的并行会话;- Command Center 可打开「ByTheWay 侧聊」面板与设置页;
- 线程下拉列表可一键复制该线程的 Agent ID(用于把 agent 交给其它工具);
- 每个线程标签自带 ✕,一键关闭(归档)该线程;
- 会话顶部显示该线程最初的用户提问;即使时间线很长也不会丢失;
- 底部提示行提供本仓库的 GitHub Issue 入口(「提 Issue / 提功能」)——仅在你点击时经系统浏览器打开;
- 桌面端底部输入框 Enter 发送、Shift+Enter 换行(与 Paseo 主输入框一致);
- 回答中输入框按钮只显示「停止」(空闲时只显示「发送」);回答中按 Enter 发送会打断当前回答、按新消息重新开始一轮(toast 提示);
- 正文使用宿主 Markdown 渲染;界面语言跟随 Paseo App 语言;
- 面板顶部会提示 GitHub main 上是否有新版本及所需 Paseo 版本(需在终端执行
paseo plugin update paseo-bytheway)。
设置
Paseo 设置 → 插件 → ByTheWay 侧聊:
- 默认模型(跟随主会话或指定 provider/model);Mode、思考档和 provider features 由当前 provider/model 动态提供,新线程默认跟随主会话或 provider 默认值
- 记住模型配置(默认开启):按模型恢复上次实际使用的 Mode、思考档和 Features
- 新建线程可跨 Provider 选择模型;已有线程仅支持同一 Provider 内原地切换模型(会话保持连续)
- 首轮快照深度、动作摘要开关、上下文兜底开关
- 挂到主会话(侧聊 agent 作为子 agent)
- AI 线程标题开关与标题生成模型
- 权限策略(跟随主会话 / 询问+超时自动拒绝 / 自动放行只读 / 全部拒绝)
- 总并发上限与实验性取消开关
无需账号或额外密钥:插件复用 Paseo 已配置的 agent provider。要求 Paseo 0.13.0-beta.1 或更高版本;daemon 可运行在 Paseo 支持的任意平台,界面在桌面、Web 与移动端可用。
数据与权限
- 读取:通过本机 Paseo daemon 读取主会话与侧聊 agent 的时间线(用于组装上下文与界面展示),并读取侧聊 agent 的子 agent 元数据与 provider subagent 状态事件(用于输入框上方的 Subagent 管理);
- 写入:仅写本机插件数据目录
~/.paseo/plugin-data/paseo-bytheway/(线程注册表与模型配置记忆;模型配置记忆只含 Mode / 思考档 / Features 控制项,不含对话内容,最多保留最近 50 个模型); - 网络:侧聊消息中的远程图片由客户端直接从其 HTTP(S) 地址加载,图片所在站点会收到该请求与客户端的网络地址;侧聊的提问、上下文与工具结果会发送给你配置的模型提供方;面板打开时会向
raw.githubusercontent.com读取本插件 main 分支的package.json/paseo-plugin.json以检查更新(仅版本号,不上传任何会话数据);面板底部的反馈入口仅在你点击时经系统浏览器打开本仓库的 GitHub Issue 页面。 - 权限:侧聊 agent 创建时继承主会话的 Mode、思考档与 provider features(如 opencode 的 auto_accept),权限行为默认与主会话一致。工具权限请求显示在面板内,可直接批准或拒绝;提问类请求渲染为分步表单(一次一题、单选自动前进、最后一步统一提交全部答案)。默认策略为「跟随主会话」,插件不接管权限处理,侧聊与主会话行为一致;可选插件策略包括自动放行只读、全部拒绝、或无人处理时按设置分级超时自动拒绝;
- 停止:优先通过 Paseo 工具请求取消;未生效时提示在原生标签页中停止。
已知限制
- 线程绑定创建它的 daemon 与主会话;主会话被归档后线程标记为已停止,可「重建并继续」;
- 已有线程在同一 Provider 内原地切换模型(Provider 在创建线程时固定,需要其它 Provider 请新开线程);Mode、思考档和 features 切换同样原地生效,会通过临时 helper agent 调用 Paseo 的
update_agent,并刷新同一个 subagent 的快照校验是否真的生效;任何切换失败时消息不会发出,面板会显示原因; - AI 标题生成、实验性取消与模型/思考/模式切换会短暂创建一个辅助 agent(用后即自动归档,可能短暂出现在 agent 列表中);
- 同一时刻运行中的侧聊受并发上限约束;运行中的线程过多时新请求会被拒绝并提示。
- Provider 原生 subagent 的详情页由 Paseo 主面板提供;宿主尚未暴露 provider subagent 深链时,点击此类行会先打开父侧聊会话,再从主面板的 Subagents 胶囊进入详情。Paseo 子 agent 可直接打开。
- Subagent 胶囊当前只汇总当前 host/daemon 上的 Paseo 子 agent 与 provider subagent;跨 host 委派的 agent 暂不显示。
- 模型配置记忆以实际生效值为准;如果保存的 Mode、思考档或 Feature 在当前 provider/model 目录中已不存在,会回退到当前默认值,不会阻塞发送。

