MCP驱动的自主GitHub贡献者代理
项目建议书:MCP驱动的自主GitHub贡献者代理 团队:格雷森·理查德
项目描述: 在我的最后一个项目中,我计划部署一个完全在AWS上运行并与GitHub交互的自包含代理系统,以创建小型自动化代码贡献。该项目将使用模型上下文协议(MCP)作为中央接口层,允许基于大型语言模型的流程在受控云环境中与计算、存储和外部API安全交互。通过在虚拟化服务器上托管此工作流并将其与EC2、S3、CloudWatch和Secrets Manager等服务集成,该项目有望演示应用程序如何在分布式云环境中扩展、监控和协调自动化任务。
项目目标: 我计划构建一个云托管模型上下文协议(MCP)服务器,该服务器可以自主运行,并通过GitHub API与GitHub交互。该系统将在选定的开源存储库中监视新问题并自动响应。我计划从一个预先存在的存储库的分支开始,制作自己的票。当出现新票证时,MCP服务器将唤醒一个进程,该进程将执行以下操作: 将存储库克隆到EC2实例上的安全临时工作区中 分析发布的问题和相关代码部分 进行内联代码更改。(由于许多LLM会进行完整文件覆盖,因此确定文件中需要更改的代码块可能非常困难,这可以重新工作为完整文件覆盖) 提交更改并打开拉取请求 记录所有MCP活动以进行调试和跟踪 这个项目的目标是最终使用云来托管一套MCP工具,供LLM使用。这将涉及存储、日志、API调用、VPC和复杂权限。
软件组件和服务: 组件 目的 云服务 MCP服务器 向LLM公开开发工具的主要后端进程(文件系统,GitHub API) AWS EC2 贡献者代理 处理webhook触发并请求MCP工具调用 容器化在与MCP服务器相同的EC2实例中 GitHub API 问题/票证、回购数据和拉取请求端点的来源 通过MCP和EC2访问外部服务 服务器日志存储 存储运行日志、差异 AWS S3 API和MCP的身份验证程序 持有GitHub API令牌和凭证 AWS Secrets Manager 服务器日志显示
监视和显示日志,以便以后调试 AWS云观察
系统架构:
软件交互: github webhook将充当激活EC2实例和MCP服务器的外部触发器。MCP服务器将公开一组工具,这些工具将基于GitPython库构建,该库具有签出代码、读取文件、写入文件和提交拉取请求的功能。一旦命中webhook触发器,代理将通过使用GitHub API从发布的票证中获取问题详细信息来启动。接下来,它将使用正在运行的MCP服务器来签出或克隆所指示的代码。随着这种情况的发生,所有操作都将被流式传输到CloudWatch,并随后存储在S3中以供将来参考。专门用于GitHub API调用和MCP权限的凭据和访问令牌将被存储,并通过AWS机密管理器进行访问。一旦LLM收到问题和相关代码的提示,它将编写一个代码更改,该更改将使用调用GitPython函数apply_lilm_changes()的MCP工具应用。此过程完成后,diff将被提交、推送并提交拉取请求。
调试计划: 对于调试和验证,我将重点关注系统的可靠性和操作的正确性。在早期测试期间,我将通过单独测试每个工具调用来操作MCP服务器,然后允许LLM在它们之间进行选择。我还将为CloudWatch实现显式日志记录,以跟踪错误和故障的来源。这样我就可以确定错误的来源,无论是网络调用、身份验证、消息路由等。对于LLM生成的代码的功能测试,我将使用一个沙盒GitHub存储库,可以是现有开源项目的分支,也可以是一个简单的react网站。此外,所有运行时错误都将被CloudWatch捕获并存储在S3存储桶中以供检查。
必要的云服务:EC2、S3、CloudWatch、Secrets Manager、IAM。 你对拟议的项目感兴趣吗,还是觉得这是一项毫无乐趣的努力?解释为什么或为什么不。
是的,这个项目很有趣,因为它结合了自动化、云部署和智能代理工作流。
你认为这个项目想法会满足最终的项目需求(使用不同的云技术)吗?如果没有,请解释您的担忧。
是的,它使用5种AWS云技术(EC2、S3、CloudWatch、Secrets Manager、IAM),并涉及计算、存储、监控和安全等主题。
你认为这个项目在课堂范围内吗?它是否过于雄心勃勃?过于保守?
是的,我唯一担心的是,它可能会被标记为过于雄心勃勃,尤其是对一个人来说,但我相信它在范围内,尤其是在GitPython等已有库的帮助下。由于已经开发了解决类似问题的代码,我的大部分开发时间将用于构建基础设施,以便在云中自主运行。
来源: https://gitpython.readthedocs.io/en/stable/ https://www.anthropic.com/news/model-context-protocol https://medium.com/the-internal-startup/how-to-draw-useful-technical-architecture-diagrams-2d20c9fda90d
