SuperAPI AI 工具集

fastagent

FastAgent 是一个把本地智能体目录发布为在线服务的运行时与适配器层。它不引入新的智能体编写 DSL,而是复用你已有的目录结构:Markdown 指令、可复用 Skills 和 TypeScript 工具仍以文件形式存在。FastAgent 负责把这些定义接入 Next/Astro 应用、Telegram、Slack、飞书/Lark、HTTP/SSE 接口或自定义渠道,提供流式回复、群组感知和 webhook 校验。内置基于开源 pi harness 的多模型支持(OpenAI、Anthropic、Google 等),工具通过 defineTool 与 Zod 校验,Agent Skills 按需加载。它强调小核心理念:invoke 解耦渠道、智能体、harness 与基础设施,不接管你的认证、数据库、路由与部署。可用 fastagent deploy 生成 Docker、Fly、Railway、AWS Bedrock AgentCore 的容器与配置,也可直接用一条路由嵌入现有应用。项目为 MIT 许可,目前处于 1.0 之前版本。

访问官网

工具介绍

FastAgent 是一个把本地智能体目录变成实时服务的运行时与适配器层。它的出发点是一个常见痛点:编码智能体让生成有用的智能体目录变得很便宜,但本地智能体通常只活在终端里,而真实服务需要接收 webhook、加入 Telegram、服务产品用户并暴露稳定 API。FastAgent 就是连接本地智能体目录与在线服务之间的桥梁。

一、用途 FastAgent 不是新的智能体编写 DSL,也不取代你已有的定义与项目布局。你保留现有的智能体定义和项目目录,FastAgent 在其外围提供发布运行时和适配器。它可以把同一个智能体作为 Telegram 机器人、Slack 应用、飞书/Lark 机器人、HTTP/SSE 接口或自定义适配器来服务,支持已验证的 webhook、流式回复和群组感知。

二、主要能力

  1. 目录即智能体:一个智能体就是一个目录,包含 Markdown 指令、可复用 Skills 和 TypeScript 工具,仍是你可查看、编辑并提交的文件。项目在智能体旁边声明为其内容,智能体可读取和修改,但这些内容不会成为智能体定义的一部分。
  2. 渠道:同一智能体可作为 Telegram 机器人、Slack 应用、飞书/Lark 机器人、HTTP/SSE 端点或自有适配器提供服务。
  3. 模型、工具与技能:通过 OAuth 或 API key 接入任意模型提供方(OpenAI、Anthropic、Google 等);从 tools/ 任意深度发现类型化工具(经 defineTool 命名并由 Zod 校验);Agent Skills 按需加载。底层基于开源 pi harness。
  4. 应用嵌入:用单个 handler 把智能体挂载到 Next / Astro / Hono / Bun / Node 路由,或在自有代码中像调用函数一样调用 invoke。认证、数据库与基础设施仍归你所有。
  5. 部署:没有应用构建步骤,目录就是可部署单元。fastagent deploy docker|fly|railway|agentcore 会生成容器、目标配置和 runbook(--run 可驱动其完成)。本地 Docker 获得用户自有的 Compose 与持久状态;可选 --tunnel 为 webhook 渠道添加临时 Quick Tunnel 服务;AWS Bedrock AgentCore 获得单栈 CloudFormation 拓扑(webhook 经 forwarder Lambda,定时经 EventBridge)。持久入口仍由你负责。

三、设计理念 FastAgent 围绕小型服务契约、应用自有运行时关注点、类型化边界和可组合适配器构建。小型服务核心:invoke 解耦渠道、智能体、harness 和基础设施。应用自有运行时:不接管你的认证、数据库、路由或部署。类型化边界:类型化工具、显式事件、边界校验。智能体原生形态:目录就是可部署单元,各渠道驱动同一契约。

FastAgent 刻意保持为小型服务层,不替你决定技术栈:没有要迁入的平台(无 dashboard、无控制面、无部署目标运行时),没有新格式或 DSL(消费 AGENTS.md、Agent Skills、TypeScript 工具、HTTP/SSE 等既有标准),没有工作流引擎(由智能体自行决定步骤,确定性多步编排可从自有队列或工作流调用 invoke),也不锁定模型或云(Agent Handler 契约与 harness 无关,内置 pi 为 harness,可自带 harness 且所有渠道继续可用)。

四、使用方式 需要 Node >= 22.19(下限继承自 pi harness 和 undici),也可在 Bun 下运行(CI 中在 Bun 1.3 冒烟测试;其原生 fetch 替代 undici 路径)。npm 包提供编译后的 JavaScript 和类型声明。

  1. 与编码智能体协作:可向 Claude Code、Codex、Cursor 或其他编码智能体粘贴:Read https://fastagent.sh/start.md and build an agent in this project.
  2. 起点:从 agent development guide 开始,这是面向人类和编码智能体的编写入口,覆盖职责、TypeScript 工具、验证、渠道、定时和部署。仓库的 AGENTS.md 面向维护者。
  3. 本地测试与本地服务:可发送本地测试回合,也可以生产风格本地服务方式运行。FastAgent 没有构建步骤:智能体文件夹就是可部署单元。
  4. 嵌入应用:无需目录时,可由类型化部件组装。公共 API 表面:根导出只含受支持的表面。Provider 和 ProviderAuth 作为类型导出(因为选项会提及它们),构建它们的工厂 createProvider 来自 @earendil-works/pi-ai,注册自定义 provider 时需将其作为直接依赖添加。 子路径入口(./package.json 也为读取版本的工具有导出):
  • @fastagent-sh/fastagent/core — harness 无关协议、collect、作为 handler 的智能体 API(createAgentHandler)与作为 client 的 connectAgent、渠道套件和调度。除 Effect 外无其他包,且无 Node 内置模块,由测试强制。
  • @fastagent-sh/fastagent/node — 需要 Node 运行时的 harness 无关部分:mountAgentService(组装)、serveNode / nodeListener(node:http ↔ Fetch 绑定)。
  • @fastagent-sh/fastagent/pi — pi 参考实现。
  • @fastagent-sh/fastagent/telegram — Telegram 机器人渠道。
  • @fastagent-sh/fastagent/slack — Slack Events API 机器人渠道。
  • @fastagent-sh/fastagent/feishu — 规范飞书机器人渠道(飞书,open.feishu.cn)。
  • @fastagent-sh/fastagent/lark — 基于飞书引擎的 Lark 国际兼容配置。

五、适用场景 希望把本地智能体目录快速发布为 Telegram/Slack/飞书机器人、HTTP/SSE 接口或自有应用内服务的开发者;需要在现有 Next/Astro/Hono/Bun/Node 应用中嵌入智能体而不迁移技术栈的团队;希望用同一智能体定义服务多个渠道、并保留自有认证、数据库与部署控制的场景。

六、限制与现状 FastAgent 处于 1.0 之前。稳定设计中心是 docs/SPEC.md 中的 Agent Handler 契约;1.0 之前包 API 仍可能收紧,重要变更记录在 GitHub Releases。设计中为尚未成为完整产品能力的特性留了空间:持久执行方面,Telegram、Slack 和飞书/Lark 已接受的回合目前至少重放一次,通用持久性与精确一次执行仍是未来后端工作;沙箱执行方面,所有七个编码工具、项目上下文、渠道和作者编写的 tools/ 直接触达本地进程,围绕完整智能体进程的沙箱是未来工作;可观测性导出方面,目前有分级日志和每回合追踪,但没有 OpenTelemetry exporter;harness 绑定与渠道方面,pi 是内置 harness,其他 harness 可实现 Agent 契约,社区渠道可使用渠道套件;部署目标方面,目前提供本地 Docker、Fly、Railway 和 AWS Bedrock AgentCore,生成的容器是其他宿主的可移植路径。

许可证为 MIT。运行时依赖使用宽松开源许可证并作为独立 npm 包安装;内置脚手架 writing-great-skills 技能来自 mattpocock/skills,附带其自身许可证。内置 harness 是 pi(pi.dev),提供智能体循环、多提供方 LLM API 以及 fastagent chat 驱动的交互式 TUI。项目还依赖 zod、undici、chokidar、giget、@clack/prompts、ignore 和 octokit/webhooks。