一个跑在终端里的 AI 编程 Agent:ReAct 主循环 + 计划模式 + 分级权限 + 分层上下文 + 长期记忆 + 多 Agent 协作 + 无头评测。
纯 Python 实现,UI 基于 Textual,模型侧同时适配 Anthropic 协议与 OpenAI 兼容协议,可接 DeepSeek / MiniMax / Ollama 等任意后端。
- Agent 主循环:流式输出、并行预执行工具、自动重试与上下文压缩(compact)触发链
- 计划模式:先规划后执行,产出
.riceagent/plans计划文件并约束写权限边界 - 分级权限:
default / acceptEdits / plan / bypassPermissions四档 + 危险命令拦截 + 路径沙箱 + 规则引擎 - 分层上下文:外置存储、摘要压缩、优先级裁剪三管齐下;
ContentReplacementState冻结决策以保住 prompt cache 断点 - 知识型 Memory + 程序型 Skill:执行后自动沉淀,向量(BGE) + BM25 混合召回(RRF 融合),跨会话复用;Skill 支持安装与按需加载
- 子 Agent 与团队:
AgentTool派生、共享任务队列认领、in-process / tmux / iTerm2 三种 teammate 后端、Lead 邮箱通信 - Git Worktree 工作流:隔离改动、合并、清理、PR 前置检查
- Hooks 引擎:
pre_tool_use等事件上挂载命令,支持条件表达式与拒绝(fail-closed) - MCP:接入外部 MCP server(含
mcp__前缀工具名识别),并自带一个评审 MCP server - 评审机器人:模块地图 → 模块身份 → 模块记忆 → MR diff 评审与自动修复(
/review) - 可回溯:文件历史快照 +
/rewind三种回退 - 两种运行形态:TUI 交互;
-p无头模式(text/stream-jsonNDJSON);--remote起 WebSocket 服务 + 浏览器 UI
# 需要 Python >= 3.11 与 uv
uv sync # 依赖 + 可选检索依赖(chromadb / sentence-transformers / jieba / rank_bm25)
uv run riceagent # 启动 TUI在工作目录放 .riceagent/config.yaml(或 ~/.riceagent/config.yaml),该文件已在 .gitignore 中,请勿提交密钥:
providers:
- name: DeepSeek Flash
protocol: anthropic # anthropic | openai-compat
base_url: https://api.deepseek.com/anthropic
api_key: ${DEEPSEEK_API_KEY} # 支持环境变量注入
model: deepseek-chat
thinking: true
permission_mode: default
mcp_servers:
- name: context7
command: npx
args: ["-y", "@upstash/context7-mcp"]riceagent # 交互式 TUI
riceagent --mode plan # 以计划模式启动
riceagent -p "修掉这个报错" # 无头执行,打印结果
riceagent -p "..." --output-format stream-json # NDJSON 事件流,便于程序化接入
riceagent --remote # 浏览器 UI:http://localhost:18888TUI 内常用斜杠命令:/help /status /plan /permission /sandbox /compact /clear /rewind /memory /skill /mcp /tasks /trace /worktree /review /session
uv run pytest -q # 750+ 用例benchmarks/ 下是一套自建的可复现评测体系(任务集在 benchmarks/tasks,跑批与指标在 benchmarks/harness):
uv run python benchmarks/harness/runner.py # 见 benchmarks/README.md 与 SPEC.md评测口径、消融实验与结论记录在 benchmarks/ANALYSIS.md。
riceagent/
agent.py ReAct 主循环与事件
app.py Textual TUI
client.py Anthropic / OpenAI 兼容协议客户端与上下文窗口解析
conversation.py 消息编排 context/ 压缩与裁剪
memory/ 自动沉淀、召回、融合、整理 skills/ 技能加载与执行
permissions/ 模式、危险命令、路径沙箱、规则引擎 sandbox/ bwrap / seatbelt
teams/ 多 Agent 编排(任务认领、邮箱、多后端 spawn)
tools/ 工具注册表与内置工具
worktree/ Git worktree 生命周期与合并
review/ 评审机器人(模块地图、记忆、门禁、MCP server)
mcp/ MCP 客户端管理
commands/ 斜杠命令解析与处理器
tests/ 单元测试
benchmarks/ 任务集 + 无头评测 + 消融分析
scripts/ 辅助脚本
更多设计细节见 RICEAGENT.md 与 评审机器人设计.md。