Power

什么是 Downcity Power,以及它如何扩展 Agent 能力

Power(Power) 是 Downcity 唯一的扩展产品单元。它由 City 提供和维护,可以向 Agent/Session 作用域投影运行能力,也可以带上宿主管理逻辑、Sidebar + Mainview 业务工作区和 Config。

Power
├── main       可选:City 运行实例、生命周期、管理逻辑与 actions
└── renderer   可选:Sidebar + Mainview 和/或 Config

Power 能做什么

  • 向 Agent 暴露可调用的工具
  • 接入 City Power 生命周期(initialize、dispose)
  • 管理自己的状态、连接和后台任务
  • 提供 Sidebar + Mainview 工作区,并在 Catalog 详情的独立 Config 中管理配置
  • 在 City 进程边界内运行,不作为独立服务

一个 City 中每个 Power ID 只有一个实例和一份配置。配置由宿主持久化,并在每次执行时作为 PowerContext.config 快照提供给 Power;Agent 不持有 Power、配置或生命周期。多账号由 Power 自己的配置结构表达,不存在通用命名配置层。

内置 Power

Downcity 内置了多个 Power,覆盖常见的 Agent 需求:

  • Chat — 连接聊天渠道(Telegram、飞书、QQ 等)
  • Task — 调度和运行后台任务
  • Memory — 持久化会话历史和上下文
  • Shell — 在沙箱环境中执行本地命令
  • Schedule — 类 Cron 的作业调度
  • Web — 浏览网页并提取内容
  • Skill — 组合可复用的工具链

编写 Power

SDK 中可以直接向 City 提供 Power 实例,不需要经过安装协议:

const city = new City({ powers: [github_power], workspaces: [workspace] });
city.agents.add(agent);

需要被 CLI 或 Desktop 安装和管理时,再通过 power.json 声明统一 main 与可选 renderer 入口。

继续阅读