Agent

Agent

Agent SDK 是什么,以及如何运行 Agent 工作

Agent

Agent SDK (@downcity/agent) 是执行 Agent 工作的核心运行时。Agent 实例将项目配置、会话、工具、插件和模型组装成一个执行上下文。

Agent 做什么

  • 读取项目配置(构造参数或项目目录)
  • 维护会话和对话历史
  • 在执行过程中调用工具
  • 运行扩展其能力的插件
  • 绑定到模型进行推理

创建 Agent

import { Agent } from "@downcity/agent";

const agent = new Agent({
  id: "repo-helper",
  path: "/path/to/project",
  prepare_session: async (session) => await session.set({ model: myModel }),
  tools: [myTool],
  plugins: [myPlugin],
});

关键概念

  • Session — 一个执行线程。Agent 按需创建会话,并通过它们路由消息。
  • Tool — Agent 在执行过程中可调用的函数。直接传给构造函数。
  • Plugin — 扩展 Agent 能力的模块,如聊天、任务或记忆。也直接传给构造函数。
  • Model — 推理后端。直接传给构造函数或按会话设置。

Agent 不做什么

  • 不管理多个项目(那是 CLI / 控制台层)。
  • 不拥有模型目录(那是 City / Federation)。
  • 不持久化全局凭证(那是 City)。

保持这些边界清晰,你很容易回答:模型应该在哪配置?机器人凭证应该放在哪?这是控制平面故障还是项目运行时故障?

执行模型

Agent 执行模型很简单:

  1. 接收消息或任务
  2. 加载会话上下文(历史、工具、插件、提示词)
  3. 调用模型
  4. 如果模型要求调用工具,执行它并继续
  5. 返回结果

继续阅读: