Agoda 工程师开发 API Agent,一个零代码、零部署的系统,它可让单个模型上下文协议(MCP)服务器对接内部的 REST 或 GraphQL API。该系统旨在降低管理多种架构、多种认证方式的 API 所带来的运维成本,使团队无需为每个 API 单独搭建 MCP 服务器,就能通过 AI 助手查询相关服务。
API Agent 可作为通用的 MCP 服务器使用。工程师只需在 MCP 客户端 中配置目标 URL 与 API 类型,这个智能体便能自动对 API 架构进行自省,并根据自然语言输入生成查询。一次部署即可同时服务多个 API。每个 API 在客户端看来都是一个独立的 MCP 服务器,但实际上共享同一个实例。新增 API 仅需更新配置即可。
Agoda 的首席技术官 Idan Zalzberg 在新闻稿中表示:
许多团队希望将内部工具开放给 AI 使用,但为每个工具单独编写 MCP 工作量极大。API Agent 采用创新的零代码方案实现这一能力,据我们所知,这一方案在业内属于首创。
该架构包含一个架构内省模块。配置目标 API 后,智能体会动态检索 API 架构。对于 GraphQL,它会提取类型、字段和输入参数;对于 REST API,它会基于 OpenAPI 规范 或 JSON 响应示例。这使得智能体无需预构建适配器即可自动构造查询。
系统技术栈包括:用于 MCP 服务器的 FastMCP、用于语言模型编排的 OpenAI Agents SDK,以及用于内存 SQL 后处理的 DuckDB。其他功能还包括动态工具命名、大型 API 的 Schema 搜索、多步骤查询的会话跟踪,以及通过 OpenTelemetry、Jaeger、Zipkin、Grafana Tempo 或 Arize Phoenix 实现的可观测能力。

API Agent 内部原理(来源:Agoda 工程博客)
API 的响应可能包含数千行数据,这可能超出大语言模型的上下文长度限制,导致内容被截断。API Agent 通过在 DuckDB 中使用 SQL 作为上下文管理层来解决这一问题:完整的 API 响应会被存储、过滤与聚合,只将精简后的结果发送给模型。DuckDB 可在进程内运行,原生支持 JSON 并能自动推断 Schema。使用 SQL 进行后处理,既避免了任意代码执行,又能保持与 LLM 查询生成的兼容性。
安全机制默认开启。API Agent 以只读模式运行,除非明确启用并加入内部工具白名单,否则不允许执行任何修改操作。

API Agent 安全模型(来源:Agoda 工程博客)
运维经验包括:在响应被截断时进行清晰提示、优先使用 Schema 而非样本数据、处理 SQL 特性相关问题,以及暴露完整错误信息以便 LLM 进行自行修正。重复查询会被作为参数化的 “Recipe”,缩短推理耗时与延迟;直接返回选项则可让过滤后的数据跳过摘要步骤。API Agent 支持在单个会话中跨多个端点查询,完成关联与聚合操作。基于 SQL 的后处理规避了沙箱、网络隔离和依赖问题,其声明式风格与大语言模型适配性良好,可实现安全的 AI 辅助数据转换。该项目已开源,项目地址为 api-agent,可用于 REST 和 GraphQL 相关实验。
原文链接:





