ThirdKeyAI/Symbiont
GitHub: ThirdKeyAI/Symbiont
面向生产环境的 Rust 原生 AI Agent 安全治理运行时,通过零信任架构、Cedar 策略引擎和密码学审计确保 Agent 执行全程可控可信。
Stars: 37 | Forks: 7
[中文简体](README.zh-cn.md) | [Español](README.es.md) | [Português](README.pt.md) | [日本語](README.ja.md) | [Deutsch](README.de.md)
[](https://github.com/thirdkeyai/symbiont/actions)
[](https://crates.io/crates/symbi)
[](LICENSE
[中文简体](README.zh-cn.md) | [Español](README.es.md) | [Português](README.pt.md) | [日本語](README.ja.md) | [Deutsch](README.de.md)
[](https://github.com/thirdkeyai/symbiont/actions)
[](https://crates.io/crates/symbi)
[](LICENSE)
[](https://docs.symbiont.dev)
**适用于生产环境的策略治理 Agent 运行时。**
Symbiont 是一个 Rust 原生运行时,用于在明确的策略、身份和审计控制下执行 AI Agent、工具和工作流。
大多数 Agent 框架侧重于编排。而 Symbiont 侧重于当 Agent 需要在具有真实风险的 real 环境中运行时会发生什么:不受信任的工具、敏感数据、审批边界、审计要求以及可重复的执行强制措施。
## 为什么选择 Symbiont
AI Agent 做演示很容易,但要建立信任却很难。
一旦 Agent 可以调用工具、访问文件、发送消息或调用外部服务,您需要的就不仅仅是提示和胶水代码。您需要:
* **策略强制执行** 用于控制 Agent 可以做什么 —— 内置 DSL 和 [Cedar](https://www.cedarpolicy.com/) 授权
* **工具验证** 确保执行不是盲目信任 —— 针对MCP工具的 [SchemaPin](https://github.com/ThirdKeyAI/SchemaPin) 密码学验证
* **Agent 身份** 让您知道是谁在操作 —— 基于域锚定的 [AgentPin](https://github.com/ThirdKeyAI/AgentPin) ES256 身份
* **沙箱隔离** 用于处理高风险工作负载 —— 具有资源限制的 Docker 隔离
* **审计追踪** 记录发生了什么以及为什么发生 —— 具有密码学防篡改能力的日志
* **审查工作流** 用于需要批准的操作 —— 推理循环中的人工介入关卡
Symbiont 就是为这一层而构建的。
## 快速入门
### 前置条件
* Docker(推荐)或 Rust 1.82+
* 无需外部向量数据库(内嵌 LanceDB;在规模化部署中可选 Qdrant)
### 使用 Docker 运行
```
# 启动 runtime(API 在 :8080,HTTP input 在 :8081)
docker run --rm -p 8080:8080 -p 8081:8081 ghcr.io/thirdkeyai/symbi:latest up
# 仅运行 MCP server
docker run --rm -p 8080:8080 ghcr.io/thirdkeyai/symbi:latest mcp
# 解析 agent DSL 文件
docker run --rm -v $(pwd):/workspace ghcr.io/thirdkeyai/symbi:latest dsl parse /workspace/agent.dsl
```
### 从源码构建
```
cargo build --release
./target/release/symbi --help
# 运行 runtime
cargo run -- up
# 交互式 REPL
cargo run -- repl
```
## 工作原理
Symbiont 将 Agent 意图与执行权限分离:
1. **Agent 提议** 通过 ORGA 推理循环(Observe-Reason-Gate-Act)发起操作
2. **运行时评估** 根据策略、身份和信任检查对每个操作进行评估
3. **策略决定** —— 允许的操作将被执行;拒绝的操作将被阻止或路由以进行审批
4. **一切皆被记录** —— 为每个决策提供防篡改的审计追踪
这意味着模型输出永远不会被视为执行权限。运行时控制着实际发生的事情。
### 示例:不受信任的工具被策略阻止
Agent 尝试调用未经验证的 MCP 工具。运行时会:
1. 检查 SchemaPin 验证状态 —— 工具签名缺失或无效
2. 评估 Cedar 策略 —— `forbid(action == Action::"tool_call") when { !resource.verified }`
3. 阻止执行并记录包含完整上下文的拒绝信息
4. (可选)路由给操作员进行手动批准
无需更改代码。策略即控制执行。
## DSL 示例
```
metadata {
version = "1.0.0"
author = "Your Name"
description = "Data analysis agent"
}
agent analyze_data(input: DataSet) -> Result {
capabilities = ["data_analysis", "visualization"]
policy data_privacy {
allow: read(input) if input.anonymized == true
deny: store(input) if input.contains_pii == true
audit: all_operations
}
with memory = "persistent", requires = "approval" {
if (llm_check_safety(input)) {
result = analyze(input);
return result;
} else {
return reject("Safety check failed");
}
}
}
```
## 核心功能
| 功能 | 作用 |
|-----------|-------------|
| **Cedar 策略引擎** | 针对Agent 操作、工具调用和资源访问的细粒度授权 |
| **SchemaPin 验证** | 在执行前对 MCP 工具 schema 进行密码学验证 |
| **AgentPin 身份** | 面向Agent和计划任务的域锚定 ES256 身份 |
| **ORGA 推理循环** | 通过类型状态强制执行的 Observe-Reason-Gate-Act 循环,带有策略关卡和熔断器 |
| **沙箱隔离** | 针对不受信任的工作负载提供具有资源限制的基于 Docker 的隔离 |
| **审计日志** | 为每个策略决策提供具有结构化记录的防篡改日志 |
| **ClawHavoc 扫描** | 涵盖 10 种攻击类别的 40 条规则,用于技能/工具内容分析 |
| **密钥管理** | 集成 Vault/OpenBao,使用 AES-256-GCM 加密存储,按 Agent 划分作用域 |
| **Cron 调度** | 基于 SQLite 的调度器,具备抖动控制、并发保护和死信队列 |
| **持久化记忆** | 基于Markdown的Agent记忆,支持事实提取、过程记录和压缩 |
| **RAG 引擎** | 通过 LanceDB(内嵌)或 Qdrant(规模化)进行混合语义与关键字搜索 |
| **MCP 集成** | 原生支持模型上下文协议 (Model Context Protocol) 及受治理的工具访问 |
| **Webhook 验证** | HMAC-SHA256 和 JWT 验证,并提供 GitHub、Stripe 和 Slack 预设 |
| **分发路由** | 将 Agent 输出路由至 webhook、Slack、电子邮件或自定义渠道 |
| **指标与遥测** | OTLP 导出,带有用于推理循环的 OpenTelemetry 追踪 span |
| **HTTP 安全** | 仅限回环绑定、CORS 白名单、JWT EdDSA 验证、按Agent分配的 API 密钥 |
| **AI 助手插件** | 适用于 [Claude Code](https://github.com/thirdkeyai/symbi-claude-code) 和 [Gemini CLI](https://github.com/thirdkeyai/symbi-gemini-cli) 的治理插件 |
性能:策略评估 <1ms,ECDSA P-256 验证 <5ms,10k Agent 调度的 CPU 开销 <2%。详见 [基准测试](crates/runtime/benches/performance_claims.rs) 和 [阈值测试](crates/runtime/tests/performance_claims.rs)。
## 安全模型
Symbiont 的设计围绕着一个简单的原则:**模型输出永远不应被信任为执行权限。**
操作流经运行时控制:
* **零信任** —— 默认情况下所有 Agent 输入均不受信任
* **策略检查** —— 每次工具调用和资源访问前均进行 Cedar 授权
* **工具验证** —— 对工具 schema 进行 SchemaPin 密码学验证
* **沙箱边界** —— 针对不受信任的执行提供 Docker 隔离
* **操作员批准** —— 针对敏感操作提供人工介入关卡
* **密钥控制** —— Vault/OpenBao 后端、加密的本地存储、Agent 命名空间
* **审计日志** —— 为每个决策提供具有密码学防篡改能力的记录
如果您正在执行不受信任的代码或高风险工具,请不要依赖脆弱的本地执行模型作为您唯一的边界。请参阅 [`SECURITY.md`](SECURITY.md) 和 [安全模型文档](https://docs.symbiont.dev/security-model)。
## 工作区
| Crate | 描述 |
|-------|-------------|
| `symbi` | 统一的 CLI 二进制文件 |
| `symbi-runtime` | 核心 Agent 运行时和执行引擎 |
| `symbi-dsl` | DSL 解析器和评估器 |
| `symbi-channel-adapter` | Slack/Teams/Mattermost 适配器 |
| `repl-core` / `repl-proto` / `repl-cli` | 交互式 REPL 和 JSON-RPC 服务器 |
| `repl-lsp` | Language Server Protocol 支持 |
| `symbi-a2ui` | 管理面板 (Lit/TypeScript, alpha) |
治理插件:[`symbi-claude-code`](https://github.com/thirdkeyai/symbi-claude-code) | [`symbi-gemini-cli`](https://github.com/thirdkeyai/symbi-gemini-cli)
## 文档
* [入门指南](https://docs.symbiont.dev/getting-started)
* [安全模型](https://docs.symbiont.dev/security-model)
* [运行时架构](https://docs.symbiont.dev/runtime-architecture)
* [推理循环指南](https://docs.symbiont.dev/reasoning-loop)
* [DSL 指南](https://docs.symbiont.dev/dsl-guide)
* [API 参考](https://docs.symbiont.dev/api-reference)
* [高级推理原语](https://docs.symbiont.dev/orga-adaptive)
如果您正在评估 Symbiont 用于生产环境,请从安全模型和入门指南文档开始。
## 许可证
* **社区版** (Apache 2.0):核心运行时、DSL、ORGA 推理循环、Cedar 策略引擎、SchemaPin/AgentPin 验证、Docker 沙箱、持久化记忆、Cron 调度、MCP 集成、RAG (LanceDB)、审计日志、Webhook 验证、ClawHavoc 技能扫描以及所有 CLI/REPL 工具。
* **企业版** (商业许可证):多层沙箱 (gVisor, Firecracker, E2B)、带有合规性导出 (HIPAA, SOX, PCI-DSS) 的密码学审计追踪、AI 驱动的工具审查和威胁检测、加密的多 Agent 协作、实时监控仪表盘以及专属支持。
联系 [ThirdKey](https://thirdkey.ai) 获取企业版授权。
*同一个 Agent,安全的运行时。*
标签:AgentPin, AI Agent运行时, AI代理框架, AI安全, AI风险控制, Cedar策略授权, Chat Copilot, CISA项目, Docker隔离, LLM代理, MCP工具验证, PE 加载器, Rust语言, SchemaPin, Streamlit, Symbiont Trust Stack, wasm, 人工审批流程, 企业级AI, 加密审计日志, 可信赖AI, 可视化界面, 工作流引擎, 沙箱隔离, 用户代理, 策略即代码, 网络安全, 聊天机器人安全, 访问控制, 请求拦截, 通知系统, 防篡改日志, 隐私保护, 零信任安全