# 通过华为云码道CodeArts代码智能体实现代码托管智能化
代码托管服务（CodeArts Repo）支持以"CodeArts工具链插件"形式与[华为云码道CodeArts代码智能体](https://codearts.huaweicloud.com/)集成。基于插件化架构设计，通过灵活配置提示词（Prompt）、技能（Skill）等指令，使代码智能体能够精准理解用户意图，高效、准确地完成代码仓库相关操作，为研发团队提供智能化、一体化的仓库管理解决方案。
当用户面临代码提交、合并请求、代码评审等场景时，无需学习控制台的相关操作，就可以直接在华为云码道CodeArts代码智能体聊天窗口通过自然语言指令，主动触发对应技能完成仓库管理任务，无需手动调用或切换至独立的仓库管理界面，实现研发流程的无缝衔接与高效协作。
#### 核心价值
- **自然语言驱动**：用户仅需在聊天窗口中以自然语言描述操作需求，即可主动触发对应技能完成仓库管理任务，无需学习控制台操作规范，显著降低工具使用门槛。
- **智能化仓库管理**：通过插件化架构与可配置的提示词（Prompt）、技能（Skill）指令体系，使代码智能体能够精准理解用户意图，高效、准确地完成代码仓库相关操作。
- **全流程闭环**：代码提交、合并请求、代码评审等场景全程在对话界面内闭环完成，无需手动调用或切换至独立的仓库管理界面，消除跨平台操作成本。
- **无缝研发衔接**：将仓库管理能力深度融入日常研发对话场景，实现从指令输入到任务执行的无缝衔接与高效协作，提升团队整体研发效能。
 
#### 工作原理
代码托管（CodeArts Repo）通过CodeArts工具链插件，将自身API能力开放给华为云码道CodeArts代码智能体调用。当用户在码道代码智能体窗口输入自然语言指令后，华为云码道CodeArts代码智能体解析用户意图并匹配对应技能（Skill），并通过KooCLI调用CodeArts工具链API执行相应操作，操作完成后将结果返回至聊天窗口。
图1交互流程   
![](https://support.huaweicloud.com/usermanual-codeartsrepo/zh-cn_image_0000002699471446.png "点击放大")
#### CodeArts工具链插件
CodeArts工具链插件将需求管理、代码托管、代码检查、测试、流水线与编译构建、制品管理、部署发布等CodeArts研发服务以技能（Skill）和子代理（SubAgent）形式集成在代码智能体中。用户安装插件后，无需切换控制台，直接在智能体聊天窗口通过自然语言指令即可触发对应服务操作。主Agent接收用户指令后，通过Skill获取执行规范与路由策略：交互式操作由Skill引导完成，复杂编排任务委托SubAgent在隔离上下文中自主执行并返回结果。CodeArts工具链插件包含的skill及subagent详情请查阅[CodeArts全量Subagent和Skill](https://support.huaweicloud.com/bestpractice-codeartsagent/codeartsagent_bp_0055.html#section1)。
代码托管在CodeArts工具链插件中提供了三个技能（Skill）和一个子代理（SubAgent）。
- 技能（commit-messages）是代码提交消息的规范管理专家，覆盖提交消息生成、格式校验、原子提交拆分等场景，能自动检测项目既有提交规范并生成结构化提交消息；
- 技能（mr-description）是合并请求描述的智能编写专家，通过读取分支差异和合并请求元数据，自动推断变更意图并生成涵盖变更摘要、功能说明、影响范围等标准章节的结构化描述，最终通过 UpdateMergeRequest API将描述应用到合并请求；
- 技能（mr-review）是合并请求代码审查专家，通过读取合并请求差异、提交记录和文件变更树，按照正确性、安全性、可维护性、性能四个维度逐文件分析，生成带优先级分级（P0\~P3）的结构化审查报告，并可在用户确认后将评审意见以行内评论或通用评论的形式发布到合并请求。
当任务复杂度高、涉及多步编排或需要自主决策时，技能会将任务转交给子代理（codearts-repo）执行。子代理在独立上下文中自主运行，不占用主会话资源，通过CLI工具完成代码提交、合并请求创建与合并、仓库管理、分支策略配置、保护分支管理等复杂编排任务。内置参数确认规则、写操作安全策略等处理机制，完成后返回结构化结果报告。
#### 适用场景
在使用代码托管时，以下场景均可使用华为云码道CodeArts代码智能体完成。
| 场景分类     | 场景说明                                            | 自然语言指令示例                                                                   |
|:---|:---|:---|
| 代码提交     | 当用户执行代码提交操作时，生成并校验符合规范的提交消息，并对不合规的提交消息给出修改建议。 | 创建名为**repo-task**的代码仓库，在其中创建repo-file.java示例文件，填写提交信息commit message并完成代码提交。 |
| 合并请求描述更新 | 当用户创建或更新合并请求时，生成或更新合并请求的描述内容，减少人工编写成本。          | 在代码仓库**repo-task**中创建一个标题为mr-demo、描述为mr-description的合并请求，并确认提交。            |
| 合并请求评审     | 当用户发起代码评审请求时，基于智能语义理解，识别潜在问题并生成评审意见。            | 在代码仓库**repo-task**中，对合并请求mr-demo中的代码示例添加检视意见，并查看结果。                          |
   
#### 前提条件
- 已安装并登录[华为云码道CodeArts代码智能体](https://support.huaweicloud.com/qs-codeartsagent/codeartsagent_qs_0001.html)。
- 已在码道代码智能体中安装[CodeArts工具链压缩包](https://cnnorth4-cloudide-marketplace.obs.cn-north-4.myhuaweicloud.com/codearts/codeartsplugin/1.0.0/CodeArtsPlugin_resource_26.0924.1549_all.tar.gz)。
- 已安装华为云命令行工具服务[KooCLI](https://support.huaweicloud.com/hcli/index.html)。
- 已[购买并授权使用Repo](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0132.html)。
- 本操作执行工具调用、大模型推理会消耗码道代码智能体账号下的token或者积分。
 
#### 操作步骤
1. 单击[下载CodeArts工具链压缩包](https://cnnorth4-cloudide-marketplace.obs.cn-north-4.myhuaweicloud.com/codearts/codeartsplugin/1.0.0/CodeArtsPlugin_resource_26.0924.1549_all.tar.gz)。
2. 单击执行插件包中install.bat脚本，完成插件和KooCLI安装。
3. 完成[KooCLI初始化配置](https://support.huaweicloud.com/usermanual-hcli/hcli_03_002.html)，将常用的永久AK/SK和区域信息存储在配置文件中，避免执行操作时频繁输入这些固定信息。
4. 打开华为云码道代码智能体聊天窗口，用自然语言告诉它你想做什么，就可以开始使用。 
   ![](https://support.huaweicloud.com/usermanual-codeartsrepo/public_sys-resources/note_3.0-zh-cn.png)
   - 首次使用码道代码智能体执行代码托管任务相关操作时，分析过程时间较长，随着指令使用的次数增加，分析速度会逐步提升，响应时间逐渐缩短。
   
   
   
   - 不同码道代码智能体客户端的界面风格有所差异，实际操作请以所用工具的显示为准。
    
   
   
 
#### 场景一：提交代码
以下指令以提交代码为例：
```
创建一个名为“repo-task”的代码仓库。
在该仓库中创建一个“repo-file.java”的代码示例文件，填写提交信息内容为“commit message”，并完成代码提交。
```
智能体开始分析任务并执行，整个过程在对话流里实时显示。创建成功后，用户可以代码托管管理控制台仓库列表中查看已创建的任务。
效果示例：
![](https://support.huaweicloud.com/usermanual-codeartsrepo/zh-cn_image_0000002742161137.png "点击放大")
#### 场景二：新建合并请求
以下指令以新建合并请求任务为例：
```
在代码仓库repo-task中创建一个标题为mr-demo、描述为mr-description的合并请求，并确认提交。
```
创建成功后，用户可以在代码托管管理控制台仓库列表中查看已创建合并请求的描述信息。
效果示例：
![](https://support.huaweicloud.com/usermanual-codeartsrepo/zh-cn_image_0000002712443158.png "点击放大")
#### 场景三：评审合并请求
以下指令以添加合并请求检视意见为例：
```
在合并请求mr-demo的变更文件repo-file.java中，对第四行添加检视意见，内容为：The command is repeated. Please modify it.
```
代码智能体会根据提示添加检视意见，用户可以在变更文件repo-file.java的评论区查看检视意见。
效果示例：
![](https://support.huaweicloud.com/usermanual-codeartsrepo/zh-cn_image_0000002743022553.png "点击放大")
#### 相关文档
关于CodeArts工具链插件的更多使用场景，请参考[通过CodeArts工具链插件开发旅游小助手](https://support.huaweicloud.com/bestpractice-codeartsagent/codeartsagent_bp_0053.html)。
