Skip to content

ACP Agents

FylloCode 通过 Agent Client Protocol 接入不同 Coding Agent。设置中的 ACP Agents 页面位于 /settings/acp-agents,负责展示 registry 中可用的 Agent,并管理安装、更新和本地识别状态。

ACP Agents 页面截图

主要能力

  • 查看支持 ACP 的 Agent 列表
  • 搜索 Agent
  • 安装和更新由 FylloCode 管理的 Agent
  • 识别用户已经安装的 Agent
  • 展示版本、许可证、作者和安装状态
  • 按 FylloCode 语义标注 Agent 类型
  • 配置不在 registry 中的自定义 Agent

页面提供「全部」「已安装」「自定义」三个筛选:前两者浏览 ACP Registry 中的 Agent,「自定义」是一个独立的 JSON 编辑区域。

精选目录与安装

FylloCode 只从精选 ACP Agent 目录加载可发现和可管理的 registry Agent,不再合并或回退到官方 Registry。旧来源缓存不会继续作为精选列表显示;只存在于历史安装记录、但已经不在当前精选目录中的 Agent,也不会重新进入列表或连接预热。自定义 Agent 不受精选目录成员变化影响。

FylloCode 管理的 binary Agent 可以使用 ZIP、TAR、TAR.GZ/TGZ 和 TAR.BZ2/TBZ2 归档,无需依赖系统安装的 unziptarbzip2。目录提供 SHA-256 摘要时,安装会在解压前校验下载内容;未提供摘要时仍可安装,但不会被标记为已验证。升级会先在临时 staging 目录完成校验和解压,提交失败时保留原有安装与记录。

Agent 类型

FylloCode 会把 ACP Agent 标注为三类:

类型含义
native原生 ACP agent,自带完整实现,无外部命令行工具依赖
adapter独立适配层,自带完整实现,可与对应官方 CLI 共享配置或环境变量
bridge桥接层,运行时通过本地命令行工具完成工作

详细判定标准见 ACP Agent 分类

自定义 Agent

如果一个 Coding Agent 支持 ACP 但还没有进入 registry,可以在「自定义」tab 里手动登记,让它和 registry 里的 Agent 一样出现在 Agent 选择器中。

配置以 JSON 形式编辑,结构是一个 agent_servers 映射:

json
{
  "agent_servers": {
    "Kimi Code CLI": {
      "command": "~/.local/bin/kimi",
      "args": ["acp"],
      "env": {}
    }
  }
}
字段说明
commandAgent 可执行文件路径,支持 ~ 展开和 PATH 查找(必填)
args启动参数数组,例如 ["acp"](可选)
env额外环境变量,会合并到系统环境变量之上(可选)

保存后,配置写入本地的 custom-agents.json,不会同步到 registry,也不属于 FylloCode 管理安装/更新的范围。命令本身的安装和升级仍由你自己维护。

连接预热与复用

应用完成主进程启动后,会在后台预热所有已安装的 registry Agent 和有效的自定义 Agent。预热只启动 ACP 进程并完成 initialize,不会创建 Chat session,也不会提前取得 Workspace 级配置或命令;打开 Launcher 而尚未进入 Project 或 Workspace 时同样会执行。

安装、升级或保存自定义 Agent 后,FylloCode 会增量预热受影响的连接。升级、卸载或修改自定义 Agent 的 commandargsenv 前,旧进程会先被主动停止;后续连接使用新的运行时配置。单个 Agent 预热失败不会阻塞窗口启动或其他 Agent,用户实际选择正在预热的 Agent 时会复用同一条在途连接,不会重复启动进程。

Agent 成功初始化后,FylloCode 会缓存认证方式以及 prompt、MCP、session 的完整 capability snapshot。旧版只包含 prompt 能力的缓存仍可读取;Agent 后续成功初始化时会逐步刷新为新格式,不需要手动迁移。

多根 ACP Session

Workspace 最多可以包含 16 个 Project。Agent 如果声明支持额外目录,FylloCode 会在创建 ACP Session 时把主 Project 与授权的其他 Project 目录一起传入;Session 使用创建时固定的 Workspace 快照,之后增删或移动 Workspace 成员不会静默改变已运行 Session 的上下文。Chat header 的 scope popover 会区分当前快照中的成员、只存在于最新 Workspace 的成员和已经失效的成员。完整的产品定位和跨 Project 使用边界见多根 Workspace

跨 Agent 委派

FylloCode 会话模式中,如果当前 Agent 支持 HTTP MCP,Agent 可以通过 fyllo-spawn 查询已安装 Agent,并把聚焦任务同步或后台委派给另一个 ACP Agent。Spawned Session 复用目标 Agent 的现有进程池与父 Chat Session 固定的 Workspace scope,不会创建第二套授权或自动扩大到后来加入的 Project。

委派不是从 ACP Agents 设置页手动启动的功能;由当前 Chat Agent 根据任务边界调用。用户可以在 Chat 中查看 spawned Session 的可信状态与输出,但当前检查界面只读。

Session 配置恢复

FylloCode 会把 Agent 最后确认的 model、mode、thought level 和其他 session configOptions 随会话元数据保存。应用重启或 Agent 连接重建后,续聊首个 prompt 发送前会先恢复仍受当前 Agent schema 支持的选值;已经删除、type 变化或 value 失效的选项会保留 Agent 当前合法值,同时继续恢复其他兼容项。

如果一个仍兼容的配置无法被 Agent 确认,当前 prompt 会以现有 ACP 错误结束,而不会静默使用默认值。没有持久化配置的旧会话继续沿用原有恢复流程,不需要迁移。

基于 MIT 发布