OpenAI 的护栏并未控制成本。这里的差距。

发布: (2026年5月1日 GMT+8 22:00)
4 分钟阅读
原文: Dev.to

Source: Dev.to

OpenAI Guardrails 概览

OpenAI 在上个月的 Agents SDK 中发布了 Guardrails。

  • 输入 Guardrails – 在代理处理消息之前运行逻辑(阻止、重定向、记录)。
  • 输出 Guardrails – 在代理生成响应之后运行逻辑(标记、过滤、暂停)。
  • 工具调用 Guardrails – 在工具实际调用前拦截(根据你的规则批准或拒绝)。

这些是行为控制,用来回答 “我的代理做对了吗?” 的问题。它们是真实存在的,能够解决真实问题,并且在验证、内容过滤以及工具批准逻辑方面表现良好。

成本方面的局限

Guardrails 没有费用概念

  • 没有 budget_usd 参数。
  • 没有 on_exceed 钩子。
  • 没有跨任务的 token 累计。
  • 没有每个代理函数的费用上限。

这不是疏忽,而是超出范围。OpenAI 的框架侧重于编排和质量控制,而预算执行属于另一个层面。

产生的缺口

你的流水线可以通过所有 Guardrails 检查,产生干净的输出,且所有工具调用都获得批准——但如果出现未受控的重试循环,仍可能产生巨额账单(例如 $47,000 的 AWS 发票)。Guardrails 通过,预算却被毁掉。

引入 agentguard47

agentguard47 位于 框架层之下,对每个代理函数强制支出限制。

# agentguard47 example
from agentguard47 import guard

@guard(budget_usd=2.00, on_exceed="raise")
def run_analyzer(task):
    result = client.responses.create(...)
    return result

当累计支出达到指定预算(例如 $2.00)时,装饰器会抛出异常,你可以捕获并处理。这样可以防止在计费时出现静默循环和意外费用,为每个代理函数设定独立的费用上限。

如何使用 agentguard47

  1. 安装

    pip install agentguard47
  2. 包装 任意代理函数(无论是使用 OpenAI 的 Agents SDK、LangChain,还是原始的 openai 客户端),使用 @guard 装饰器。

  3. 处理 on_exceed 动作(raiselog、自定义回调等),决定预算被突破时的处理方式。

与现有工具的集成

  • OpenAI 的 Agents SDK 无缝配合。
  • LangChain 流水线兼容。
  • 调用 原始 OpenAI 客户端 的函数也可以被 Guard。

装饰器对函数内部实现保持中立;它只负责跟踪费用累计并强制执行设定的上限。

推荐做法

  • 使用 OpenAI Guardrails 进行行为验证、内容过滤和工具批准逻辑。
  • 添加 agentguard47 用于费用强制、预算突破的硬性停止以及每个代理的费用追踪。

这两类工具工作在不同层面,互为补充。你需要同时回答以下两个问题:

  1. 代理的行为是否正确? – OpenAI Guardrails。
  2. 代理是否在预算范围内? – agentguard47。

文档与示例

agentguard47 docs and examples

0 浏览
Back to Blog

相关文章

阅读更多 »

模型越智能,节省越多。

神话:更智能的模型会让插件变得多余。自从 WOZCODE 推出以来,许多 Claude Code 高级用户低声说插件的优势将会消失。