rohithkandula19/Ronin
GitHub: rohithkandula19/Ronin
一款提供商无关的终端原生 AI 编程 agent,支持多模型切换、代码读写审批、MCP 集成和多种质量保障工具。
Stars: 1 | Forks: 0
# ronin 🐼
[](LICENSE)
[](CHANGELOG.md)
[](https://www.python.org/downloads/)
[](#-whats-under-the-hood)
[](#-supported-providers)
[](CONTRIBUTING.md)
```
$ curl -sSL https://raw.githubusercontent.com/rohithkandula19/Ronin/main/install.sh | bash
$ ronin # ONE agent: talk · code · generate media · query data
$ ronin code "fix the failing test" # the coding agent
$ ronin "explain @main.py and add tests" # @-mention files inline
```
## 🎬 演示
动画熊猫吉祥物、命令面板和实时 MCP 连线,尽在一图中:

`ronin image "a red panda samurai, neon, flat vector"`:**免费,无需 API key**,直接在终端中生成并显示:

随时使用 [`vhs`](https://github.com/charmbracelet/vhs) 重新生成演示:`brew install vhs && vhs docs/demo/demo.tape`。
## 什么是 `ronin`?
**一扇正门:**输入 **`ronin`**,您将获得一个单体 agent,它能读取、编写和运行代码(每次编辑和 shell 命令都在差异预览和您的批准把关下,读取操作自由运行),生成图像/视频/语音,并查询您连接的数据,所有这些都在一个对话中以纯文本形式完成。它是**与提供商无关的**:同一个 agent 可以在 Claude 或免费开源模型上运行。
它也是**以正确方式构建 agent 的参考实现**。CLI 是七个独立可用的软件包的轻量级封装:agent 模式、evals、记忆、强化和 MCP 集成,由在 CI 中离线运行的 **1,376 个测试**提供支持。(`ronin code` 是专注的编程 agent;`ronin chat` 是对话/媒体界面,当您想要单用途模式时都可以使用。)
## 🛠 `ronin code` · 编程 agent (Claude-Code 风格)
```
ronin code "add a --json flag and update the tests"
ronin code "explain @main.py and fix the bug in @utils.py" # @-mention files
ronin code --plan "refactor the auth module" # plan → approve → execute
ronin code --continue # resume your last session
```
一个能读取、编辑和运行您代码的编程 agent:每次写入和 shell 命令都在差异预览和您的批准把关下(读取操作自由运行)。它还原了 Claude Code 的体验:
- **圆角输入框 + 实时下拉菜单**:在带有幽灵占位符文本的带边框提示符内输入。**`/`** 打开命令菜单(30个带描述的命令),**`@`** 打开实时文件选择器,**`!`** 内联运行 shell 命令,**`#`** 将备注直接存入项目记忆。↑/↓ 历史记录,vi 模式 (`/vim`)。
- **Shift+Tab 模式**:在 **正常 → 自动接受 → 计划** 编辑模式之间循环,并在输入框界面中实时显示。
- **流式 Markdown + 内联工具调用**:回复以渲染后的 Markdown 流式传输;工具活动以 Claude-Code 风格渲染,如 `⏺ Read(file)`,下方带有 `⎿ result`;编辑以语法高亮的差异形式显示,需由您批准。
- **@文件 和 @URL 提及**:输入 `@path` 将文件拉入上下文,或输入 `@https://…` 将网页的可读文本拉入上下文。以文件夹路径作为消息开头可 `cd` 进入该目录。
- **计划模式** (`--plan`) 以只读方式提出步骤,经您批准后,它才会执行。**恢复** (`--continue`) 接续上一次的会话。
- **实时计划追踪器**:多步骤任务显示一个清单 (`✓ / ▶ / ☐`),agent 在工作时会保持其最新状态。
- **工具**:读取 / 写入 / `edit` / `multi_edit` / `glob` / 搜索 / 运行,加上 **`web_search` / `fetch_url`**、**只读 git** (`git_status` / `git_diff` / `git_log`)、**语义代码智能** (通过 LSP 实现 `diagnostics` / `definition` / `references`)、一个 **`task`** 子 agent 外加 **`parallel_task`**(并发的只读扇出)和 **`isolated_task`**(并行* mutating *子 agent,每个都在各自的 git worktree 中,因此编辑不会冲突),以及任何 **MCP** 服务器的工具 (`ronin mcp add …`)。
- **集成**:通过三种方式为 agent 提供新工具,每一种只需一条命令:**本地 MCP** 服务器(24个服务器目录:`ronin mcp install github`)、**远程/托管 MCP** 服务器 (`ronin mcp add-remote …`),或**插件**(200个内置插件,如天气/货币/dns/uuid + 使用 `ronin plugin new` 搭建您自己的插件)。请参阅 **[docs/INTEGRATIONS.md](docs/INTEGRATIONS.md)**。
- **项目记忆**:自动从代码库加载 `RONIN.md` / `CLAUDE.md` / `AGENTS.md`,从而遵循您的约定。
- **30 个斜杠命令** · 跨回合引导:`/help`、`/login`、`/model`、`/models`、`/mcp`、`/agents`、`/compact`、`/context`、`/copy`、`/export`、`/resume`、`/diff`、`/undo`、`/commit`、`/pr`、`/doctor`、`/config` 等。每回合的状态行显示提供商 · 模型 · token · 时间。
## 🧠 支持的提供商
`ronin` 可与任何专有或开源的 LLM 配合使用。**在会话中切换提供商或模型,无需重启:**`/login ` 设置提供商 + 密钥(掩码显示),`/model ` 替换模型。
| Provider | 免费? | 默认模型 | 说明 |
|---|---|---|---|
| **Anthropic** | - | `claude-sonnet-4-6` | 顶级质量;原生 SDK |
| **Gemini** | ✅ 免费层 | `gemini-flash-latest` | 宽裕的免费 RPM;密钥在 aistudio.google.com |
| **Cerebras** | ✅ 免费层 | `gpt-oss-120b` | 极快 / 高吞吐量 |
| **Groq** | ✅ 免费层 | `llama-3.3-70b-versatile` | 免费 30 次请求/分钟 |
| **OpenRouter** | ✅ 免费模型 | `deepseek/deepseek-v4-flash:free` | 一个密钥,多款模型 |
| **Ollama** | ✅ 本地 | `llama3.1` | 在您的机器上运行,无需密钥 |
| **OpenAI** | - | `gpt-4o-mini` | - |
| **Custom** | - | (您指定) | 任何兼容 OpenAI 的端点 |
```
ronin # then, in-session:
/login gemini # paste a free key at the masked prompt
/model gemini-flash-latest # or switch models without re-entering the key
/models # list what the current provider offers
```
ronin 会以退避策略自动重试免费层的速率限制 (429),并往返转换 Gemini thinking-model 签名,因此免费提供商完全可用于真实的多步骤 agent 任务。
## 🚀 超越 Claude Code
因为 ronin 是**与提供商无关的**,它可以做到单一供应商 agent 在结构上做不到的事情:
- **🧩 多模型共识**:`ronin consensus "" -m anthropic,gemini,cerebras` 并行在多个模型上运行*相同*的问题,然后由评判模型综合出一个经过交叉核对的答案(带有“它们在哪里达成一致 / 分歧”的说明)。在困难的设计/审查/决策问题上,比任何单一模型都更稳健。只读。
- **🔁 跨提供商故障转移**:在配置中设置 `failover`,当某个回合在主提供商上遇到速率限制或服务中断时,会**透明地在下一个提供商上继续**,而不是直接失败。(已经流式传输的 token 不会被静默重新回答。)
- **🔒 完全离线模式**:`ronin --offline` 强制使用**本地大脑**(Ollama / 任何 localhost 模型)并**移除所有网络工具**,因此 ronin 可以在飞机上或物理隔离的设备上编写代码,实现**零流量流出**:没有任何数据离开机器。
- **📊 评估驱动的模型大比拼**:`ronin bench -m anthropic,gemini,ollama:llama3.1` 跨模型运行**客观的**评估测试套件(无 LLM 评判),并告诉您**达到您质量标准的最便宜的模型**。用数据而不是凭感觉来选择模型。
- **🥷 Kaizen · 自我锻造 agent**:`ronin kaizen` 在 ronin *自己*的源代码中寻找弱点,在**独立的 git worktree** 中起草修复,并运行**测试套件作为客观的适应度关卡**:只有当测试在那里通过时,差异才会进入您的代码树。一个能改进自己代码的 agent,附带有效的评估证明它有效,且在免费模型上花费 $0。
- **🥋 The Dojo · 竞争模型在您的代码上决斗**:`ronin dojo "" -m anthropic,gemini,cerebras` 让每个模型在**并行的独立 worktree** 中尝试*相同*的更改;由评判者加冕最佳差异。Claude 对决 Gemini 对决 DeepSeek,然后您采用获胜者。
- **⚔️ Ronin Duel · 跨供应商审查**:`ronin duel --against gemini` 将您的差异交给一个**不同**的提供商,由其进行对抗性搜寻以找出问题所在。作者模型看不到自己的盲点;而竞争对手的供应商可以。提供建议,对 CI 友好。
- **🔭 Scout → Strike · 探索时便宜,编辑时强大**:`ronin code --scout ""` 在免费的刀片(blade)上运行只读侦察,然后由强大的刀片仅执行编辑。在关键处提供前沿质量,在其他地方花费 $0。
- **🗡 Bushido · 您的荣誉准则,无处不在**:一个全局的 `~/.ronin/bushido.md` 存储个人长期约定,agent 会将其带入**每个**代码库(代码库自己的备注始终优先于此)。
- **💪 Muscle Memory · 在*您的*代码库上变得更好**:agent 将已解决的工作流程结晶为保存在您代码库中的可重用 `/skill`。使用一周后,ronin 就拥有了一套不断丰富的自定义剧本。
### 🧪 质量关卡 · 客观检查,而非凭感觉
与 `eval` 和 `kaizen` 一样秉持“结果胜过 LLM 评判”的理念,针对您即将发布的代码。每一项都对 CI 友好(失败时退出码非零),且核心算法是纯粹的 + 经过单元测试的。
- **🧬 变异测试 · `ronin mutants `**:覆盖率告诉您哪一行*被执行过*;而这会告诉您您的测试是否*能发现它出错了*。ronin 注入单运算符故障(`==`→`!=`, `and`→`or`, `>`→`>=`, …),对每一个运行您的测试套件,并列出**存活下来**的变异体:每一个存活者都是您的测试会漏掉的 bug。原始文件始终会被恢复。需要绿色的基线。
- **🌐 影响范围 · `ronin radius`**:根据您未提交的更改,ronin 会将 Python 导入图*向后*遍历到(传递性)依赖于您所修改内容的每个模块,并展示该范围内的**测试模块**,以便您只运行重要的内容。`--run` 执行它们。一张风险图 + 一个快速、有针对性的反馈循环。
- **🎲 不稳定测试猎手 · `ronin flake "" -n 7`**:单次运行无法区分不稳定和稳定。ronin 将您的命令运行 N 次,对比失败集合的差异,并对在绿↔红之间翻转的测试进行排名,即那些非确定性的测试,将它们与单纯损坏的测试区分开来。
- **🛡 范围蔓延守卫 · `ronin guard`**:在您提交之前,ronin 会扫描您*添加*的行,查找调试/密钥残留(多余的 `breakpoint()`、`console.log`、未解决的合并标记、AWS 密钥、`TODO/FIXME`),并在使用 `--intent "…"` 时,标记偏离了您设定任务范围的文件。把它放在 pre-commit 钩子中。
此外,在编程 agent 本身上:
- **⌨️ 内联 REPL 中的提前键入**:默认是极简的 Claude-Code 风格内联流程(支持回滚 + 带边框的输入框);您可以在它工作时**输入并将消息排队**。`ronin --tui` 可选择开启全屏面板布局(实时追踪 + 批准模态框),供需要的人使用。
- **⚡ Prompt 缓存** (Anthropic):在每一回合缓存静态系统 + 工具前缀(成本最高可降低 ~90%/速度提升);状态行显示 `⚡N cached`。
- **🧠 语义代码智能**:通过真实的语言服务器(pyright、ts-language-server、gopls、rust-analyzer)提供 `diagnostics` / `definition` / `references`,并具有优雅的“安装 X”回退功能。加上 **`repo_map`** (BM25) 和可选的 **`semantic_search`**(embeddings,本地 Ollama 或 OpenAI)以按含义查找代码,以及**自动上下文工程**,在每一回合预先加载最相关的文件。
- **🌳 并行 mutating 子 agent**:`isolated_task` 同时运行多个编辑 agent,每个都在其**独立的 git worktree** 中,因此并发编辑永远不会冲突;每个都会返回一个可供审查的差异。
- **🖥️ 后台进程**:`run_background` 一个开发服务器 / 测试观察器,tail 它的日志,并继续工作(“观察并修复”);**⏪ checkpoint & rewind** 对整个工作区进行快照并将其回滚;**👁️ vision-in-the-loop** 对 UI 进行截图并分析,以便 agent 能够自我纠正。
- **🛡️ 为免费模型而建**:工具调用可以承受近乎命中的参数名称(自动重新映射),过大的工具结果会被截断,在脱离 Anthropic 时上下文会更早地压缩,澄清问题 (`ask_user`) 避免了错误的猜测,并且每个提供商的密钥意味着切换提供商永远不会覆盖掉密钥。
## 安装
```
# 单行命令:如果缺少 uv 则进行安装,克隆 repo,同步 workspace,
# 并在 ~/.local/bin 中放置一个 'ronin' shim(带有 'ro' 短别名)
curl -sSL https://raw.githubusercontent.com/rohithkandula19/Ronin/main/install.sh | bash
```
固定标签:追加 `-s -- --ref v0.58.0`。PyPI 发布已配置 (`.github/workflows/release.yml`),一旦将 `PYPI_TOKEN` 设置为仓库密钥,就会上线 `pip install ronin-cli`。
若要在安装后支持 Postgres:`(cd ~/.local/share/ronin && uv pip install psycopg2-binary)`。
## 更多界面
ronin 是一个 agent,除了 `code` 之外还有几个专注的入口点:
- **`ronin explain `** · 引导上手任何代码库:文字解释 **+ 自动生成的 Mermaid 架构图**(在 GitHub 上渲染)**+ 可选的语音** (`--speak`)。只读。
- **`ronin eval [--model X]`**:在一系列**真实**沙盒任务(推理、文件写入、codegen、grounded reads、多文件)上为 agent 质量评分。检查**结果**而非 LLM 评判,因此它是确定性的,并且适用于**任何**提供商。使用 `/login` 切换提供商并重新运行,以便在同一标准下进行比较。
- **`ronin briefing`**:创始人运营简报(收入、流失率、支付失败、紧急问题),通过只读 MCP 服务器从 Stripe / Linear / Slack / Notion / Postgres 汇总;带有周环比差异自动保存,`--slack` 可进行发布。
- **`ronin investigate ""`**:跨您的**业务数据和代码**追溯问题的根本原因(例如“9日失败支付激增 → `stripe_webhook.py` 在提交 `a1b2c3` 中被修改”)。
- **`ronin image` / `ronin video` / `ronin say` / `ronin see`** · 终端原生媒体:文本转图像(通过 Pollinations 免费,内联显示)、帧+ffmpeg 视频、操作系统文本转语音,以及对本地图像的视觉问答。
```
ronin explain packages/cli # explain a module + diagram
ronin eval --model gpt-oss-120b # objective score, any provider
ronin image "a red panda hacking at night, neon, flat vector" # free, no API key
```
## 30秒快速入门(无需真实凭据)
```
ronin init --demo # ships fake Stripe + Linear data
ronin ask "what ENG issues are in progress?"
ronin chat # multi-turn REPL
```
演示模式允许您在连接任何真实服务之前试用 CLI。在没有 API key 的情况下,离线关键词路由器会做出回答:设置一个 key 即可获得完整的自然语言响应。
## 真实配置
```
ronin init # interactive - picks provider + service creds
```
或者写入 `.ronin/config.toml`:
```
provider = "anthropic"
model = "claude-sonnet-4-6"
anthropic_api_key = "sk-ant-..."
stripe_api_key = "rk_live_..." # use a Restricted Key
linear_api_key = "lin_api_..."
slack_bot_token = "xoxb-..."
notion_token = "secret_..."
database_url = "postgres://readonly_user:...@host:5432/db" # a read-only role
```
`.ronin/` 已被 gitignored:此文件保存明文凭据。密钥由用户提供,永远不会被提交。
## 命令
| 命令 | 功能说明 |
|---|---|
| **`ronin`** | **统一 agent:在一个对话中进行对话、编写代码、生成媒体、查询数据。** |
| **`ronin code [task]`** | **编程 agent:流式传输、计划追踪器、项目记忆、30 个斜杠命令。** |
| `ronin chat` | 带有短期记忆的对话/媒体 REPL。 |
| `ronin init [--demo]` | 创建一个配置文件(交互式或演示)。 |
| **`ronin eval [--model X]`** | **在客观任务上为 agent 质量评分,适用于任何提供商(无 LLM 评判)。** |
| **`ronin explain `** | **解释代码库:文字 + Mermaid 图表 + 可选语音。** |
| **`ronin investigate ""`** | **跨您的业务数据和代码追查问题的根本原因。** |
| **`ronin review [--base main]`** | **对您的差异进行 AI 代码审查:带严重性标签的发现,只读。** |
| **`ronin fix ""`** | **自主修复直到通过:运行命令、编辑 + 重新运行直到通过。** |
| **`ronin consensus "" -m a,b,c`** | **多模型小组:并行询问多个模型,然后综合出一个交叉核对的答案。** |
| **`ronin bench -m a,b,c`** | **评估驱动的模型大比拼:在客观测试套件上为模型评分,推荐最便宜且通过的模型。** |
| **`ronin --offline`** | **零网络模式:本地大脑 (Ollama) + 移除网络工具;没有任何数据离开机器。** |
| **`ronin briefing`** | **创始人运营简报,自动保存并附带周环比差异。** |
| `ronin briefing --slack <#chan>` / `--history` / `--out file.md` | 发布到 Slack / 趋势表 / 写入 Markdown。 |
| `ronin ask ""` | 一次性:打印答案 + 类型化追踪。 |
| `ronin tui` | 全屏 Textual UI:聊天 + 实时追踪,F1 帮助。 |
| `ronin mcp add ` | 注册一个 MCP 工具服务器(然后在会话中用 `/mcp` 列出)。 |
| `ronin serve --port 8000` | 将 agent 暴露为 HTTP API (`POST /ask`)。 |
| `ronin tools` / `ronin doctor [--check]` | 列出工具 / 健康检查提供商 + 身份验证 + 服务(实时 ping)。 |
| `ronin image` / `video` / `say` / `see` | 媒体:文本转图像、视频、文本转语音、视觉。 |
| `ronin set-key [--provider X] [--model Y]` | 设置 LLM API key(掩码)。在会话中,使用 `/login`。 |
| `ronin mutants [--test ""]` | 对文件进行变异测试:列出测试套件未能捕获的变异体。 |
| `ronin radius [--run]` | 您差异的影响范围 + 受影响的测试模块。 |
| `ronin flake "" [-n N]` | 运行 N 次测试命令;对非确定性测试进行排名。 |
| `ronin guard [--intent ""]` | 扫描差异以查找调试/密钥残留 + 范围蔓延。 |
| `ronin version` | 打印版本。 |
## 🔒 安全与保障
ronin 可以写入文件和运行命令,因此安全性是内置于核心的,而不是事后附加的:
- **受把关的变更。** 编程 agent 中的每次文件写入和 shell 命令都在**差异预览 + 您的批准**把关下:读取操作自由运行。**计划模式** (`--plan`) 是完全只读的。
- **Prompt 注入扫描。** 用户输入在到达工具调用规划器之前,会通过注入扫描器 (`packages/hardening`)。
- **只读数据集成。** Stripe / Linear / Slack / Notion / Postgres MCP 模板默认是只读的;推荐的 Postgres 设置使用只读 DB 角色。
- **机密准则。** API 密钥由用户提供,并且仅存储在本地 `.ronin/`(已 gitignored)中,永远不会被提交(仓库是公开的)。在有任何内容离开您的进程之前,PII(电子邮件、SSN、卡号、密钥)都会从追踪记录中脱敏。
- **离线保证。** `ronin --offline` 强制使用本地大脑并移除所有涉及网络的工具,这是为物理隔离/隐私敏感工作提供的硬性保证。
### 为他人或大规模运行 ronin
ronin 采用 MIT 许可证,旨在供其他人使用。如果您要为团队部署它,请注意以下几点:
- **`--yolo` / 自动接受绕过批准关卡**,允许模型在无人值守的情况下运行 shell 命令。仅应在您信任的沙盒或 CI 中使用它:交互式使用会保持对每一次变更的把关。
- **并行的子 agent 会消耗真实的 token。** `parallel_task` / `isolated_task` / `consensus` / `bench` 会一次扇出 *N* 个模型运行;并发数有上限(3–4 个 worker),但开销会随任务/模型的数量增加而增加:请做好相应预算。
- **`isolated_task` 需要一个 git 仓库**(worktree 是 git 的一项功能),并返回差异以供审查,而不是自动合并:并行更改保持可审查状态。
- **固定安装程序**以实现可重现性:`curl … | bash -s -- --ref v0.58.0`。
## 🧱 底层原理
`ronin` 是面向用户的封装。实质内容存在于**七个您也可以独立使用的软件包**中,这是工程核心:
| 包 | 功能 | 测试 |
|---|---|---|
| `agent-patterns` | ReAct、Planner-Executor、Multi-Agent Supervisor、Reflexion + 提供商抽象(流式传输、429 重试、MCP 风格元数据) | 81 |
| `eval-suite` | LLM-as-a-judge、黄金数据集、漂移检测、HTML 报告 | 11 |
| `memory` | 短期(滚动摘要)、长期(可插拔向量存储)、用户偏好 | 11 |
| `hardening` | Prompt 注入扫描器、工具白名单、批准关卡、输出验证器、token 预算、追踪 | 40 |
| `mcp-servers` | 只读 Postgres、Stripe、Linear、Slack、Notion、Tavily、GitHub 模板 | 67 |
| `cli` | `ronin` 二进制文件:agent 循环、MCP 客户端、网络工具、子 agent、eval、媒体 | 1396 |
| `deployment-templates` | Docker Compose、Modal、Vercel、Railway | - |
跨所有包(包括演示/API 应用程序)共有 **1,376 个测试**,在每次推送时均为绿色(参见 CI)。`FakeProvider` 使它们具有确定性、离线性且免费:CI 中不进行任何 API 调用。
## 在不使用 CLI 的情况下使用模块
用 5 行代码构建一个 agent:
```
from ronin_agent_patterns import ReActAgent, Tool
agent = ReActAgent(
system="You are a helpful research assistant.",
tools=[Tool(name="search", description="...", input_schema={...}, handler=my_search)],
)
print(agent.run("What is the ReAct pattern?").output)
```
将其在 Ollama 上运行,而不是 Claude:
```
from ronin_agent_patterns import OllamaProvider, ReActAgent
agent = ReActAgent(system="...", tools=[...], provider=OllamaProvider(model="llama3.1"))
```
添加一个评估套件:
```
from ronin_eval_suite import EvalSuite, Rubric, GoldenDataset
suite = EvalSuite(
rubric=Rubric(criteria=["task_success", "faithfulness", "safety"]),
target_runner=lambda case: agent.run(case.input).output,
)
report = suite.run(GoldenDataset.from_jsonl("./golden.jsonl"))
```
## 为什么选择 ronin 与 ...
| | ronin | aider | langchain | crewai |
|---|---|---|---|---|
| 终端原生编程 agent(读取 / 编辑 / 运行,受把关) | ✅ | ✅ | ❌ | ❌ |
| 与提供商无关:Claude **和**免费开源模型 | ✅ | ✅ | ✅ | ✅ |
| 手写的 agent 循环(无 LangChain 依赖) | ✅ | ✅ | n/a | ❌ |
| 内置 prompt 注入扫描器 | ✅ | ❌ | ❌ | ❌ |
| 包含确定性评估套件 | ✅ | ❌ | ❌ | ❌ |
| 零配置离线演示 (`--demo`) | ✅ | ❌ | ❌ | ❌ |
| 终端原生媒体(图像 / 视频 / 语音 / 视觉) | ✅ | ❌ | ❌ | ❌ |
aider 是*编程* agent 的黄金标准;CrewAI / LangChain 是通用 agent 框架。ronin 的切入点是一个**单一、与提供商无关的 agent**,它将 Claude-Code 风格的编程体验与底层经过测试、可重用的框架配对在一起。
## 示例
您今天就可以运行的端到端 agent:
| 示例 | 展示内容 |
|---|---|
|research-agent/`](examples/research-agent/) | 带有玩具 KB 的 ReAct · 最小、最简单 |
| [`customer-support/`](examples/customer-support/) | Supervisor + 4 个子 agent,Pydantic 验证的 `DraftReply`,25 例的黄金数据集 |
| [`code-reviewer/`](examples/code-reviewer/) | 3 个专家子 agent(风格 / bug / 安全)聚合成一个类型化的 `CodeReview` |
```
export ANTHROPIC_API_KEY=sk-ant-...
uv run python examples/customer-support/main.py "I was charged twice for my Pro plan!"
uv run python examples/code-reviewer/main.py examples/code-reviewer/sample_buggy_code.py
```
## 仓库布局
```
Ronin/
├── packages/
│ ├── cli/ # the ronin binary - the coding agent + CLI
│ ├── agent-patterns/ # core loop patterns + provider abstraction
│ ├── eval-suite/ # objective + LLM-as-judge evaluation
│ ├── memory/ # 3-layer memory
│ ├── mcp-servers/ # read-only service integrations (MCP)
│ ├── hardening/ # injection / allowlist / approval / validation
│ └── deployment-templates/ # docker-compose, modal, vercel, railway
├── apps/
│ ├── demo/ # AgentLab - interactive playground
│ ├── api/ # optional FastAPI backend (scheduled briefings)
│ └── docs/ # Mintlify documentation site
├── examples/
└── ...
```
## 文档
- [文档站点](apps/docs/):概念、生产核对清单、ADRs(从 `apps/docs/` 运行 `mintlify dev` 进行预览)
- [CHANGELOG.md](CHANGELOG.md):新功能
- [CONTRIBUTING.md](CONTRIBUTING.md):如何添加 MCP 服务器、提供商等。
## 许可证
MIT。详见 [LICENSE](LICENSE)。
为 [Claude](https://www.anthropic.com/claude) 而建。不隶属于 Anthropic。
标签:AI智能体, AI风险缓解, DLL 劫持, Python, SOC Prime, 大语言模型, 开发工具, 无后门, 调试插件, 逆向工具