Plugin

插件

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

插件

插件(Plugin) 是在 Agent 运行时扩展其能力的模块。插件让 Agent SDK 无需修改核心执行引擎,就能接入外部系统、工具、渠道和工作流。

插件能做什么

  • 向 Agent 暴露可调用的工具
  • 接入 Agent 生命周期(启动、停止、会话事件)
  • 管理自己的状态、连接和后台任务
  • 在 Agent 进程边界内运行,不作为独立服务

内置插件

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

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

编写插件

插件是实现了 Plugin API 的普通 TypeScript 类:

import { definePlugin } from "@downcity/agent-plugin";

export default definePlugin({
  id: "my-plugin",
  name: "My Plugin",
  version: "1.0.0",

  async init(context) {
    // 生命周期钩子:Agent 启动时调用
  },

  async destroy(context) {
    // 生命周期钩子:Agent 停止时调用
  },

  tools: [
    {
      id: "myTool",
      description: "做一件有用的事",
      async handler(args) {
        return { result: "done" };
      },
    },
  ],
});

继续阅读