# MrBean **Repository Path**: dzyuan/mr-bean ## Basic Information - **Project Name**: MrBean - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-21 - **Last Updated**: 2026-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mr-bean **长时运行 AI Agent** — Rust 编写,Ollama 后端,支持 TUI 交互、会话持久化、工具调用、三层记忆系统、子任务控制、Web 控制面板和 Docker 部署。 ## 截图 ``` ┌──────────────────────────────────────────────┐ │ mr-bean Agent ─ session:90ac6f4e │ ├──────────────────────────────────────────────┤ │ You: Hello! │ │ Agent: Hi! How can I assist you today? │ │ You: 帮我写一个 hello world 到 test.txt │ │ Agent: 已经写好了,内容如下: │ │ hello world │ │ Budget: 89 / 90 remaining │ ├──────────────────────────────────────────────┤ │ ┌──────────── Input ────────────────┐ │ │ │ 继续刚才的工作... │ │ │ └───────────────────────────────────┘ │ │ Esc:Quit │ Enter:Send │ PgUp/PgDn:Scroll │ └──────────────────────────────────────────────┘ ``` ## 快速开始 ### 前提 - Rust 1.83+ - Ollama 运行中(`localhost:11434`),模型建议 `qwen3:8b` 或 `llama3` ### 构建并运行 ```powershell cd mr-bean powershell -ExecutionPolicy Bypass -File build.ps1 target\debug\mr-bean.exe -m qwen3:8b ``` ### 命令 | 命令 | 说明 | |------|------| | `-m ` | 指定模型 | | `-s ` | 恢复之前的会话 | | `-p ` | 指定 provider(默认 ollama) | | `sessions` | 列出所有会话 | | `show ` | 查看会话详情 | | `rm ` | 删除会话 | TUI 内快捷键: | 快捷键 | 功能 | |--------|------| | `Enter` | 发送消息 | | `Esc` | 退出 | | `PgUp/PgDn` | 滚动聊天历史 | | `Ctrl+U` | 清空输入 | | `Ctrl+W` | 删除前一个单词 | | `→/←/Home/End` | 输入框内光标移动 | ## 架构 ``` 37 个 Rust 源文件 ├── Core AgentCore 主循环 / Provider / ToolEngine / Session ├── TUI ratatui 终端界面(CJK 兼容) ├── Memory Working → Episodic → Semantic 三层记忆 ├── Control TaskController / SubagentRegistry / DAG ├── Context Hermes 风格上下文压缩引擎 ├── Safety CircuitBreaker / RateLimiter / 注入检测 ├── Metrics Prometheus /metrics + HTTP + WebSocket ├── Frontend React 控制面板(frontend/) ├── Sidecar Python FastAPI 代理(sidecar/) └── Deploy Docker / docker-compose / Grafana ``` ## 配置 首次运行自动在 `~/.mr-bean/config.json` 生成默认配置: ```json { "providers": { "ollama": { "model": "qwen3:8b", "base_url": "http://localhost:11434", "provider_type": "ollama" } }, "default_provider": "ollama", "session_db_path": "~/.mr-bean/sessions.db" } ``` 会话存储路径以 `.db` 结尾时使用 SQLite,否则用 JSON 文件。 ## 开发 ```powershell # 构建(含测试) powershell -ExecutionPolicy Bypass -File build.ps1 # 只运行测试 cargo test # Release 构建 cargo build --release ``` ## 部署 ```bash docker compose up -d # mr-bean: http://localhost:9090 # Grafana: http://localhost:3000 # Sidecar: http://localhost:8000 # Ollama: http://localhost:11434 ``` ## 技术栈 | 层 | 技术 | |----|------| | 语言 | Rust (edition 2021) | | 运行时 | tokio (async) | | TUI | ratatui + crossterm | | HTTP | axum | | 存储 | SQLite (rusqlite) / JSON | | LLM | Ollama (OpenAI 兼容 API) | | 前端 | React + Vite + Tailwindcss | | 可观测性 | Prometheus + Grafana | | 容器 | Docker / docker-compose | ## 许可 MIT