一个基于 Rust 的 Code Agent MVP,具备工具调用能力。
Runic 是一个 AI coding agent 编程助手,支持对接多种 LLM 提供商(Claude、OpenAI、Kimi、GLM 等),借助工具调用执行编码任务。它具有基于检查点的状态管理、用于外部工具的 MCP 集成,以及用于交互式会话的终端 UI。
- 多模型支持:对接 Claude、OpenAI、Kimi、GLM 等多种 LLM 提供商
- 工具调用:用于文件操作、搜索和命令执行的内置工具
- 检查点/回滚:工具执行前自动创建状态快照
- MCP 支持:通过 Model Context Protocol 扩展功能
- 流式响应:来自各模型 API 的实时输出
- 终端 UI:交互式会话界面
- Rust 1.70+
- 任一支持的 LLM 提供商 API 密钥(Claude / OpenAI / Kimi / GLM 等)
# 克隆仓库
git clone <repo-url>
cd runic
# 构建
cargo build --release
# 设置 API 密钥(选择你使用的提供商)
export CLAUDE_API_KEY="your-api-key"
# 或
export OPENAI_API_KEY="your-api-key"
# 或
export KIMI_API_KEY="your-api-key"
# 或
export GLM_API_KEY="your-api-key"
# 运行
cargo run或使用配置文件 ~/.runic/config.toml:
[model]
provider = "claude" # 可选: claude, openai, kimi, glm
api_key = "your-api-key"
model = "claude-3-opus-20240229" # 根据提供商选择相应模型# 启动交互式会话
runic
# 执行单次提示
runic --prompt "解释 src/main.rs 中的代码"
# 列出可用工具
runic --list-toolsCLI → Core Agent → Session → Tools → Model API
↓ ↓ ↓
└──────────┴────────┘ → UI
- Model 层:统一的多提供商 LLM 客户端接口,支持 Claude、OpenAI、Kimi、GLM 等
- Tools 系统:内置工具和 MCP 工具的注册表与执行器
- Session 层:支持检查点/回滚的状态管理
- Core Agent:支持并行工具执行的基于轮次的事件循环
- UI 层:终端交互与渲染
# 运行测试
cargo test
# 运行 clippy
cargo clippy --all-features -- -D warnings
# 格式化代码
cargo fmtMIT