t-timms/godspeed-coding-agent

GitHub: t-timms/godspeed-coding-agent

Godspeed 是一个安全优先的开源 Coding Agent,通过四级权限引擎、哈希链审计追踪和机密信息防护,让用户可以放心地将 AI Agent 指向生产代码库。

Stars: 0 | Forks: 1

# Godspeed **值得信赖的生产级代码开源 Coding Agent。** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/96ff5acfc6154711.svg)](https://github.com/t-timms/godspeed-coding-agent/actions/workflows/ci.yml) [![CodeQL](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/61f568bc57154718.svg)](https://github.com/t-timms/godspeed-coding-agent/actions/workflows/codeql.yml) [![Python 3.11–3.14](https://img.shields.io/badge/python-3.11–3.14-blue?style=flat-square)](https://www.python.org/downloads/) [![Powered by LiteLLM](https://img.shields.io/badge/LLM-LiteLLM-orange?style=flat-square)](https://github.com/BerriAI/litellm) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=flat-square)](https://github.com/astral-sh/ruff) [![License: MIT](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE) [![Discussions](https://img.shields.io/badge/chat-Discussions-2f80ed?style=flat-square)](https://github.com/t-timms/godspeed-coding-agent/discussions) Godspeed TUI welcome screen 一个你可以放心将其指向生产级代码库并予以信任的 Coding Agent。内置权限管理、审计追踪、Schema 验证的工具调用以及自动重试机制。 [快速开始](#getting-started) | [功能特性](#features) | [架构设计](#architecture) | [配置说明](#configuration) | [贡献指南](CONTRIBUTING.md) | [讨论区](https://github.com/t-timms/godspeed-coding-agent/discussions)
## v0.5.0 新特性 技能系统大修、检索子代理以及投机解码基准测试。 每一项更改都附带了测试,并在 Python 3.11 / 3.12 / 3.13 环境下通过了 CI 绿灯。 | 领域 | 更改内容 | 原因 | |---|---|---| | **技能系统大修** | 安全扫描、进化、梦境整合、Wiki 桥接。 | 四个用于技能管理的新模块:静态分析、经验追踪、跨会话修剪和知识库集成。 | | **检索子代理** | 用于专注代码探索的只读子代理。 | 委派深度代码搜索,而不会污染主代理上下文。结构化的 `file:line-range` 输出。 | | **投机解码** | GPU 加速的草稿模型服务器 + 基准测试套件。 | 在 RTX 5070 Ti 上使用 Qwen2.5-Coder-14B + 1.5B 草稿模型达到约 750 tok/s。 | | **模型预设** | `fast`/`balanced`/`quality`/`local`/`cloud`/`frontier` 快捷方式。 | 一键切换模型,适应不同的成本/质量权衡。 | | **默认模型** | 更改为 `openai/qwen2.5-coder-14b` (llama.cpp)。 | 零成本的本地 GPU 推理与投机解码。 | | **增强的代码库索引** | 更好的分块、符号提取、新鲜度检测。 | 语义代码搜索现在能更快地找到相关代码。 | **平台文档:** Windows 用户应阅读 [`docs/quickstart_windows.md`](docs/quickstart_windows.md) 以了解 特定平台的设置(Miniconda、`PYTHONIOENCODING`、用于 SWE-bench 的 WSL)。 ## 存在的问题 每一个接触你代码库的 AI Agent —— Claude Code、Cursor、Hermes 或你的自定义 Agent —— 都可以读取文件、编写代码和运行 Shell 命令。大多数 Agent 并不提供其确切操作的加密可验证记录。大多数 Agent 在工具调用存在歧义时,并不会默认执行“安全失败(fail closed)”。大多数 Agent 也不会在机密信息到达模型之前将其拦截。 你被期望无条件地信任模型。 ## Godspeed 的作用 Godspeed 是 MCP 生态系统的安全执行层。将其作为 MCP 服务器运行,兼容 MCP 的 Agent 就可以通过 Godspeed 的权限引擎委派文件和 Shell 操作。每项操作都记录在可加密验证的哈希链审计追踪中。机密信息在到达模型或审计日志之前就会被过滤。 你可以将其作为独立的 CLI Coding Agent 使用,或者将其作为专注于安全的执行层插入到你现有的 Agent 技术栈中。 ## 功能特性 ### 信任与可靠性 - **Schema 验证的工具调用** — 每个工具参数在执行前都会根据其 JSON Schema 进行验证。缺失的必填字段、错误的类型和无效的值都会被捕获并给出清晰的错误消息 —— 没有隐性失败。 - **瞬态故障的自动重试** — 网络超时、连接重置和速率限制会触发带有指数退避的自动重试。逻辑错误和权限拒绝会立即失败。 - **3 级权限模式** — 面向用户的操作模式:`strict`(拒绝大部分操作,每次都询问)、`normal`(默认拒绝,辅以允许规则)、`yolo`(无权限检查,最大速度)。可通过 CLI (`--permission-mode`) 或 settings.yaml 进行配置。这些模式决定了引擎*何时*提示您以及*默认答案是什么*。 - **4 级权限引擎** -- 内部风险评估:每个工具都被分配一个风险等级(READ_ONLY、LOW、MEDIUM、HIGH),用于决定在没有显式规则匹配时的默认行为。默认拒绝的评估结合模式匹配、危险命令检测(100 种模式)以及“安全失败(fail-closed)”的默认设置,确保在 strict/normal 模式下,没有工具调用可以在未经显式许可的情况下执行。4 级设计是*引擎的内部分类*;3 级模式是*面向用户的策略*。 - **哈希链审计追踪** -- SHA-256 JSONL 日志,其中每个条目都与前一个条目相链接。防篡改、可压缩,并可通过 `godspeed audit verify` 进行验证。写入时安全失败(fail closed):任何 I/O 错误都会引发 `AuditWriteError` 并且链状态不会推进。 - **机密信息保护** -- 4 层防御:文件拒绝列表、上下文清理、输出过滤和审计脱敏。正则表达式模式加上香农熵分析,可在 API 密钥、token 和凭据泄露之前将其拦截。 - **编辑后语法门控** -- 破坏解析的 `.py` / `.pyi` / `.json` 编辑将在写入前被拒绝。Lint 修复重试循环最多进行 3 轮,以自动纠正常见问题。 - **Diff 写入前审批** -- `file_edit` / `file_write` / `diff_apply` 在写入磁盘前会提示并排 Diff。`(y)es · (n)o · (a)lways` 按键。两个独立的同意轴:权限引擎(“可以运行此工具吗?”)+ Diff 审阅者(“应用此特定的 Diff 吗?”)。 ### 能力 - **通过 LiteLLM 支持 200 多个 LLM 提供商** — Claude、GPT、Gemini、Ollama 以及 LiteLLM 支持的所有其他模型。Godspeed 封装了 LiteLLM 的统一接口,提供回退链、模型路由、成本跟踪和重试逻辑。配置回退链以确保工作永不停歇。([LiteLLM 鸣谢](#inspiration--attribution)) - **30 多个内置工具** — 核心工具 (29 个):`file_read`(图像、PDF、Notebook)、`file_write`、`file_edit`(模糊匹配)、`notebook_edit`、`file_move`、`image_read`、`pdf_read`、`shell`(前台 + 后台)、`glob`、`grep`、`git`、`github`(通过 `gh` 处理 PR/Issue)、`diff_apply`(统一 Diff)、`verify`(6 种语言)、`test_runner`(5 种框架)、`web_search`、`web_fetch`、`repo_map`、`code_search`、`tasks`、`background_check`、`coverage`、`complexity`、`dep_audit`、`security_scan`、`generate_tests`、`traceback_analyzer`、`system_optimizer`、`db_query`。基础设施工具 (3 个):`ollama_manager`、`llamacpp_manager`、`stock_price`(API 连接测试工具)。完整的 Schema 参考,请见 [`GODSPEED_ARCHITECTURE.md`](GODSPEED_ARCHITECTURE.md)。 - **并行工具执行** -- 当 LLM 返回多个工具调用时,它们通过 `asyncio.gather()` 并发执行。3 阶段调度:解析 → 权限检查(串行) → 执行(并行)。READ_ONLY 工具始终并行,写入工具始终串行。 - **投机式工具调度** -- 在流式传输期间,READ_ONLY 工具调用会在完整响应完成之前作为后台 `asyncio.Task` 进行调度。主循环等待缓存的结果而不是重新调度,从而消除了读取操作的调度延迟。 - **扩展思考** -- 将 `thinking` 参数传递给 Anthropic/Claude 模型,具有可配置的 token 预算。`/think [budget]` 斜杠命令。思考块显示在折叠的暗色面板中。 - **架构师模式** -- `/architect` 切换两阶段管线。第一阶段使用只读工具生成计划。第二阶段在计划的指导下使用全部工具。可配置的架构师模型。 - **成本预算强制执行** -- 通过 `max_cost_usd` 配置或 `/budget` 命令设定硬性成本限制。超出时 Agent 停止。Ollama 始终免费。 - **自我进化** -- 从执行追踪中学习,以改进工具描述、系统提示部分和权限配置。GEPA 风格的 LLM 引导突变,通过以 LLM 作为评判者的 A/B 测试进行评分。安全门可防止退化(大小限制、语义漂移上限、人工审查)。完全在 Ollama 上运行,硬件感知模型选择(从 RTX 5070 Ti 到 Jetson Orin Nano)花费为 $0。`/evolve` 命令。 - **子代理协调器** -- 为并行任务生成隔离的子代理,每个子代理都有自己的对话上下文。深度限制为 3,重用相同的异步代理循环。 - **MCP 客户端** -- 通过 stdio 或 SSE 传输连接到 Model Context Protocol 服务器。远程工具自动适配到 Godspeed 的 Tool ABC 中,并标记为 HIGH 风险级别。 - **模型路由** -- 根据任务类型(plan/edit/chat)将 LLM 调用路由到不同的模型。使用便宜的模型进行编辑,使用前沿模型进行规划。 - **人类在环** -- `/pause` 在下一次迭代时停止代理,`/guidance ` 注入对话中段的纠正并恢复运行。 - **对话压缩** -- 在接近 token 限制时进行模型感知摘要。小型模型(Ollama 默认)进行激进压缩以保留上下文槽位;前沿模型(Claude、GPT-4)进行详细保留并配合结构化摘要。使用回退链中最便宜的模型以最小化成本。压缩会保留:工具调用历史、提及的文件路径、关键决策和用户指导。摘要内容标记为 `[compacted: N messages → M messages]`,以便 Agent 知道上下文已被浓缩。 - **后台命令** -- `shell` 工具增加了 `background: true` 参数。`BackgroundRegistry` 跟踪进程。`background_check` 工具用于检查状态/输出/终止。 - **检查点保存/恢复** -- `/checkpoint name` 保存对话状态,`/restore name` 加载它。再也不会丢失上下文。 - **记忆** -- 基于 SQLite 的持久化偏好设置、会话事件日志记录和跨会话的自动纠正跟踪。 - **跨代理项目指令** -- 加载 `GODSPEED.md`、`AGENTS.md`(Linux Foundation 标准)、`CLAUDE.md` 和 `.cursorrules`。从任何代理零摩擦迁移。 - **Token 成本追踪** -- 每次会话的实时 token 使用量和预估成本。`/stats` 命令。支持 20 多种模型定价层级。本地模型始终显示为“免费”。 - **提示缓存** -- 系统提示标有 `cache_control`,用于 Anthropic/OpenAI。在重复前缀上节省约 50% 的成本。 - **无头/CI 模式** -- `godspeed run` 用于非交互式执行。任务来自位置参数、`--prompt-file` 或 stdin。`--timeout N` 挂钟时间上限。差异化的退出代码(0 成功、1 工具错误、2 最大迭代次数、3 预算、4 LLM 错误、5 无效输入、6 超时、130 中断)用于流水线编排。JSON 输出包括 `exit_reason`、`iterations_used`、`tool_calls`、`cost_usd`、`duration_seconds`、`audit_log_path`。默认写入审计追踪。 - **Web 工具** -- `web_search`(DuckDuckGo,无需 API 密钥)和 `web_fetch`(HTML 转文本提取)让 Agent 能够查找文档和错误。 - **多语言验证** -- 编辑后的自动验证支持 Python (ruff)、JS/TS (biome/eslint)、Go (go vet)、Rust (cargo check)、C/C++ (clang-tidy)。Lint 修复重试循环最多进行 3 轮。 - **测试运行器** -- 自动检测 pytest、jest、vitest、go test、cargo test。运行针对性或完整的测试套件。Agent 可访问以进行“编辑-测试-修复”循环。 - **对话导出** -- `/export` 将完整会话保存为格式化的 Markdown,以便分享或审查。 - **会话钩子** -- 在生命周期事件(`session_start`、`session_end`、`turn_end`)运行 Shell 命令。在 `~/.godspeed/hooks.yaml` 中配置,用于自定义通知、日志记录或自动化。 - **技能** -- `~/.godspeed/skills/` 或 `.godspeed/skills/` 中的 Markdown 提示文件,用于扩展 Godspeed 的功能。每个技能都是一个独立的提示,带有可选的触发模式。 - **丰富的 TUI** -- 通过 Rich 和 prompt-toolkit 实现语法高亮、统一 Diff 渲染、流式输出和斜杠命令。 ### 训练与微调 - **对话记录器** -- 自动将每条对话消息(用户、助手、工具调用、工具结果、压缩摘要)持久化到 `~/.godspeed/training/` 中每次会话的 JSONL 文件中。捕获审计追踪遗漏的完整对话流。受 `log_conversations` 配置控制(默认:开启)。 - **训练数据导出器** -- `godspeed export-training` 将对话日志转换为 `openai`、`chatml` 或 `sharegpt` 微调格式。支持按工具数量、成功率、轮次数和工具白名单进行过滤。专为通过 Unsloth + TRL 进行的 Qwen/Mistral/Llama 微调而设计。 - **每步奖励注释** -- 用于 GRPO/DPO 的自动奖励信号:成功 (+1.0)、验证通过 (+0.5)、危险命令 (-1.0)、高效工具序列 (+0.5)。用于训练流水线集成的会话级摘要。 - **基准测试套件** -- 20 项手工制作(精心设计)的任务(简单/中等/困难),具有 Jaccard 工具选择评分和 LCS 序列质量评分,用于评估微调模型与基础模型的对比。 - **增强的工具描述** -- 所有工具都包含内联使用示例和 JSON Schema `examples` 字段,提高了实时代理性能和训练数据质量。 ## 基准测试 ### SWE-Bench Lite — dev-23 结果(免费层) 所有均在免费层(NVIDIA NIM R&D)运行,$0 API 支出。数据来自 sb-cli;报告 JSON 位于 [`experiments/swebench_lite/reports/`](experiments/swebench_lite/reports/)。 #### 单次运行性能(无集成) | 公开发布版本 | 内部标签 | 方法 | 已解决 | 比例 | |---|---|---|---:|---:| | v0.2.11 | v2.11.0 | Qwen3.5-397B 单次运行 | 6 / 23 | 26.1% | | v0.2.12 | v2.12.0 | Kimi K2.5 单次运行 *(驱动切换)* | 8 / 23 | **34.8%** | | v0.3.1 | v3.1.0 | Kimi K2.5 + Agent 在环 (单一种子) | 7 / 23 | 30.4% | **这是真实的单次运行数据:34.8%。** Agent 在环结果 (30.4%) 是一个已发布的零结果 —— 该机制的表现低于单次运行基线。该架构支持迭代,但驱动器 (Kimi K2.5) 无法有效地利用反馈。 供参考:截至 2026 年 4 月,完整 SWE-Bench Lite 上发布的 SOTA 为 **62.7%**;配备付费前沿驱动器的顶级开源 Agent 位于 40–50% 区间。 #### 集成 / 研究上限(非单次运行声明) 我们还发布了一个 `oracle_best_of_5` 集成作为研究上限。Oracle 选择器利用对哪次运行已解决此问题的真实情况了解,在 5 次运行中为每个实例挑选最佳补丁。这**不是**您在单次运行中能获得的能力 —— 它展示了模型多样性 + 理想事后选择所能达到的效果: | 方法 | 已解决 | 比例 | 类型 | |---|---:|---:|---| | 最佳单次运行 (Kimi K2.5) | 8 / 23 | 34.8% | 可部署 | | LLM-judge best@5 (符合排行榜资格) | 10 / 23 | 43.5% | 可部署 | | Oracle-selector best-of-5 (研究上限) | 12 / 23 | 52.2% | 上限 | 在 12 个 Oracle 解决的实例中:有 11 个实例回退到未解决的补丁 —— 这意味着即使有 Oracle 选择,它们仍然无法解决。52.2% 是一个上限,而不是已部署的结果。43.5% 的 LLM-judge 是目前真实的 best@k 数据。 **完整的方法论、按实例解决的映射表、组成运行数据、零结果讨论和局限性:** [`experiments/swebench_lite/findings_2026_04_21.md`](experiments/swebench_lite/findings_2026_04_21.md)。 **复现:** ``` ./experiments/swebench_lite/reproduce_v3_1.sh # uses committed predictions + sb-cli ``` 先前的发布说明:[`findings_2026_04_20.md`](experiments/swebench_lite/findings_2026_04_20.md) (v2.12.0 驱动器对决),[`baseline_2026_04_19.md`](experiments/swebench_lite/baseline_2026_04_19.md) (v2.11.0 首个真实结果)。 ### 内部 20 项任务套件 — 2026-04-19 模型对决 来自 `benchmarks/tasks.jsonl` 中 20 项任务套件、针对 `benchmarks/fixtures/` 中的确定性 Fixtures 运行的真实数据。每个 Fixture 在每次运行时都在临时工作区中隔离;20 个任务中有 13 个具有 `verify.py` 钩子,用于机械化地检查 Agent 是否真正完成了工作。 **对决**(所有 NIM 运行均在免费 R&D 层;本地通过 Ollama): | 模型 | 总体 | 通过 (J>=0.6) | 简单 | 中等 | 困难 | 机械化 | |---|---:|---:|---:|---:|---:|---:| | `nvidia_nim/qwen/qwen3.5-397b-a17b` | **0.608** | 11/20 | 0.840 | 0.831 | 0.189 | 7/13 | | `nvidia_nim/moonshotai/kimi-k2.5` | 0.548 | 9/20 | 0.840 | 0.727 | 0.135 | 6/13 | | `nvidia_nim/mistralai/devstral-2-123b-instruct-2512` | 0.446 | 5/20 | 0.450 | 0.473 | **0.413** | 2/13 | | `nvidia_nim/qwen/qwen3-coder-480b-a35b-instruct` | 0.333 | 5/20 | 0.870 | 0.138 | 0.174 | 2/13 | | `ollama/qwen3-coder:latest` (本地) | 0.107 | 1/20 | 0.150 | 0.125 | 0.057 | 1/13 | **推荐的生产驱动器:** `nvidia_nim/qwen/qwen3.5-397b-a17b`,以 `ollama/qwen3-coder:latest` 作为本地回退。Devstral-2 是唯一一个在困难任务上没有崩溃的竞争者(0.413 对比 Qwen3.5 的 0.189) —— 如果您的工作负载偏向困难任务,值得考虑。 完整的运行输出位于 `experiments/bench_*/`,汇总表位于 `experiments/benchmark_shootout_2026_04.md`。使用 `scripts/run_benchmark.py --model ` 进行复现。 ## 架构 ``` flowchart LR User([User]) --> TUI["TUI\n(Rich + prompt-toolkit)"] TUI --> Loop["Agent Loop\n(loop.py)"] Loop --> LLM["LLM\n(LiteLLM + ModelRouter)"] LLM -->|streaming| Spec["Speculative\nDispatch"] Spec -->|READ_ONLY| Tools LLM -->|tool calls| Perm["Permission\nEngine"] Perm -->|allowed| Dispatch["Parallel/Serial\nDispatch"] Dispatch --> Tools["Tools\n(30+ built-in + MCP)"] Perm -->|denied| Deny[Deny + Log] Tools --> Audit["Audit Trail\n(SHA-256 JSONL)"] Deny --> Audit Audit --> Loop Loop -->|sub-agents| Loop Loop -->|response| TUI Loop --> Memory["Memory\n(SQLite)"] Audit -->|traces| Evo["Self-Evolution\n(Ollama, $0)"] Evo -->|improved descriptions| Tools Loop -->|messages| Train["Training Logger\n(JSONL)"] Train -->|export| FT["Fine-Tuning\n(openai/chatml/sharegpt)"] ``` ``` flowchart LR anyMcpAgent[AnyMcpAgent] --> mcpProtocol[MCPProtocol] mcpProtocol --> godspeedMcpServer[GodspeedMcpServer] godspeedMcpServer --> permissionEngine[PermissionEngine] godspeedMcpServer --> auditTrail[AuditTrail] godspeedMcpServer --> builtInTools[BuiltInTools] ``` CLI 和 MCP 路径共享相同的权限引擎和审计追踪。相同的规则,相同的日志模型,不同的调用方归属。 **工作原理:** Agent 循环是手工编写的(无框架),遵循已被顶级 Coding Agent 验证的相同模式。LLM 决定何时停止。在每个回合,LLM 要么以文本响应(完成),要么请求工具调用。在流式传输期间,**投机调度**会在完整响应完成之前将 READ_ONLY 工具调用作为后台 `asyncio.Task` 启动 —— 主循环等待缓存的结果而不是重新调度。每个工具调用在执行前都会通过**权限引擎**:首先评估拒绝规则(并且总是优先),然后危险命令检测会阻止破坏性操作,接着是会话授权和允许规则,最后由工具的风险等级决定默认行为。如果存在任何歧义,它就会安全失败(fail closed)。被允许的调用按风险级别拆分:**READ_ONLY 工具通过 `asyncio.gather()` 并行运行**,**写入工具按顺序运行**。执行后,工具调用、其结果和权限决定被记录在**审计追踪**中 —— 这是一个哈希链 JSONL 文件,其中每条记录都包含前一条记录的 SHA-256 哈希值。机密信息在四个层级进行脱敏:文件访问拒绝规则、LLM 查看内容前的上下文清理、LLM 响应上的输出过滤以及审计日志脱敏。该循环还包括**死循环检测**(3 个相同的错误触发重新规划)、**自动验证**(6 种语言中文件编辑后的 Linter 检查并重试)、**自动暂存**(在 3 次或更多次连续写入后执行 git stash)、**成本预算强制执行**以及用于人工干预的**暂停/恢复**。**自我进化系统**挖掘审计追踪以寻找失败模式,并使用 LLM 引导的突变来随着时间的推移改进工具描述和提示。**训练记录器**将完整的对话流(用户消息、助手推理、工具结果)捕获到 JSONL 中,用于微调工具调用 LLM。 **关键模块:** | 模块 | 路径 | 用途 | |--------|------|---------| | Agent 循环 | `src/godspeed/agent/` | 对话管理、LLM 交互、并行 + 投机调度、子代理协调器 | | 安全 | `src/godspeed/security/` | 权限引擎、危险命令检测、机密信息扫描 | | 审计 | `src/godspeed/audit/` | 哈希链事件日志记录、脱敏、验证、压缩 | | 工具 | `src/godspeed/tools/` | 30 多个内置工具及 JSON Schema | | LLM | `src/godspeed/llm/` | LiteLLM 客户端包装器、模型路由、Token 计数、成本追踪 | | 上下文 | `src/godspeed/context/` | 项目指令、压缩、检查点、Repo Map | | MCP 客户端 | `src/godspeed/mcp/` | Model Context Protocol 客户端 (stdio + SSE) 及工具适配器 | | MCP 服务器 | `src/godspeed/mcp_server/` | 用于 Godspeed 工具的 Model Context Protocol 服务器包装器,具有共享的权限 + 审计控制 | | 记忆 | `src/godspeed/memory/` | 基于 SQLite 的偏好设置、会话事件、纠正跟踪 | | 进化 | `src/godspeed/evolution/` | 追踪分析、GEPA 突变、LLM-as-judge 适应度、安全门、注册表 | | 训练 | `src/godspeed/training/` | 对话记录器、微调导出器 (openai/chatml/sharegpt)、奖励注释、基准测试套件 | | 钩子 | `src/godspeed/hooks/` | 用于自定义自动化的生命周期事件钩子 (session_start, session_end, turn_end) | | 技能 | `src/godspeed/skills/` | 基于 Markdown 的技能系统,用于扩展代理功能 | | TUI | `src/godspeed/tui/` | 终端 UI、Rich 输出、权限提示、斜杠命令 | ## 快速开始 ### 安装 ``` pip install godspeed-coding-agent ``` 或者使用 [uv](https://github.com/astral-sh/uv): ``` uv tool install godspeed-coding-agent # installs globally — run 'godspeed' from anywhere ``` ### 设置 ``` # 一次性设置 — 创建 ~/.godspeed/ 和默认设置 godspeed init # 拉取免费本地模型(默认,无需 API key) ollama pull qwen3:4b ``` ### 运行 ``` # 在任意项目目录中启动 — 默认使用免费本地模型 cd your-project/ godspeed ``` 或者使用付费云模型: ``` export ANTHROPIC_API_KEY="sk-..." godspeed -m claude-sonnet-4-20250514 ``` 随时在 TUI 中使用 `/model ` 切换模型,运行 `godspeed models` 查看所有选项。 Godspeed 会自动将 `ollama/` 升级为 `ollama_chat/`,以适用于支持工具的模型(Qwen、Llama、Gemma、Mistral 等)。 Godspeed 会从项目根目录读取 `GODSPEED.md`、`AGENTS.md`、`CLAUDE.md` 和 `.cursorrules` 以获取持久指令。直接从任何代理带入您现有的配置。 ### 首次会话 ``` $ godspeed godspeed> Explain the authentication flow in this codebase ``` Agent 将读取您的代码、回答问题、写入文件并运行命令 —— 所有这些均受权限引擎控制。 ### 斜杠命令 | 命令 | 描述 | |---------|-------------| | `/help` | 显示可用命令 | | `/model [name]` | 显示或切换活动模型 | | `/clear` | 清除对话历史 | | `/undo` | 撤销上一次 git commit (`git reset --soft HEAD~1`) | | `/audit` | 显示审计追踪统计信息并验证链完整性 | | `/permissions` | 显示当前权限规则和会话授权 | | `/remember [action] [pattern]` | 持久化一条权限规则 (approve/deny/ask) | | `/extend [N]` | 设置每回合最大迭代次数(默认:50) | | `/context` | 显示上下文窗口使用情况(Token、百分比) | | `/plan` | 切换计划模式(只读,仅探索和规划) | | `/architect` | 切换架构师模式(使用只读工具进行规划,然后执行) | | `/think [budget]` | 切换 Claude 模型的扩展思考 | | `/budget [amount]` | 显示或设置会话的成本预算 | | `/autocommit` | 切换成功编辑后是否自动 commit | | `/evolve [cmd]` | 自我进化:status、run、history、rollback、review | | `/checkpoint [name]` | 保存对话检查点,如果没有名称则列出 | | `/restore ` | 恢复已保存的检查点 | | `/pause` | 在下一次迭代时暂停 Agent 循环 | | `/resume` | 恢复已暂停的 Agent 循环 | | `/guidance ` | 注入指导并恢复暂停的 Agent | | `/stats` | 显示 Token 使用量和预估成本 | | `/export [name]` | 将对话导出为 Markdown | | `/quit` | 退出 Godspeed | ## 配置 ### 项目级别:`GODSPEED.md` 在您的项目根目录中放入一个 `GODSPEED.md`。Agent 会在每次会话时将其作为系统上下文加载。将其用于编码标准、架构说明或约束条件。请参阅 [`GODSPEED.md.example`](GODSPEED.md.example) 获取模板。 ### 全局:`~/.godspeed/settings.yaml` ``` model: claude-sonnet-4-20250514 fallback_models: - gpt-4o - gemini-2.0-flash # 将不同任务类型路由到不同模型 routing: plan: claude-sonnet-4-20250514 edit: ollama/qwen3:4b chat: claude-sonnet-4-20250514 permissions: deny: - "FileRead(.env)" - "FileRead(*.pem)" - "FileRead(.ssh/*)" allow: - "shell(git *)" - "shell(ruff *)" - "shell(pytest *)" - "shell(make *)" ask: - "shell(*)" audit: enabled: true retention_days: 30 memory_enabled: true # MCP servers(可选) mcp_servers: - name: github command: npx args: ["-y", "@modelcontextprotocol/server-github"] ``` 权限规则使用针对 `ToolName(argument)` 字符串的全局样式匹配。拒绝规则在不同配置级别中是累加的 —— 项目配置不能削弱全局拒绝规则。 ### 环境变量 | 变量 | 用途 | |----------|---------| | `ANTHROPIC_API_KEY` | Claude 访问权限 | | `OPENAI_API_KEY` | GPT 访问权限 | | `GEMINI_API_KEY` | Gemini 访问权限 | | `GODSPEED_MODEL` | 覆盖默认模型 | ## 灵感与致谢 Godspeed 站在优秀先前工作的肩膀上: - **Agent 循环模式** — 灵感来自开源 Agent 研究中手工编写的 ReAct 循环以及由 LLM 决定何时停止的成熟设计。在每次工具调用时进行权限门控是我们独创的扩展。 - **危险命令检测** — 灵感来自 [Hermes Agent 的 Tirith 安全扫描器](https://github.com/monocle-ai/tirith)。阻止破坏性 Shell 命令的基于正则表达式的方法遵循了他们的设计。 - **LiteLLM** — 通过 [LiteLLM](https://github.com/BerriAI/litellm) 库实现统一的提供商访问。如果没有它,Godspeed 将无法支持 200 多个提供商。 - **Prompt-toolkit + Rich** — TUI 建立在 [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit)(用于输入处理)和 [Rich](https://github.com/Textualize/rich)(用于输出渲染)之上。 - **SWE-Bench** — 基准测试方法和工具来自 [SWE-bench](https://github.com/SWE-bench/SWE-bench)。所有公布的数据均使用其评估协议。 - **AGENTS.md / CLAUDE.md** — 跨代理配置文件的想法来自 [Linux Foundation 的 AGENTS.md 提案](https://github.com/LinusDierheimer/.agents.md) 和 Anthropic 的 CLAUDE.md 约定。 安全优先的设计、投机式工具调度、自我进化和多语言验证是我们原创的贡献。 ## 开发 ``` # 克隆并安装 git clone https://github.com/t-timms/godspeed-coding-agent.git cd godspeed uv sync --all-extras # Lint 和 format ruff check . --fix && ruff format . # 运行测试 pytest --cov # 验证 audit trail 完整性 godspeed audit verify ``` ## 许可证 [MIT](LICENSE)
由 [Tremayne Timms](https://github.com/t-timms) 构建
标签:AI智能体, AI编程, AI风险缓解, DevSecOps, IDE插件, LiteLLM, Python, 上游代理, 人工智能安全, 代码助手, 代码安全, 合规性, 哈希链审计, 四层权限控制, 多LLM支持, 大语言模型应用, 威胁情报, 安全代理, 审计日志, 工具调用, 开发者工具, 开源编程代理, 技术栈, 数据管道, 文本用户界面 (TUI), 无后门, 时序数据库, 模式验证, 测试版招募, 漏洞枚举, 生产级代码, 编码智能体, 自动化编程, 自动重试, 计算机取证, 请求响应过滤, 软件工程, 软件开发, 逆向工具