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 执行模型很简单:
- 接收消息或任务
- 加载会话上下文(历史、工具、插件、提示词)
- 调用模型
- 如果模型要求调用工具,执行它并继续
- 返回结果
继续阅读: