clutchitggs/ARIA

GitHub: clutchitggs/ARIA

ARIA 是一个 AI 智能体护栏中间件,运行在应用与 LLM 提供商之间,通过模式检测与主动干预防止智能体循环、级联失败、预算超支和提示注入等问题造成的资金浪费与安全风险。

Stars: 1 | Forks: 0

# ARIA [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Node.js](https://img.shields.io/badge/Node.js-18%2B-339933?logo=node.js&logoColor=white)](#) [![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white)](#) [![Providers](https://img.shields.io/badge/providers-Anthropic%20%C2%B7%20OpenAI%20%C2%B7%20Google-7c3aed)](#supported-providers) **AI 智能体的护栏 — 检测故障并在其耗费您的资金之前予以阻止。** ARIA 运行在您的应用程序与 AI 提供商之间。它能捕获智能体循环、级联重试、预算超支、损坏的输入以及基础设施故障,并可以实时阻断这些行为。 专为运行 AI 智能体或高负载 LLM 工作负载的开发人员和团队而构建。 ## 实际运行效果 ![ARIA 实时阻断智能体循环](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b02f7289cf011438.gif) ## 安装设置(5 分钟) ### Node.js ``` npm install github:clutchitggs/ARIA ``` ``` const Aria = require("aria-sdk"); const aria = new Aria({ provider: "anthropic", apiKey: process.env.ANTHROPIC_API_KEY, }); const result = await aria.call({ model: "claude-sonnet-4", messages: [{ role: "user", content: "..." }], max_tokens: 1000, }); ``` ### Python ``` pip install git+https://github.com/clutchitggs/ARIA.git#subdirectory=python ``` ``` from aria import Aria aria = Aria( provider="anthropic", api_key=os.environ["ANTHROPIC_API_KEY"], ) result = aria.call( model="claude-sonnet-4", messages=[{"role": "user", "content": "..."}], max_tokens=1000, ) ``` 大功告成。ARIA 会包装每一次调用,运行检测,并且(在拦截模式下)在可能失败或浪费资金的请求到达提供商之前将其阻断。 ## 健康报告 运行一段时间后,您可以查看 ARIA 捕获了哪些问题: ``` print(aria.get_report()["text"]) ``` ``` ARIA Health Report ----------------------------------------- Calls monitored: 4,208 Agent loops found: 3 — $14.80 wasted so far Infrastructure risks: 1 — $6.20 would have been wasted Repeated prompts: 47 — $3.40 spent on duplicate calls ----------------------------------------- Total waste detected: $24.40 False positives: 0 Quality impact: ZERO (your AI output was never touched) ``` ## 两种模式 ### 检测模式(默认 — 安全,零风险) ARIA 观察流量并报告其发现的问题。不会阻断或更改任何内容。这是在开启拦截开关之前了解系统内部运行情况的好方法。 ``` aria = Aria(provider="anthropic", api_key="...") ``` ### 拦截模式(主动阻断) ARIA 主动阻断循环,执行预算限制,防止级联故障。使用相同的检测引擎,但现在它会进行干预。传入 `activationKey`(Node.js) / `activation_key`(Python) 即可从影子模式切换到主动拦截模式 — 目前任何非空字符串都可以启用它;提供此参数是为了在未来的版本中,可以在不破坏 API 的情况下将拦截功能限定为特定的 token 或试点 ID。 ``` aria = Aria(provider="anthropic", api_key="...", activation_key="enable") ``` 拦截模式能够阻止: - **智能体循环** — 在第 3 次调用时捕获,而不是第 100 次 - **重复调用** — 立即返回缓存的响应,成本为 $0 - **预算超支** — 当预算达到 $0 时立即硬性停止 - **级联故障** — 在基础设施健康状况下降时予以阻断 - **损坏的输入** — 在到达模型之前予以阻断 - **提示注入** — 在劫持您的智能体之前进行隔离 ## 工作原理 ARIA 使用以下方式监控每一次 API 调用: - **模式检测** — 识别陷入死循环的智能体、重复调用、攻击特征 - **跨调用跟踪** — 监控跨调用的速率限制、延迟、错误率和预算(而非单次调用,而是整个会话期间) - **信号关联** — 综合多个微弱信号以捕获单个指标无法揭示的级联故障 - **主动干预** — 在拦截模式下,阻断可能失败或浪费资金的调用 **各项检查的运行位置。** 循环、缓存和基本的速率限制调整在您的机器上**本地**运行。可选的安全信号(注入风险、输入中的凭据、数据泄露风险)和基础设施健康分析可以在远程诊断端点上评估,该端点仅接收**数字**(速率限制百分比、延迟、错误率、内容指标) — 绝不接收提示或 API 密钥。设置 `diagnosticEndpoint: null`(Node.js) / `diagnostic_endpoint=None`(Python) 可完全在本地运行;在此模式下不评估安全信号。 ## 为什么这很重要 智能体循环是众所周知的故障 — 您的智能体重复相同的调用 100 次,导致账单激增。这很容易被发现。 **代价高昂的故障往往是您无法察觉的:** 您的应用达到了速率限制。您的重试逻辑重新发送了失败的调用。这些重试增加了更多流量。更多调用失败。更多的重试。每次重试都会重新发送完整的对话上下文 — 需要再次为所有 token 付费。在 10 分钟内,您花费了正常成本的 5 倍,却只得到了一堆错误。 您看着账单认为“今天业务很繁忙”。实际发生的情况是:您的系统放大了自身的故障,那张 $200 的账单中有 $160 是纯粹的浪费。如果在开始时有东西暂停了它,您只需花费 $45。 40% 的 AI 智能体项目因成本超支而被取消(Gartner 数据)。这并不是因为 AI 本身昂贵 — 而是因为故障在悄无声息地成倍增加。 ## 状态与验证 ARIA 是一个可正常运行的库,由作者针对来自 Anthropic、OpenAI 和 Google 提供商的真实 API 流量进行了测试,并辅以一个合成场景测试套件,涵盖了其声称可检测的故障模式 — 智能体循环、级联故障、预算超支、速率限制风暴和注入尝试。 在开发过程中观察到的情况: - **智能体循环、级联故障、预算超支** — 在默认阈值下可靠地被捕获。 - **速率限制风暴、注入尝试** — 在测试场景中成功被捕获。 - **正常流量** — 在测试的混合流量中未受到干扰。 这是**作者端的验证**,而非已发布的基准测试。任何人都可以使用自己的密钥运行的可复现测试套件是计划的下一步;它将用具体的数据取代上面的定性总结。 ## 支持的提供商 | 提供商 | 模型 | |---|---| | Anthropic | Claude Opus, Sonnet, Haiku | | OpenAI | GPT-4o, GPT-4.1, o4-mini 等 | | Google | Gemini Pro, Flash | ## 常见问题解答 **ARIA 会破坏我的应用吗?** 在检测模式下:不可能 — 它只进行观察。在拦截模式下:ARIA 是故障安全的。如果 ARIA 本身发生错误或可选的诊断端点不可达,您的调用将正常通过。 **ARIA 会让我的应用变慢吗?** 本地检查增加的延迟 < 1 毫秒。可选的诊断检查增加约 50-100 毫秒。如果延迟比安全信号更重要,请禁用诊断端点。 **ARIA 能看到我的提示吗?** 本地检查会在您的机器上看到它们(包装器在您的进程中运行)。可选的远程诊断端点仅接收数字形式的健康指标 — 没有提示,没有 API 密钥。您可以阅读源代码进行验证,或者将诊断端点设置为 null 以将所有内容保留在本地。 **如果我不喜欢它怎么办?** 删除三行代码。一切都会恢复原样。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。
标签:AI代理, AI基础设施, AI安全, Anthropic, API安全, Chat Copilot, CISA项目, CIS基准, DLL 劫持, GNU通用公共许可证, Google, JSON输出, LLM, MITM代理, Node.js, Nuclei, OpenAI, Petitpotam, Python, Unmanaged PE, 人工智能, 内存规避, 大语言模型, 实时拦截, 护栏机制, 提示注入, 无后门, 用户模式Hook绕过, 级联故障, 自定义脚本, 逆向工具, 错误检测, 防循环, 集群管理, 零日漏洞检测, 预算保护