当前位置: 首页 > ops >正文

AI【应用 01】Trae Agent Gitee自动化辅助神器(使用 MCP tools 创建自定义 Trae Agent 的探索分享)

我用Trae 做了一个有意思的Agent 「Gitee自动化辅助神器」。 点击 https://s.trae.com.cn/a/b38cc4 立即复刻,一起来玩吧!

寻找地表最强 Trae Agent

  • 1.简介
    • 1.1 最初的想法
    • 1.2 实现的功能
  • 2.创作构思
    • 2.1 设计初衷(解决痛点)
    • 2.2 核心价值
    • 2.3 适用场景
  • 3.技术实现原理
    • 3.1 整体架构
    • 3.2 关键技术组件
  • 4.Prompt
  • 5.效果展示
    • 5.1 仓库创建
    • 5.2 issue 创建
  • 6.总结

1.简介

一个自动化管理源码的工具,实现上班前的代码自动拉取、合并,下班后的代码自动提交,让开发者只关心核心代码编写的辅助工具。其核心目标是简化重复性操作,提升开发者与 Gitee 交互的效率。

1.1 最初的想法

由于没有找到定时调度类的 MCP 服务器,设想是读取 Excel 文件里的命令,根据命令设置的执行时间进行接口调用,执行结束后将 MCP 服务的反馈结果保存回 Excel 里。设置了两个时间段的代码拉取与提交操作,设计的 Excel 文档格式如下:

命令ID命令内容执行时间状态时间戳错误信息返回数据
1合并拉取请求08:30:00成功2025-06-10T08:31:00Z{“code”: 0, “msg”: “执行成功”}
2代码提交11:50:00失败2025-06-10T11:51:00Z命令不存在{“code”: 404, “msg”: “命令不存在”}
3合并拉取请求13:30:00
4代码提交17:50:00

我使用的是 Gitee 作为源码管理的 MCP 服务器:

完整流程图为:

在这里插入图片描述

1.2 实现的功能

查看了 Gitee MCP 服务器提供的各种与 Gitee 交互的工具才发现没有跟 Push相关的命令,只有跟 Pull相关的命令,如下:

list_repo_pullsPull Request列出仓库中的拉取请求
merge_pullPull Request合并拉取请求
create_pullPull Request创建拉取请求
update_pullPull Request更新拉取请求
get_pull_detailPull Request获取拉取请求的详细信息
comment_pullPull Request评论拉取请求
list_pull_commentsPull Request列出拉取请求的所有评论

我发现 GitHub MCP Server 是有push_files工具的,但是我们没有使用 GitHub 进行代码管理,相信 Gitee MCP 服务器以后也会提供提交相关的命令的。修改后的 Excel 内容:

命令ID命令内容执行时间状态时间戳错误信息返回数据
1合并拉取请求08:30:00
2合并拉取请求13:30:00

2.创作构思

2.1 设计初衷(解决痛点)

  1. 开发者需要频繁手动操作 Gitee(如创建合并请求、管理分支),效率低下。
  2. Excel 作为常见的数据管理工具,缺乏与 Gitee 的直接联动能力。
  3. 传统脚本或工具需要复杂配置。
  4. 目标:通过 Agent 实现Excel指令 → Gitee操作 → 结果回写的自动化,降低人工操作成本,减少错误率。

2.2 核心价值

  1. 低门槛:用户只需在 Excel 中填写命令,无需编写代码或脚本。
  2. 动态交互:支持实时调用 Gitee API,并自动更新执行结果(如状态码、返回数据)。
  3. 可扩展性:通过 MCP 协议灵活集成其他工具(如文件系统、日志记录)。

2.3 适用场景

  • 批量创建或更新 Gitee 合并请求。
  • 自动化同步本地 Excel 配置到 Gitee 仓库(如自动化部署脚本)。
  • 实时监控 Gitee 仓库状态并反馈到 Excel(如CI/CD流程结果)。

3.技术实现原理

3.1 整体架构

  • 输入层:Excel文件作为指令来源(如合并请求标题、目标分支等)。
  • 逻辑层:Agent 解析 Excel 内容,通过 MCP 调用 Gitee API。
  • 输出层:将 API 执行结果(成功/失败、错误信息等)写入Excel。

3.2 关键技术组件

MCP 作为桥梁连接 Excel、Gitee API 和 Agent,定义工具调用规范:

  • Agent 通过 MCP 发现可用工具(如gitee_api_tool)。
  • 使用Excel MCP Server解析 Excel 指令,调用Gitee MCP Server发送命令请求。
  • 将返回结果通过Excel MCP Server写入 Excel。
  1. Excel

使用Excel MCP Server实现读写Excel文件,通过读取 Excel 中的各个字段,作为 API 参数。

  1. Gitee

