AI News HubLIVE
站内改写2 分钟阅读

Show HN: Nenya——一个用Go编写的轻量级、高安全性AI API网关/代理

Nenya是一个用Go编写的轻量级、零依赖的AI API网关,位于AI编码客户端和LLM提供商之间,提供秘密编辑、上下文管理、代理路由和MCP工具集成,支持透明SSE流。其安全特性包括非root执行、mlock保护秘密、seccomp和无新特权。

来源Hacker News AI作者: garou

Nenya是一个用Go编写的轻量级AI API网关,旨在作为AI编码客户端(如Cursor、OpenCode、Aider等)与上游LLM提供商之间的透明中间件。它提供了安全编辑、上下文管理、代理路由和MCP工具集成等功能,所有操作均通过透明的SSE流进行。该项目遵循零依赖原则,仅使用Go标准库,确保轻量和可靠。

Nenya支持任何实现OpenAI或Anthropic Chat Completions API的提供商,并内置了针对23个提供商的专用适配器,处理它们之间的格式差异。它通过配置驱动的提供商注册表实现动态模型发现,支持三层次模型解析:配置覆盖 > 发现模型 > 静态注册表。此外,Nenya还提供了代理回退链,支持轮询或顺序回退,并带有断路器和自动故障转移。其延迟感知路由可根据历史中位响应时间自动排序目标,并添加±5%的抖动以防止惊群效应。

在安全和隐私方面,Nenya实施了多层次保护。它包含始终开启的Tier-0正则表达式秘密过滤器,用于编辑AWS密钥、GitHub令牌和密码等敏感信息。三层次内容管道包括可插拔拦截器链:正则表达式编辑、熵过滤、TF-IDF相关性评分和引擎摘要。此外,Nenya还支持上下文窗口压缩、陈旧工具调用修剪和思考块修剪。输入验证包括严格的请求体限制、JSON清理和头部过滤。即使管道失败,系统也会优雅降级,确保请求不会被阻止。

角色基础访问控制(RBAC)允许根据API密钥角色(管理员、用户、只读)限制对特定代理和端点的访问。安全内存使用mlock保护令牌存储,并在初始化后将其设为只读,防止核心转储。部署安全方面,Nenya默认以非root用户运行(UID 65532),具有只读文件系统、seccomp、无新特权,并通过systemd凭据或容器挂载加载秘密,从不写入磁盘。

Nenya还集成了MCP(Model Context Protocol)工具,支持自动工具发现、多轮执行和自动保存。它能够从MCP服务器预取相关内容,并持久化助手响应到MCP内存服务器。

该项目提供了多种快速启动方式,包括Podman、Homebrew、包管理器(Debian、Fedora、Arch、Nix)以及容器和Kubernetes部署。运行时配置通过环境变量进行,支持热重载和零停机重启。API端点包括标准的OpenAI和Anthropic兼容接口,以及健康检查、统计和Prometheus指标端点。

Nenya的架构文档、配置参考、部署指南等均可在GitHub仓库中找到。该项目采用Apache 2.0许可证。