Connectly
技术2025-08-19

告别迷失的编程智能体:介绍 Yellhorn MCP

作者:Sravan Jayanthi

告别迷失的编程智能体:介绍 Yellhorn MCP

把「凭感觉写代码」变成真正的工程

作者:Sravan Jayanthi、Mark Snidal @ Connectly AI

观看视频

概览

隆重介绍 Yellhorn,一款开源 MCP,能为 AI 编程智能体带来真正达到软件工程师水准的规划与记忆能力!它接入你的 GitHub 仓库,并利用 GitHub issue 来编排大型、多部分的改动。当任务定义不清晰时,编程智能体很容易迷失方向,也难以扩展到大型软件项目。 Yellhorn 通过将 GitHub issue 用作"规划板"(整理正确的上下文、拆解步骤、标出检查点),强制引入严谨的软件设计结构,让智能体一次就能命中目标!

仓库地址:https://github.com/msnidal/yellhorn-mcp

GitHub - msnidal/yellhorn-mcp: Yellhorn offers MCP tools to publish detailed workplans as GitHub issues with entire-codebase reasoning and to review diffs against them

MCP 背景

Model Context Protocol(模型上下文协议)以标准化的格式为 AI 模型提供上下文,使智能体能够从一系列工具中进行选择,与外部世界交互。典型例子包括:在 Cursor 中使用图像生成 MCP 服务器生成图片、让非专业人士在 Claude Desktop 中通过PostgreSQL MCP 服务器执行数据库命令,当然还有借助Yellhorn MCP把规范驱动开发带入你的编程 IDE!

规范驱动开发

规范驱动开发是指将编程功能的实现建立在完整设计规范的上下文之上。它提供严谨的成功标准,指引工程师顺利完成实现。

在高能力编程智能体的当下,这一理念正获得越来越多的关注,例如Kiro 的规范驱动开发,它会在编程过程中分别写出需求、设计和任务列表这几份独立的 Markdown 文件。Claude SPARC 则是另一套自主编程系统,将 Claude Code CLI 与 SPARC 方法论(Specification、Pseudocode、Architecture、Refinement、Completion)结合在一起。

Yellhorn

Yellhorn,这款"创建-整理-评判"(Create-Curate-Judge)MCP 工具,会直接在 GitHub issue 上构建高质量的、了解整个代码库的设计规范——这是一个结构化且可解读的规划板,编程智能体可以从中梳理需求、技术架构以及实现的验收标准。

Yellhorn MCP 生成的工作计划示例

Yellhorn MCP 生成的工作计划示例

代码是高度分层的,内含大量隐性依赖,尤其是在不同平台上使用的库和包的不同版本之间。LLM 编程智能体的视野非常有限,往往写出的代码与代码库中所需的库版本不匹配。Yellhorn 对整个代码库的理解,加上对现有技术栈的额外了解,使它能够基于正确的上游依赖,对你的代码库做出量身定制的改动。

Yellhorn 的核心价值在于能够智能地对接 GitHub 上的工作计划,克服编程智能体的上下文窗口限制,让它读取所需的一切内容并提炼出最重要的信息加以使用。我们发现它在大型代码库中最为实用,尤其是在企业环境中,那些文件和依赖实在太多,无法整体作为上下文提供,也难以被代码生成智能体高效检索。

使用 Yellhorn 的成功项目案例

挑战: Connectly AI 需要为一家大型电商客户构建一个复杂的获客 AI 智能体。需求相当复杂:

地理智能:用于物流和合规的实时地理定位服务

工作流编排:14 种不同的客户旅程流程(引导、支持、销售、留存)

分析管道:自定义事件追踪、转化指标和性能仪表盘

使用 Yellhorn 的方法(创建 → 整理 → 评判)

整理:结合 .gitignore、.yellhornignore 和 .yellhorncontext 过滤仓库,只提取相关模块及 SDK 版本。

创建:生成一个 GitHub 工作计划 issue,拆解为多个子 issue(按工作流划分),每个子 issue 都带有验收标准和测试钩子。

评判:每个子任务完成后,将实现与工作计划进行比对,标出不匹配的 SDK 版本以及缺失的分析事件。

没有 Yellhorn 时:此前的经验

我们团队在 6 个月前用传统的 AI 编程方式尝试过类似项目:

时间线:4 周以上的来回迭代

问题:API 集成不一致、版本冲突、错误处理缺失

技术债:初步实现后 40% 的代码需要重构

上下文丢失:编程智能体"忘记"了此前的架构决策,导致模式不一致

最终技术指标

最终代码库:23,247 行生产代码

架构:基于 47 个外部依赖(Google Maps、Tenacity、Redis 等)的 62 个核心模块

时间线:从最初的规范到可运行原型用了 4 天,达到生产就绪状态用了 8 天

3 个简单步骤即可完成配置!

  1. 确保你已安装 gh CLI:https://cli.github.com/,并运行 gh auth login
  2. 在你的项目 Python 环境中,安装 pip install yellhorn-mcp
  3. 前往你喜欢的编程 IDE 的 MCP 配置(Cursor - .cursor/mcp.json,Windsurf - .codeium/windsurf/mcp.json,Claude Code - .mcp.json 与 .claude/settings.json),添加以下配置文件:
{
   "mcpServers": {
       "yellhorn-mcp": {
           "type": "stdio",
           "command": "yellhorn-mcp",
           "args": [],
           "env": {
               "GEMINI_API_KEY": "",
               "YELLHORN_MCP_MODEL": "gemini-2.5-pro",
               "REPO_PATH": ""
           }
       }
   }
}

任务示例

观看视频

任务示例: 我想为拥有不同角色和权限的用户添加双重认证。我希望主认证提供方使用 Auth0,并用 OAuth2-prox 管理会话。

参考以下提示词与 Yellhorn 交互:

  1. "为此任务使用整理上下文:<你的任务>":查看目录中被选中的部分:.yellhorncontext(Yellhorn)。检查该文件以添加或删除相应目录。
  2. "基于全代码库推理,为该任务生成一份工作计划":它会异步处理并将工作计划写入一个 GitHub issue。检查该工作计划,确认它符合你的预期。
  3. "修订工作计划:<修订内容>":用于完善规范中遗漏的部分。
  4. "获取工作计划并逐步实现。确保在完成每个子任务的测试和验证后才进入下一个子任务":观察你的编程智能体启动实现工作
  5. *"*评判该工作计划"**:Yellhorn 会将实现与最初的工作计划进行比对,并给出反馈,标出实现中的错误特性或缺口

你的工程团队要如何采用 AI 编程最佳实践?

  1. 记录你目前是如何进行功能开发的,尤其是在 sprint 或设计会议等场合中如何规划工程任务。
  2. 建立团队设计规则的通用仓库(.cursorrules、Claude.MD、.windsurf/rules),供所有工程师参考。此外,让团队一起提出可信的编程智能体命令与自动化方案。通过创建后钩子(linter、类型检查、post-commit 钩子、单元测试、集成测试、测试覆盖率评估、文档更新等)保存、改进并记录下来。
  3. 利用 Yellhorn MCP 将想法转化为完整的工程设计规范。
  4. 审阅工作计划,记录缺口,并将缺失的上下文补充进团队的设计规则中。
  5. 重复这个循环,把开发速度提升 10 倍!

参考资料