关于 Trentina
Trentina 是连接 AI Agent 与 MCP 服务、网页、消息平台及 LLM 提供商的安全网关。它通过分层提示注入防护、策略检查和按 Agent 配置来控制流量,并压缩工具及响应上下文。
主要功能
- 01三层提示注入检查
- 02按策略检查外发调用
- 03工具过滤和 Schema 压缩
- 04按 Agent 配置独立配置和凭证
- 05为网页客户端提供 OAuth 授权
- 06审计和防护监控
适用场景
- 01检查进入 Agent 的不可信内容
- 02限制工具并验证参数和结果
- 03为不同 Agent 配置独立后端和凭证
- 04通过 OAuth 授权连接网页客户端
MCP 相关
为 MCP 客户端按配置文件提供网关端点,将请求路由到已配置的后端并应用工具策略及防护。也可提供 Trentina 自有的内容工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
13收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要获取的 URL(http:// 或 https://) |
详细介绍
Trentina
Trentina 位于你的 AI Agent 与它们接触的一切之间:MCP 服务、网络、Matrix、大模型提供商和告警。它会在每个入口阻止提示词注入,缩减进入上下文窗口的内容,并强制执行 Agent 无法绕过的策略。它的名字源自 Ragusa 在 1377 年实行的 trentino 制度:船只需在近海停泊三十天,之后才能有人上岸。贸易照常流通,危险之物则无法进入。
为什么选择 Trentina
-
安全性。 不可信内容在每个入口都会经过三个相互独立的层:L1 确定性检查、L2 本地分类器、L3 无工具的隔离大模型。受保护的执行会根据你用英语编写的规则判断外发内容。哪些内容受到防护、哪些不受防护,请参阅覆盖范围。 防御管线 · 基准测试 · OWASP 映射
-
节省令牌。 隐藏工具、短名称、精简后的架构、压缩后的描述和精简后的响应:在生产流量中,响应字节数减少 52%。压缩 · 工具筛选
-
确定性。 参数防护、响应防护和允许列表由网关评估,因此即使 Agent 无视指令,也会在后端收到调用之前被拦截。 参数防护 · 响应防护
-
身份验证。 对于 claude.ai 等 Web 客户端,Trentina 充当 OAuth 授权服务器:可按配置文件选择动态客户端注册、已配置的客户端、外部签发方或静态 bearer。 身份验证
-
架构灵活性。 个人助手、编码 Agent 和 Agent 群组可各自使用独立配置文件,并配置各自的后端、防御模式和凭据。配置文件 · 运维人员指南
快速开始
# The container image is the distribution: the L2 model, the parsers and
# their process isolation ship in it. There is no PyPI package.
podman run -d -p 127.0.0.1:8019:8019 \
-v ./profiles.yaml:/config/profiles.yaml:ro,Z \
-e TRENTINA_GATEWAY_ENABLED=true \
-e TRENTINA_PROFILES_PATH=/config/profiles.yaml \
-e TRENTINA_PROFILE_MYAGENT_TOKEN=your-token \
-e OPENROUTER_API_KEY=your-key -e TRENTINA_MODEL_PROVIDER=openrouter \
quay.io/crunchtools/trentina \
--transport streamable-http --host 0.0.0.0 --port 8019
L3 需要一个大模型提供商的密钥。Gemini、OpenRouter、OpenAI、Anthropic 或 Ollama 均可。最简的 profiles.yaml:
profiles:
myagent:
auth:
bearer_token_env: TRENTINA_PROFILE_MYAGENT_TOKEN
backends:
web:
url: "internal://web" # Trentina's own content tools
tools_allow: ["*"]
gmail:
url: "http://gws-personal:8000/mcp"
tools_allow: # it may read and draft; you send
- search_gmail_messages
- get_gmail_message_content
- draft_gmail_message
defense:
enforcement: block
然后将 Claude Code 指向它:
{
"mcpServers": {
"trentina": {
"type": "streamable-http",
"url": "http://localhost:8019/gateway/myagent/mcp",
"headers": { "Authorization": "Bearer your-token" }
}
}
}
文档
| 文档 | 说明 |
|---|---|
| MCP Gateway | 每个配置文件一个端点:路由、工具名称、断路器 |
| Per-Agent Profiles | 配置文件架构、模式、精简、角色、多 Agent 设置 |
| Operator Profile | 安装并运行网关的 Agent |
| Configuration | 所有环境变量 |
| Authentication | 静态 bearer、通过 DCR 或预配置客户端实现的 OAuth 代理、委托颁发者 |
| Backend OAuth | 每个配置文件使用自己的授权凭据登录仅支持 OAuth 的后端 |
| Defense Pipeline | L1/L2/L3、模式、覆盖范围和已知缺口 |
| Benchmark | 各层及各 L3 提供商的检测率 |
| Corpora | 防御效果评估所用的所有攻击集和良性数据集 |
| Prompt Packs | 针对各模型调优的裁判提示词 |
| Content Tools | fetch、read、dir、content、search,含出口防护和文件访问限制 |
| Blocklist | 被拒绝的来源将持续被拒绝 |
| Tool Filtering | 允许列表、拒绝列表、glob 模式 |
| Tool Pinning | 新增或变更的工具在获批前会被暂缓使用 |
| Tool Discovery | 为不支持工具搜索的客户端提供查找/调用或按会话加载功能 |
| Description Compression | 描述压缩和架构精简 |
| Token Routing | 响应精简(已实现);委托(提议中) |
| Guarded Execution | 裁判根据纯英文策略检查对列出工具的调用 |
| Parameter Guards | 按工具验证参数 |
| Response Guards | 按工具验证结果 |
| Audit Log | 调用记录、统计、监控 |
| LLM Key Proxying | 将提供商密钥保留在网关内部 |
| Matrix Bridge | E2EE 终止和双向裁判 |
| Channel Bridges | 每个 Agent 可连接多个上游(RCS、……)及桥接线路协议 |
| Matrix Reverse Proxy | 为隔离网络中的 Agent 提供 Matrix |
| Client Egress | 为 Agent 自身客户端提供至列出主机的 CONNECT 隧道 |
| Git Transport | 克隆、获取并推送至列出的存储库和分支 |
| HTTP(S) Egress | 审查 Agent 的出站请求,并以指定目标为源重新发起请求 |
| Deployment Hardening | 容器标志、密钥、出口、启动检查 |
| Cockpit Plugin | 实时防御流水线仪表板 |
| Internal: Gateway Design | 原始设计文档,供贡献者参考 |
开发
uv sync --all-extras
uv run ruff check src tests
uv run mypy src
uv run pytest -v
容器镜像由 CI 构建,绝不在本地构建;请参阅 CLAUDE.md。演示由
demo.yml 录制;其测试文件位于
docs/demo/。
许可证
AGPL-3.0-or-later
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。