CodeArts 使用指南:华为云代码智能体实战手册
CodeArts 使用指南:华为云代码智能体实战手册
更新日期:2026-08-21
阅读时长:约 15 分钟
引言
在软件工程日益复杂的今天,开发者需要面对海量的代码库、繁琐的构建流程、难以复现的缺陷以及永无止境的需求迭代。CodeArts(华为云码道)是华为云推出的代码智能体,它深度集成于开发流程之中,能够理解项目上下文、执行多步骤任务、调用专业工具链,从而把开发者从机械重复的劳动中解放出来,专注于真正有创造性的工作。
本指南将从定位、能力边界、核心用法、最佳实践到常见误区,系统性地介绍 CodeArts 的使用方法,帮助你快速上手并发挥其最大价值。
一、CodeArts 是什么
1.1 定位
CodeArts 是一个以任务为导向的代码智能体,而非简单的代码补全工具。它具备以下特征:
- 任务驱动:接收自然语言指令,自主拆解为多步骤任务并执行。
- 上下文感知:能读取并理解当前工作目录下的代码、配置、文档。
- 工具链集成:可调用 Bash、文件读写、语义搜索、测试执行、构建修复等工具。
- 技能扩展:内置多套专业技能(Skill),如 Bug 修复、单元测试生成、前端设计、文档撰写、鸿蒙开发等。
- 安全合规:拒绝编写恶意代码,不主动提交变更,不泄露密钥。
1.2 与传统工具的区别
| 能力维度 | 传统代码补全 | CodeArts |
|---|---|---|
| 交互方式 | 单行/多行补全 | 自然语言对话 + 任务编排 |
| 上下文范围 | 当前文件 | 整个工程 + 工具链 |
| 执行能力 | 仅生成文本 | 读写文件、执行命令、运行测试 |
| 任务粒度 | 单次补全 | 端到端功能交付 |
| 可追溯性 | 无 | 任务列表 + 执行过程可见 |
二、核心能力一览
CodeArts 的能力可以归纳为五大类:
2.1 代码理解与探索
- 语义搜索:按意图检索代码片段,而非仅靠关键字匹配。
- 结构分析:快速梳理目录结构、模块依赖、关键入口。
- 行为问答:回答"某功能在哪里实现"、"错误如何被处理"等问题。
2.2 代码编写与修改
- 新功能开发:从需求描述到代码实现。
- 重构优化:改善代码结构、性能、可读性。
- 缺陷修复:定位根因并生成最小化补丁。
- 单元测试:生成、修复、补充测试用例。
2.3 工程治理
- 构建修复:诊断编译/构建错误并迭代修复。
- 代码审查:检查规范、安全、性能隐患。
- 依赖管理:分析依赖、升级建议。
2.4 文档与规格
- 技术文档:PRD、HLD、LLD、TDD 等结构化文档。
- 规格驱动开发(SDD):spec.md / design.md / tasks.md 全流程。
- 文档解析:Word、PPT、Excel、PDF、Markdown 内容提取与问答。
2.5 专业领域
- 鸿蒙(HarmonyOS / ArkTS)应用开发全流程。
- 前端界面设计与生成。
- 国际化(i18n)集成。
- 数据分析与可视化。
三、快速上手
3.1 环境准备
CodeArts 运行于华为云码道平台,无需本地安装。登录控制台后即可在项目工作区中与智能体对话。
3.2 第一次对话
打开工作区,在对话框中输入你的需求。例如:
请帮我分析当前项目的目录结构,并说明主要技术栈。
CodeArts 会自动调用探索工具,读取工程文件,返回结构化的分析结果。
3.3 典型任务示例
示例 1:修复一个 Bug
用户登录后偶发 500 错误,日志显示 NPE。
请帮我定位根因并修复,修复后运行测试验证。
CodeArts 将:
- 分析异常堆栈与日志;
- 在代码库中定位可疑位置;
- 生成最小复现用例;
- 修复缺陷;
- 运行测试并确认通过。
示例 2:开发一个新功能
为用户中心新增"修改密码"接口,
要求:旧密码校验、新密码强度校验、
修改后使旧 Token 失效,并补充单元测试。
CodeArts 将拆解为:接口设计 → 实现逻辑 → Token 失效 → 单元测试 → 自测验证。
示例 3:生成技术文档
请为本项目的"订单服务"编写一份 LLD(低层设计文档),
输出为 Markdown,包含模块划分、接口定义、数据模型、时序图。
四、技能(Skill)体系
CodeArts 通过"技能"封装专业工作流。当你的任务匹配某项技能时,智能体会自动加载对应指令与资源。
4.1 常用技能速查
| 技能名称 | 适用场景 |
|---|---|
codebase-structure |
生成工程结构概览(构建/测试命令、关键模块) |
issue-analysis |
将原始问题描述解析为规范化分析报告 |
issue-reproduction |
生成最小复现用例并收集执行证据 |
static-root-cause-localization |
基于证据的静态根因定位 |
dynamic-root-cause-localization |
收集运行时轨迹后定位根因 |
patch-generation |
生成最小化、可应用、可验证的补丁 |
fix-build-command |
修复 Maven/Gradle/Node.js 构建命令 |
developer-test-agent |
单元测试生成、修复、覆盖率优化 |
doc-expert |
PRD/BRD/HLD/LLD/TDD 等技术文档 |
frontend-design |
高质量前端界面生成 |
pptx |
PPT 读取、生成、编辑 |
data-analysis |
Excel/CSV 数据分析(DuckDB 引擎) |
i18n-integration |
Vue3/React 国际化集成 |
hmos-feature-dev-pipeline |
鸿蒙应用功能开发全流程 |
prd |
产品需求文档生成 |
creating-sdd-directory |
初始化规格驱动开发目录 |
managing-spec-document |
管理 spec.md("做什么"约束) |
managing-design-document |
管理 design.md("怎么做"约束) |
managing-tasks-document |
管理 tasks.md(任务拆解) |
4.2 技能触发机制
- 自动触发:CodeArts 根据任务语义自动匹配技能,无需手动指定。
- 优先级:项目级 AGENT.MD > 全局 AGENT.MD。
- 组合使用:复杂任务可串联多个技能(如 Bug 修复流水线:分析 → 复现 → 定位 → 补丁 → 构建修复)。
五、与 CodeArts 高效协作的技巧
5.1 提示词(Prompt)最佳实践
好的提示词应当:明确、具体、可验证。
| 差的提示词 | 好的提示词 |
|---|---|
| “优化代码” | “将 UserService.findAll 的查询从 N+1 优化为批量查询,并补充回归测试” |
| “修个 Bug” | “支付回调偶发重复扣款,日志见 crash.txt,请定位并修复,附测试” |
| “写个文档” | “为订单服务编写 LLD,Markdown 格式,含接口定义与时序图” |
5.2 让智能体"看见"你的意图
- 提供日志、堆栈、截图路径等证据。
- 指明相关文件或模块(如"参考
src/auth/下的实现风格")。 - 说明验收标准(如"修复后
npm test须全部通过")。
5.3 善用任务列表
对于复杂任务,CodeArts 会自动创建 Todo 列表并逐步推进。你也可以主动要求:
请用 Todo 列表管理这个任务,每完成一步更新状态。
5.4 控制变更范围
- 不希望自动提交?放心,CodeArts 默认不会
git commit,除非你明确要求。 - 希望限定范围?可以说"仅修改
src/payment/下的文件"。 - 希望先看方案?可以说"先给出修改方案,不要直接改代码"。
5.5 验证与回滚
- 完成后要求运行 lint / typecheck / test。
- 若结果不符合预期,可直接要求"回滚刚才的修改"或"换一种方案"。
六、工作流实战:从 Bug 到修复
下面以一个真实场景演示完整流程。
6.1 场景描述
线上出现用户登录后偶发 500 错误,日志片段如下:
NullPointerException at com.example.auth.TokenValidator.validate(TokenValidator.java:87)
6.2 与 CodeArts 的对话
第一轮:提交问题
用户登录偶发 500,NPE 出现在 TokenValidator.validate:87。
日志文件:./log_info.log
请定位根因并修复。
CodeArts 的行动:
- 加载
issue-analysis技能,解析问题。 - 读取
TokenValidator.java第 87 行附近代码。 - 加载
static-root-cause-localization,结合日志定位可疑路径。 - 发现:当用户对象为 null(未初始化的缓存命中)时,直接调用
user.getId()导致 NPE。
第二轮:要求复现
请生成一个最小复现测试,确认这是根因。
CodeArts 的行动:
- 加载
issue-reproduction技能。 - 构造缓存命中但用户为 null 的测试用例。
- 运行测试,复现 NPE,确认根因。
第三轮:修复与验证
请修复,并运行全部测试。
CodeArts 的行动:
- 加载
patch-generation技能。 - 在
validate方法中增加 null 检查与降级逻辑。 - 运行
mvn test,全部通过。 - 输出 diff,等待你确认是否提交。
七、规格驱动开发(SDD)
对于复杂功能,CodeArts 支持规格驱动开发流程,将"做什么"与"怎么做"分离,保证实现与需求一致。
7.1 三份核心文档
| 文档 | 作用 | 约束 |
|---|---|---|
spec.md |
需求规格 | 描述"做什么",禁止包含设计细节 |
design.md |
设计文档 | 描述"怎么做",须满足 spec 约束 |
tasks.md |
任务清单 | 从 design 拆解而来,可执行、可追踪 |
7.2 流程
需求描述
│
▼
creating-sdd-directory → 初始化 SDD 目录
│
▼
managing-spec-document → 编写 spec.md
│
▼
managing-design-document → 编写 design.md
│
▼
managing-tasks-document → 拆解 tasks.md
│
▼
按任务执行实现 → 构建 → 自测
7.3 启动方式
我想用规格驱动开发的方式,为系统新增"消息已读回执"功能。
CodeArts 会自动依次加载相关技能,引导你完成全流程。
八、常见问题与误区
Q1:CodeArts 会自动提交代码吗?
不会。 除非你明确说"提交"或"commit",否则所有变更仅停留在工作区。
Q2:它能理解我的私有框架吗?
可以。CodeArts 会读取项目中的 AGENT.md、README、配置文件等来理解约定。建议在项目根目录维护一份 AGENT.md,写明构建命令、测试命令、代码规范等。
Q3:修改后代码不通过 lint / test 怎么办?
CodeArts 会在交付前主动运行检查。若失败,它会尝试修复并重试。若仍无法通过,会向你报告具体错误,由你决策。
Q4:如何让它遵循团队代码风格?
- 在
AGENT.md中写明规范(如"使用 4 空格缩进、禁止 var")。 - 让它先阅读现有代码再动手(“参考
src/下现有风格”)。 - 完成后要求运行 lint。
Q5:它会不会改坏别的代码?
CodeArts 倾向于最小化变更。你可以说"仅修改指定文件,不要动其他地方"来进一步收窄范围。重要分支建议先创建提交或 stash 作为安全网。
Q6:支持哪些语言/框架?
Java、TypeScript、JavaScript、Python、C、C++、ArkTS(鸿蒙)等。对 Maven、Gradle、npm、pytest、JUnit 等工具链有原生支持。
九、进阶用法
9.1 多智能体协作
CodeArts 内部可调度多个子智能体(subagent):
explore:快速代码探索。developer-test-agent:专职单元测试。bug-fix-agent:专职缺陷修复。spec-design-agent/spec-requirement-agent/spec-task-agent:规格驱动三件套。hmos-build-fixer/hmos-logic-coder:鸿蒙构建与逻辑编码。
你无需手动选择,CodeArts 会根据任务自动委派。
9.2 定时任务
你可以创建定时任务让 CodeArts 在指定时间执行:
每天早上 9 点运行一次全量测试,若有失败则生成修复建议。
9.3 知识库检索
接入企业知识库后,CodeArts 可在回答时检索内部文档、规范、历史方案,使建议更贴合团队实际。
9.4 文档解析与再创作
- 上传一份
.docx需求文档,要求"基于此文档生成技术设计"。 - 上传
.xlsx接口清单,要求"生成对应的 Mock 服务"。 - 上传
.pptx,要求"总结核心观点并转为 Markdown"。
十、安全与合规要点
- 拒绝恶意请求:即便声称"用于学习",也拒绝编写或解释恶意代码。
- 密钥保护:不会将密钥写入代码或日志,不会提交含密钥的文件。
- 不可逆操作保护:不会执行
push --force、hard reset等危险命令,除非明确要求。 - 变更可见:所有文件修改均通过工具调用可见,不存在"暗中改文件"。
- 项目级规则优先:项目
AGENT.md优先于全局规则,便于团队定制。
十一、AGENTS.md 编写建议
在项目根目录放置 AGENTS.md,能显著提升 CodeArts 的协作质量。推荐结构:
# 项目说明
- 名称:xxx
- 技术栈:Spring Boot 3 / React 18 / PostgreSQL
- 语言:Java 17 / TypeScript 5
# 构建与测试
- 构建:`mvn clean package -DskipTests`
- 单元测试:`mvn test`
- 前端构建:`npm run build`
- 前端测试:`npm run test`
# 代码规范
- Java:遵循 Google Java Style,4 空格缩进
- 提交信息:Conventional Commits
- 禁止:var、public 字段、魔法数字
# 关键模块
- 认证:src/main/java/com/example/auth/
- 订单:src/main/java/com/example/order/
- 前端入口:src/main/react/
# 注意事项
- 修改订单服务前须同步通知 @reviewer-team
- 数据库迁移文件不可修改历史版本
十二、版本与生态
- 模型:CodeArts 当前由 GLM-5.2 驱动(模型 ID:
inferhub-provider/GLM-5.2)。 - 平台:华为云码道(CodeArts)控制台。
- 集成:支持 Git 仓库接入、CI/CD 联动、知识库挂载。
- 技能生态:技能持续扩展,企业可贡献自定义技能。
结语
CodeArts 的价值不在于"替你写代码",而在于把工程中机械、繁琐、易错的部分自动化,让你把精力留给架构决策、业务建模与创造性思考。
上手建议:从一个真实的小任务开始——修复一个 Bug、补一个测试、写一份文档——感受它的任务拆解与工具调用能力,再逐步扩展到端到端功能开发与规格驱动流程。
工具是手的延伸,智能体是脑的延伸。用好 CodeArts,让工程回归创造本身。
本文由 CodeArts(华为云码道)团队撰写。如需了解更多,请访问华为云码道控制台。
- 点赞
- 收藏
- 关注作者
评论(0)