内容
# MIDAS

[](https://github.com/omarkhandji-commits/midas/actions/workflows/ci.yml)
[](https://github.com/omarkhandji-commits/midas/actions/workflows/cross-platform.yml)
[](https://github.com/omarkhandji-commits/midas/actions/workflows/codeql.yml)
[](https://github.com/omarkhandji-commits/midas/actions/workflows/lighthouse.yml)
[](https://github.com/omarkhandji-commits/midas/actions/workflows/a11y.yml)
[](LICENSE)
[](pyproject.toml)
[](#testing)
[](pyproject.toml)
> **演示(15秒):** *即将推出 - 请参阅 [tools/record_demo.md](tools/record_demo.md) 以本地记录它并将其文件放在 `docs/assets/midas-demo.gif` 中。*
本地优先的AI代理,用于审批门控自动化和可验证的LLM工作流。
MIDAS是一个自托管的AI代理,带有本地仪表盘、CLI、签名收据、预算控制、Ollama支持和MCP工具。它帮助您在更改文件、调用服务、发布内容或使用外部工具之前草拟、审查和验证代理操作。
对于非开发者:下载仓库,打开文件夹,然后在Windows上双击 `启动MIDAS.bat`。在macOS上,使用 `启动MIDAS.command`。在Linux上,运行 `./launch-midas.sh`。请参阅 [docs/INSTALL_FOR_EVERYONE.md](docs/INSTALL_FOR_EVERYONE.md)。
在将MIDAS与外部账户、生成内容、自动化或第三方工具一起使用之前,请阅读 [DISCLAIMER.md](DISCLAIMER.md)。
## 适用人群
- 需要本地优先的AI代理且带有仪表盘而不是仅限终端设置的用戶。
- 构建需要审批、收据和预算控制的LLM工作流的开发者。
- 在连接电子邮件、文件、MCP工具或外部API之前需要审计追踪的操作员。
- 测试Ollama、云模型提供商和自托管代理工作流的团队。
## 功能
- 通过有界限的LLM代理循环规划和草拟工作。
- 在哈希链中将每个步骤存储为Ed25519签名的收据。
- 将文件写入、代码执行、电子表格写入、外发发送、Stripe意向、媒体文件和外部MCP调用通过审批队列路由。
- 在代理步骤中保留不受信任的污染,以防止获取的页面、PDF、电子邮件和第三方工具输出成为指令。
- 使用轻量级技能索引,仅在需要时加载 `SKILL.md`。
- 将收据链接到操作员记录的结果,以便稍后审查运行。
## 截图
| 聊天 | 审批 | 证明账本 |
|---|---|---|
|  |  |  |
## 状态
- ✅ **代码门控** — 718个测试,mypy严格(157个文件),ruff,导入检查器合约 `core ↛ flagship`,bandit中等+,ShipVitals `READY p0=0 p1=0`。
- ✅ **机密扫描** — 清洁。
- ⏳ **人工UAT** — 请参阅 [docs/UAT_CHECKLIST.md](docs/UAT_CHECKLIST.md),在首次发布时未签名。
- ⏳ **Lighthouse + axe-core(WCAG 2.2 AA)** — 工作流已连接,首次结果待定 `v0.1.0` 后。
- ⏳ **跨平台** — Linux/macOS/Windows × Python 3.11/3.12 矩阵通过 [跨平台](https://github.com/omarkhandji-commits/midas/actions/workflows/cross-platform.yml) 工作流运行。
- ❌ **独立第三方安全审查** — 尚未执行。在此之前,MIDAS是 *本地优先、审批门控且具有安全默认值*。它 **不** 被描述为“安全”、“认证”或“生产就绪”。
## 用例
- 从本地仪表盘或CLI运行自托管的LLM代理。
- 在审批卡后面草拟文件、媒体计划和代码更改。
- 本地使用Ollama,或使用您自己的API密钥连接云提供商。
- 将MCP工具通过审批工作流和收据账本路由。
- 使用签名收据和独立验证器验证代理活动。
- 在安装或启用额外工具之前检查本地功能。
## 快速入门
### 无终端启动
Windows:
```text
双击:启动 MIDAS.bat
```
macOS:
```text
双击:启动 MIDAS.command
```
Linux:
```bash
chmod +x launch-midas.sh
./launch-midas.sh
```
启动器创建一个私有 `.venv`,安装MIDAS,准备本地状态,打开仪表盘,并在浏览器未打开时打印救援登录链接。
### 开发者启动
```bash
git clone https://github.com/omarkhandji-commits/midas.git
cd midas
python -m venv .venv
.venv\Scripts\pip install -e ".[llm,web,dev]"
midas init
midas dashboard
```
打开本地仪表盘,连接模型,然后运行一个任务。仪表盘仅限环回,并使用一次性登录令牌。
`midas init` 检测本地Ollama,或接受一个云API密钥:
```bash
midas init # 运行Ollama,不需要密钥
midas init --key sk-... # OpenAI
midas init --key sk-ant-... # Anthropic
midas init --key sk-or-... # OpenRouter
```
## CLI
```bash
midas earn "<niche>" # 扫描、准备、队列
midas capabilities scan # 检测本地工具,无安装
midas capabilities plan "制作带有语音的视频"
midas approvals list
midas approvals approve <id>
midas execute <id>
midas roi
midas outcome record <run_id> "<note>" -m value=<amount>
midas proof export out.html --run-id <run_id>
midas repo-map src/
midas blog-lint path/to/post.md
midas course "topic" --modules 5
midas drain # 队列由于计划发布的帖子
```
作为MCP服务器运行:
```bash
midas mcp serve
```
## 媒体
MIDAS从不静默下载工具。 `midas capabilities scan` 检查 `ffmpeg`、Node/Remotion、Edge TTS、Kokoro、Piper、XTTS/Coqui、NeuTTS、Ollama、Docker/Podman、Git 和 MCP适配器。 `midas capabilities plan "<goal>"` 返回本地/免费路径、设置差距、审批需求、隐私备注、成本备注和备用。
当前媒体工具:
- `image.draft`:离线PNG占位符或选择加入提供商。
- `voice.synthesize`:确定性离线WAV和选择加入提供商钩子。
- `video.script` 和 `video.storyboard`:纯规划工具。
- `remotion.project.draft`:审批门控ZIP,带有最小Remotion项目。
## 安全默认值
- 默认拒绝哨兵策略。
- 审批元数据:风险、预估成本、到期时间、可用时哈希预览。
- 已批准的文件写入和 `code.run` 的漂移检查。
- 按任务、每日、每月、按技能和按角色划分的预算门控。
- 远程技能排队审查;它们不会自动安装。
- 机密信息不会出现在收据、日志、提示、固定装置和截图中。
- 终止开关阻止工具执行。
请参阅 [SECURITY.md](SECURITY.md)、[docs/SECURITY.md](docs/SECURITY.md)、
[docs/THREAT_MODEL.md](docs/THREAT_MODEL.md) 和
[docs/SECURITY_RELEASE_NOTES.md](docs/SECURITY_RELEASE_NOTES.md)。
## 验证收据
```bash
pip install ./tools/verify
midas keys export-public
python -m midas_verify .midas/receipts.jsonl --public-key <hex>
```
将账本中的一个字节翻转并重新运行。验证报告损坏的序列索引。
## 测试
```bash
ruff check .
mypy src
lint-imports
bandit -r src -ll
pytest
midas eval
cd web && npm run lint && npm test && npm run build
python -m build
twine check dist/*
```
ShipVitals用作最终发布准备证据包。它不取代测试、安全审查、Playwright检查或人工审查。
## 项目布局
```text
src/midas/core/ 哨兵、预算熔断器、收据、内存、路由器
src/midas/flagship/ CLI、仪表盘、代理循环、工具、评估套件、MCP
config/ 策略和提供商模板
docs/ 架构、安全、配方、收据规范
tests/ 单元、安全、评估、固定装置
tools/verify/ 独立收据验证器
web/ React仪表盘
```
## 许可证
MIT。 请参阅 [LICENSE](LICENSE)。