Power
什么是 Downcity Power,以及它如何扩展 Agent 能力
Power(Power) 是 Downcity 唯一的扩展产品单元。它由 City 提供和维护,可以向 Agent/Session 作用域投影运行能力,也可以带上宿主管理逻辑、Sidebar + Mainview 业务工作区和 Config。
Power
├── main 可选:City 运行实例、生命周期、管理逻辑与 actions
└── renderer 可选:Sidebar + Mainview 和/或 ConfigPower 能做什么
- 向 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 入口。
继续阅读
- Agent Powers Docs — 内置 Power 手册和示例
- Agent SDK — 如何在代码中注册和使用 Power
- 自定义 Power — 可安装 Power 的统一 main 协议