Montanalabs/incident-bot

GitHub: Montanalabs/incident-bot

基于 Eidos 注入安全语言构建的事件响应机器人示例,演示如何利用封闭类型系统在信任边界处结构性地拒绝 prompt injection 攻击。

Stars: 0 | Forks: 0

[![使用 Eidos 构建](https://img.shields.io/badge/built%20with-Eidos-0f9d8c?labelColor=1a1a2e)](https://github.com/Montanalabs/eidos-lang) # 事件响应机器人 不受信任的输入是一个寻呼机警报;它只能成为封闭类型(closed type)上的一组固定决策中的一种,绝不能作为工具参数。被注入的指令无法在该封闭类型中表示,因此它会被拒绝——在编译时由 `check` 证明,并在运行时由 `extract` 域检查再次进行限制。 - **不受信任的输入:** `fetch` —— 一个寻呼机警报 - **封闭类型:** `type Decision = Mitigate(Runbook) | Page | Ack`,其中 `Runbook` 是封闭的 - **接收端 / 能力:** `grant mitigate irreversible` → `commit { mitigate(d) }` - **后果维度:** 信任,可逆性 ## 运行演示 ``` examples/apps/incident-bot/demo.sh ``` 安全代理证明 `SAFE`,在一个良性输入上运行,并且**在信任边界处拒绝注入 payload(退出状态 3)**。易受攻击的版本证明 `UNSAFE` —— 它永远无法编译成可运行的代理。 ## 文件 - `incident-bot_safe.eide` —— 正确的设计。 - `incident-bot_unsafe.eide` —— 诱人但错误的版本(模型必须学会拒绝的反面示例)。 - `eidos.toml` —— 项目清单(每个应用都是一个独立的 Eidos 项目)。 Eidos 示例语料库的一部分 —— 200 个独立的、防止注入的项目。使用 Eidos 构建,这是一种其类型系统从结构上杜绝了 prompt injection 的语言。将 ./demo.sh 与 Eidos 工具链一起放在您的 PATH 上运行。
标签:Cutter