alfred-os/AlfredOS
GitHub: alfred-os/AlfredOS
AlfredOS 是一个开源、自托管的 AI 代理操作系统,用于运行和管理多个安全加固的 AI 角色,实现持久化协作与自动化任务。
Stars: 3 | Forks: 0
# AlfredOS
[](https://discord.gg/HeNwaBhJfU)
**状态:** 预实现阶段。设计文档在 [`PRD.md`](./PRD.md);AI 代理在该仓库中工作的操作手册位于 [`.rulesync/rules/CLAUDE.md`](./.rulesync/rules/CLAUDE.md)。
## 什么是 AlfredOS?
AlfredOS 是一个长期运行的代理运行时,它托管 AI **角色(personas)**——带有特定目标的专用代理——并允许它们:
- 跨可插拔平台与用户对话(MVP 阶段支持 Discord + Telegram + TUI)。
- 按用户共享多层记忆(工作记忆、情景记忆、语义记忆、向量记忆、知识图谱),支持自动保存和自动回忆。
- 相互协调,带有明确的安全护栏(循环检测、预算上限、审计可视化)。
- 在审查员把关的变更流程下扩展新技能——绝不自我验证。
- 作为一个有边界限制的自主 OODA 循环持续运行,带有完整审计轨迹和一键回滚。
AlfredOS 从第一天起就对提示注入、凭证泄露和 PII 泄露进行了加固。信任等级、双 LLM 拆分、基于能力门控的工具层、出站 DLP、秘密代理、蜜罐令牌和跨提供商的审查代理都是 MVP 的一部分——而非后续添加。
**Alfred**(不带 "OS")是默认角色的名称——首席管家——默认启用。专业角色(Lucius、Oracle、Diana)作为示例捆绑提供;操作员可按需启用它们。
## 快速开始
```
git clone https://github.com/alfred-os/AlfredOS
cd AlfredOS
bin/alfred-setup.sh # macOS/Linux; on Windows, run inside WSL
docker compose up -d
alfred user add --authorization operator --name "Your Name" # one-time
alfred chat # start a TUI conversation
```
### 启用 Discord(开发者模式说明)
Slice 2 提供仅支持 DM 的 Discord 适配器。全新部署的操作员工作流:
1. **在 Discord 开发者门户中创建一个机器人。** 访问
,创建一个新的应用程序,然后在其下创建一个 Bot 用户。
2. **启用消息内容网关意图。** 机器人设置 → 特权网关意图 → 开启 **Message Content**。不开启此项,适配器会认为每个 DM 都为空内容,从而无法到达协调器。
3. **复制机器人令牌。** 机器人设置 → 重置令牌 → 复制。
4. **将令牌写入 `~/.config/alfred/secrets.toml`。** 设置脚本已用 `chmod 600` 创建了该文件;添加:
discord_bot_token = "YOUR-TOKEN-HERE"
5. **将机器人以 `bot` 作用域邀请到服务器。** Slice 2 仅读取 DM;你尚不需要任何公会消息权限。
6. **将你的 Discord 用户绑定到操作员身份。** 在 Discord 中:设置 → 高级 → 开发者模式 → 右键点击你的用户 → 复制 ID。然后在主机上运行:
alfred user bind --slug <你的操作员slug> --platform discord --platform-id
设置脚本在最后一步提供了一个交互式提示。
7. **验证网关是否可达。** 运行:
docker compose run --rm alfred-discord verify
退出码:`0` 正常 / `1` 上游问题 / `2` 配置问题(令牌错误、意图未开启) / `3` 登录失败 / `4` 超时 / `130` SIGINT。错误信息会指明修复范围。
8. **将适配器作为守护进程启动。** 一旦 `verify` 返回 0:
docker compose up -d alfred-discord
从你的 Discord 账号向机器人发送一条 DM;往返消息将经过协调器,同时审计、预算、情景记忆和 DLP 均就绪。
### 秘密文件——权限传播矩阵
`~/.config/alfred/secrets.toml` 在 Slice 2 和 Slice 3 中为明文。
[ADR-0012](docs/adr/0012-file-backed-secret-broker.md) 将此记录为已知风险;秘密管理强化(容器化秘密代理)将在 Slice 4 中交付,详见
[ADR-0015](docs/adr/0015-slice4-containerised-quarantined-llm.md)。
**在此期间:**
- **macOS:** Docker Desktop 将主机文件的 uid/gid 直接映射到容器内的 uid/gid;主机上的 `chmod 600` 也会在容器内生效。设置脚本运行 `export UID GID`,因为 macOS 的 bash 3.2 默认不导出 `UID`。
- **Linux:** `docker-compose.yaml` 中的 `user: "${UID:-1000}:${GID:-1000}"` 解析为操作员的真实 uid/gid;绑定挂载的 `chmod 600` 由内核强制执行,与主机完全一致。
- **WSL2:** 与 Linux 相同,但需注意:从 PowerShell(而非 `wsl`)运行 `docker compose` 会看到不同的 uid 命名空间。请在 WSL 运行设置脚本以保持权限一致。
**备份向量提醒:** 如果你使用 `restic`、`borg` 或类似工具备份 `~/.config`,请 **排除 `~/.config/alfred/secrets.toml`**,否则备份中会包含明文的 API 密钥和 Discord 机器人令牌。容器化秘密代理将在 Slice 4 中交付;在此之前,由操作员负责排除。
## 配置
面向操作员的环境变量存放在 [`.env.example`](./.env.example);将其复制为 `.env` 并编辑。Slice 3 信任边界部分记录了插件启动器、能力门控和监控器的旋钮(沙箱策略目录、插件 UID、性能门控强制运行、redis maxmemory、state-git 路径)。
### 门控选择
能力门控有两个实现:`RealGate`(基于 Postgres 的实装)和 `DevGate`(故障开放存根,仅用于开发)。选择实际上是 **DevGate 的 opt-out**:只有 `ALFRED_ENV=development`(或未设置/为空/为空白,此时引导程序短路到 DevGate)会选择存根。其他任何值——包括拼写错误——都会回退到 `RealGate`:
| `ALFRED_ENV` 值 | 构建的门控 |
| --- | --- |
| `development` | `DevGate`(故障开放存根) |
| 未设置、为空或仅空白 | `DevGate` |
| 其他(`production`、`staging`、拼写错误的 `prdouction` 等) | `RealGate` |
这意味着生产部署中的拼写错误会安全地回退到 `RealGate`。匹配的启动日志事件(`bootstrap.gate_selected`,INFO 级别)携带引导程序读取的确切 env 值,因此即使操作员设置了 `ALFRED_ENV=prod`(而非 `production`),也可以确认最终使用的是哪个门控。插件操作手册([`docs/runbooks/slice-3-plugins.md`](./docs/runbooks/slice-3-plugins.md))详细介绍了完整的 Slice 3 部署,包括启动器和监控器。
## 设计
请参阅 [`PRD.md`](./PRD.md) 获取完整设计,包括:
- 架构概览
- 七大能力支柱 + 角色系统
- 安全模型和提示注入防御
- 记忆模型
- 审查员门控的自我改进
- 令牌缓存和成本控制
- 部署与自我修复
- MVP 范围与路线图
## 安全
如果您发现了安全漏洞,**请勿公开提交 issue**。请使用 [GitHub 安全通告](https://github.com/alfred-os/AlfredOS/security/advisories/new) 进行私下报告。详情见 [`SECURITY.md`](./SECURITY.md)。
## 许可证
AlfredOS 采用 [Apache License, Version 2.0](./LICENSE) 许可。完整的条款请参见 [LICENSE](./LICENSE) 和 [NOTICE](./NOTICE) 文件。
插件通过 MCP 子进程边界(stdio / HTTP)与核心通信,不被视为衍生作品;插件作者可以自行选择其作品的许可证。
标签:AI代理系统, C2, Discord集成, Docker, GitHub Advanced Security, LLM, NIDS, OODA循环, PII保护, Telegram集成, TUI, Unmanaged PE, 凭证保护, 出站DLP, 双LLM架构, 可信层, 向量记忆, 回滚, 多层记忆, 多智能体协作, 多用户, 多角色, 安全加固, 安全防御评估, 审查代理, 审计轨迹, 容器化, 对话平台集成, 工作记忆, 开发模式, 开源, 循环检测, 情境记忆, 技能系统, 提示注入防护, 搜索引擎查询, 日志审计, 智能体操作系统, 服务器监控, 测试用例, 秘密代理, 能力门控工具层, 自主智能体, 自托管, 自扩展, 蜜罐令牌, 语义记忆, 请求拦截, 调试插件, 预算限制