使用Gitee MCP Server调用 Gitee 的 URL,传递认证令牌(如私人令牌)和参数,举例:

  • 合并拉取请求:POST https://gitee.com/api/v5/repos/{owner}/{repo}/**merge_pull**
  • 搜索用户:GET https://gitee.com/api/v5/repos/{owner}/{repo}/**search_users**
  • 错误处理与日志
    • 捕获网络异常(如超时、认证失败)并记录到 Excel 的错误信息字段。
    • 支持重试机制(如失败后自动重新调用API)。

4.Prompt

// 角色设定
你是一个自动化代理,负责从Excel文件中读取命令,调用Gitee的MCP服务,并将调用结果整理后记录回Excel。// 任务目标
1. 读取Excel文件中的命令列表(每行包含一个命令,如合并请求标题、执行时间等)。
2. 对每个命令执行以下操作:- 调用Gitee MCP 服务(例如:合并拉取请求)。- 解析服务返回结果(如合并拉取请求ID、状态)。
3. 将调用结果写入Excel文件:- 成功时:记录合并请求ID、状态、时间戳。- 失败时:记录错误代码、错误信息、时间戳。
4. 如果遇到异常(如网络中断或API认证失败),停止后续操作并返回错误日志。// 输入参数
- Excel文件路径:`./commands.xlsx`
- Gitee MCP GITEE_ACCESS_TOKEN`gitee_access_token`
- API基础URL`https://gitee.com/api/v5`// 输出要求
1. 控制台输出:- 成功时:`已处理 [X] 条命令,结果已保存到 commands.xlsx`- 失败时:`第 [N] 条命令失败:[错误原因]`
2. Excel文件格式:
| 命令ID | 命令内容     | 执行时间 | 状态 | 时间戳 | 错误信息 | 返回数据 |
| ------ | ------------ | -------- | ---- | ------ | -------- | -------- |
| 1      | 合并拉取请求 | 08:30:00 |      |        |          |          |
| 2      | 合并拉取请求 | 13:30:00 |      |        |          |          |// 示例输入(Excel文件内容)
命令内容:创建合并请求
目标分支:main
源分支:trae_aget// 示例输出(控制台)
已处理 2 条命令,结果已保存到 commands.xlsx// 示例输出(Excel)
| 命令ID | 命令内容     | 执行时间 | 状态 | 时间戳 | 错误信息 | 返回数据 |
| ------ | ------------ | -------- | ---- | ------ | -------- | -------- |
| 1      | 合并拉取请求 | 08:30:00 | 成功| 2025-06-10T08:31:00Z|          |{"code": 0, "msg": "执行成功"}|
| 2      | 合并拉取请求 | 13:30:00 | 失败| 2025-06-10T13:31:00Z|          |{"code": 404, "msg": "命令不存在"}|

5.效果展示

5.1 仓库创建

能够 AI 改错是真的挺好的:

去 Gitee 查看仓库,发现已经创建成功了:

5.2 issue 创建

查看结果也是创建成功了:

6.总结

使用命令进行仓库、issue 的创建还是很惊艳的,但是 Excel MCP 服务有一些问题。

使用 Excel MCP 服务创建的文件无法打开,可能是我的 Excel 版本较低导致的。

自己创建的文件 Excel MCP 服务可以读取数据但是无法写入。

http://www.xdnf.cn/news/13296.html

相关文章:

  • 自定义鼠标效果 - 浏览器扩展使用教程
  • Linux驱动:framebuffer应用层实践
  • React Native UI 框架与动画系统:打造专业移动应用界面
  • vue中的v-model指令和组件通信机制
  • MyBatis实战指南(七)MyBatis缓存机制
  • PosterSQL日常维护
  • Asp.Net Core SignalR导入数据
  • whttpserver:一个命令极速搭建文件上传与下载服务器
  • 前端开发中vue的脚手架你知道是什么意思吗?
  • Kafka 2.7.0 单节点安装与启动教程(适配 JDK 1.8)
  • C++ 中的函数重载
  • 【S905X3通刷】【HK1 BOX】【适配slimBOXtv所有机型】slimBOXtv-9.17.2-ATV系统中文版线刷固件包
  • 循环冗余码校验CRC码 算法步骤+详细实例计算
  • ​​扩散模型调度器(Scheduler)
  • Linux系统编程-DAY12
  • 【第二十一章 SDIO接口(SDIO)】
  • Springboot度假村住宿服务平台95i1e(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • BUUCTF杂项MISC题解题思路(2)(不断更新)
  • Day50打卡 @浙大疏锦行
  • CppCon 2015 学习:Implementing class properties effectively
  • 维度建模是什么意思?如何实现维度建模?
  • Postgresql数据库初体验
  • 全连接网络
  • java常量池和字符串常量池
  • 24-Oracle 23 ai ​Lock-Free Reservations​(无锁列值保留)
  • Vue3通过自定义指令实现数字滚动动画效果
  • 《Playwright:微软的自动化测试工具详解》
  • 联邦学习聚合参数操作详解
  • 关于个性化头像框设计的分享与服务说明
  • cv::Range的用法