Daemon @extension 提及支持
目标
Daemon WebShell 需要与 CLI 在活跃扩展提及(mention)行为上保持一致。用户可以通过 @ 补全发现活跃扩展,选择标准的 @ext:<name> 提及格式,并由 Daemon 将该扩展的上下文注入到模型轮次中,同时保持可见的 prompt 文本不变。
设计
- WebShell 的
@补全功能将工作区扩展状态中的活跃扩展条目与现有的工作区文件匹配项相结合。仅输入@时优先显示扩展,输入@bro会同时过滤扩展和文件,输入@ext:则切换为仅补全扩展。 - 扩展补全会插入
@ext:<extension.name>,从而使 Daemon 接收到一个独立于显示文本的稳定引用。 - Daemon 的扩展状态包含一个可选的
description字段,其值从已安装扩展的配置中读取。该字段对旧客户端而言是新增的附加字段。 - ACP 会话 prompt 解析会扫描文本 prompt 块中的
@ext:<name>token,仅匹配会话配置中的活跃扩展,对重复的提及进行去重,并静默跳过未知或未激活的名称。 - 用户可见文本会被完整保留。解析出的扩展上下文会作为额外的模型文本片段,追加在用户文本之后。
- CLI 和 Daemon 共享扩展提及相关的工具函数,用于解析、清理显示文本、格式化能力,以及在带有子路径和大小防护的情况下读取上下文文件。
边界限制
上下文文件的读取受到单文件限制和扩展上下文总预算的限制。位于已安装扩展目录之外的文件会被跳过,无法读取的文件会被跳过并输出 debug 日志,重复提及仅消耗一次预算。
验证
专项测试涵盖 WebShell 补全模式、Daemon ACP 上下文注入、重复与未知提及、带边界限制的上下文文件,以及现有的 CLI 扩展提及处理逻辑。最终验证将执行仓库的构建和类型检查。
Last updated on