把华为云 CodeArts Agent 调成类似 Codex /goal 的目标执行模式

举报
yd_241399266 发表于 2026/06/08 09:53:11 2026/06/08
【摘要】 CodeArts Agent 目前还没有像 Codex 那样的平台原生 /goal 生命周期,但可以通过“用户级 commands + 用户级 agent + 项目级 goal-state.json + 个人级 goal-policy.json”拼出一套行为上比较接近的单目标执行模式。现在这套方案已经补了 3 个关键点:个人级策略文件、UTF-8 统一、轻量 JSONL 审计日志。实际效果是:工作

把华为云 CodeArts Agent 调成类似 Codex /goal 的单目标执行模式

整理时间:2026-06-08

适用环境:

  • Windows
  • PowerShell
  • 华为云 CodeArts Agent
  • 希望把 CodeArts 调成“围绕一个目标持续执行,本地开发少打扰,高风险动作再确认”的用法

先说结论:

  • 截至 2026-06-08,CodeArts Agent 本身还没有像 Codex 那样的平台原生 /goal 生命周期。
  • 但可以通过“用户级 commands + 用户级 agent + 项目级 goal-state.json + 个人级 goal-policy.json”拼出一套行为上比较接近的方案。
  • 这套方案现在重点补了 3 件事:
    • 个人级策略文件
    • UTF-8 统一
    • 精简审计日志

1. 这套方案解决什么问题

很多人用 CodeArts Agent 时,都会遇到这几类问题:

  • 想让 agent 围绕一个目标持续做,而不是每轮重新解释上下文。
  • 想把“继续”“确认继续”“看下状态”“停止”这些控制动作做轻一点。
  • 想减少本地开发过程中的频繁确认。
  • 想让配置是个人级全局复用,但不同项目之间又不要串状态。
  • 想在出问题时有一份比 kernel log 更轻的审计记录。

这套方案的目标很直接:

  • /goal 作为统一入口
  • 当前目标状态按项目隔离
  • 个人偏好按用户隔离
  • 安全的本地开发动作默认直跑
  • 只有高风险边界动作才停下来确认
  • 发生过什么先看轻量审计日志,不先钻大日志

2. 最终结构

推荐结构是“两层状态 + 一层入口”:

  • 用户级入口和默认策略:
    • C:\Users\<你的用户名>\.codeartsdoer\agents\
    • C:\Users\<你的用户名>\.codeartsdoer\commands\
    • C:\Users\<你的用户名>\.codeartsdoer\goal-policy.json
  • 项目级运行状态:
    • <当前仓库>\.codeartsdoer\goal-state.json
  • 用户级轻量审计:
    • C:\Users\<你的用户名>\.codeartsdoer\goal-history.jsonl

这样分层的原因很简单:

  • 如果全部放项目里,每个仓库都要复制一套 commands 和 agent。
  • 如果全部放用户目录里,所有仓库会共用一个运行状态,容易串项目。
  • “用户级入口 + 项目级状态 + 用户级审计”是最稳的折中。

一句话概括:

/goal 是全局入口,goal-policy.json 是个人默认策略,goal-state.json 是当前项目的运行状态,goal-history.jsonl 是轻量审计记录。

3. 这次实测涉及的关键文件

用户级文件:

  • C:\Users\Yao\.codeartsdoer\agents\goal-runner.md
  • C:\Users\Yao\.codeartsdoer\agents\build.md
  • C:\Users\Yao\.codeartsdoer\commands\goal.md
  • C:\Users\Yao\.codeartsdoer\commands\goal-continue.md
  • C:\Users\Yao\.codeartsdoer\commands\goal-status.md
  • C:\Users\Yao\.codeartsdoer\commands\goal-stop.md
  • C:\Users\Yao\.codeartsdoer\goal-policy.json
  • C:\Users\Yao\.codeartsdoer\goal-history.jsonl
  • C:\Users\Yao\.codeartsdoer\README-goal.md

项目级文件:

  • <repo>\.codeartsdoer\goal-state.json

这里有两个关键点:

  • goal-state.json 不需要手工预创建,第一次真正运行 /goal 时再生成即可。
  • goal-policy.json 只放个人默认策略,不放当前项目的运行状态。

4. 现在的交互方式

主入口:

 
/goal 帮我开发一个 crm demo

后续尽量使用自然语言控制:

 
继续 确认继续 看下状态 停止

保留的兜底命令:

 
/goal-continue /goal-status /goal-stop

理想交互是这样:

  1. 用 /goal 启动一个明确目标。
  2. agent 先写入一个很短的 goal 结构。
  3. 然后立刻执行,不停在流程说明里。
  4. 如果只是上下文中断了,就说一句 继续。
  5. 如果碰到高风险边界动作,再说一句 确认继续。

5. 这次新增的 3 个优化点

5.1 个人级策略文件

新增:

  • C:\Users\Yao\.codeartsdoer\goal-policy.json

它现在负责:

  • 安全本地动作白名单类别
  • 需要确认的风险类别
  • 继续 / 确认继续 / 状态 / 停止 这类自然语言关键词
  • 轻量审计日志路径

这一步的价值很大,因为它把“个人习惯”和“当前项目状态”拆开了。

也就是说:

  • 个人偏好:放 goal-policy.json
  • 当前项目执行进度:放 goal-state.json

以后你要调个人风格,不用改每个项目的状态文件。

5.2 UTF-8 统一

这次把我们自己维护的这一层统一到了 UTF-8:

  • goal-policy.json
  • goal-history.jsonl
  • README-goal.md
  • 新版论坛稿和导出脚本
  • 后续由这套提示词写出的 goal-state.json

重点不是去修 CodeArts 内核原生日志,而是保证“你自己这一层”不要再制造乱码。

否则有两个现实问题:

  • 排错时很难看
  • 发论坛后别人照着抄,遇到乱码会直接怀疑方案本身有问题

5.3 精简审计日志

新增:

  • C:\Users\Yao\.codeartsdoer\goal-history.jsonl

这是一个轻量 JSONL 日志,定位是:

  • 先看它,再看大日志
  • 一行一条事件
  • 只记最关键字段

推荐记录字段:

  • time
  • goal_id
  • workspace
  • command
  • status
  • risk_category
  • action
  • result
  • updated_by

这样做的好处是:

  • 你不需要每次先翻 kernel log
  • 想确认“上次停在哪”“是不是进入过 need_confirm”“确认的是哪一类风险”时更快

6. 当前安全边界

6.1 默认直跑的安全本地动作

以下动作默认不需要确认:

  • 读、搜、列工作区文件
  • 在工作区内改源码、配置、文档、测试、静态资源
  • 改工作区内 dotfiles
  • 改项目内 .codeartsdoer/*
  • 在工作区内脚手架代码
  • 安装本地依赖
  • 跑本地 build、lint、test、format、dev
  • 启动本地预览或开发服务
  • 本地建分支
  • 本地 git commit
  • git status、git diff、git log、git show 这类非破坏性 git 查看动作

这一步决定了这套方案像不像 Codex。

如果这些本地动作还要频繁确认,那体验就还是碎的。

6.2 仍然保留确认的高风险类别

当前保留的类别:

  • destructive_local
  • external_write
  • deploy_release
  • secrets_credentials
  • out_of_workspace
  • payments_purchases

可以直白理解为:

  • destructive_local:本地破坏性动作,比如 git reset --hard
  • external_write:离开当前机器的写动作,比如 git push
  • deploy_release:部署、发布、上传产物
  • secrets_credentials:动密钥、令牌、凭据
  • out_of_workspace:写当前仓库外路径
  • payments_purchases:可能花钱或消耗计费资源

6.3 为什么不建议彻底改成零确认

个人自己玩当然可以继续放开,但不建议作为公开分享的默认方案,原因很现实:

  • 一旦误触远端写入、部署、破坏性操作,代价太高。
  • 发论坛给别人参考时,默认方案要可控、可复用。
  • “只对高风险动作确认一次”已经把摩擦压得比较低了。

我更推荐公开版本保持这个边界:

  • 本地开发少打扰
  • 远端/破坏性/工作区外边界才拦

7. 现在和 Codex 原生 /goal 的差别

这点一定要讲清楚。

这套方案是“行为接近”,不是“平台原生等价”。

主要差别:

  • 它本质上还是 prompt + commands + agent + 本地状态文件的组合。
  • goal-state.json 和 goal-history.jsonl 都是约定式状态,不是平台内建状态机。
  • 继续 / 确认继续 / 看下状态 / 停止 这些自然语言是否稳定命中,仍然依赖模型遵循提示词。
  • 上下文或工具上限到了以后,依然可能需要人再发一句 继续。

更准确的说法应该是:

“把 CodeArts Agent 调成类似 Codex /goal 的单目标执行模式。”

而不是:

“CodeArts 已经原生有 Codex 那种 /goal 了。”

8. 验收结果

这轮已经实测过的边界行为:

  • 工作区内安全动作可直接执行,不再要求确认。
  • git push 会在执行前进入 need_confirm,类别是 external_write。
  • git reset --hard HEAD 会在执行前进入 need_confirm,类别是 destructive_local。
  • 工作区外写入会在执行前进入 need_confirm,类别是 out_of_workspace。
  • 审计和状态文件路径已经固定下来,便于后续继续收敛。

也就是说,当前已经能做到:

  • 本地开发默认少打扰
  • 只有真正高风险的边界动作才拦

9. 推荐给别人复用的目录结构

建议别人直接按这个结构放:

 
C:\Users\<用户名>\.codeartsdoer\ agents\ build.md goal-runner.md commands\ goal.md goal-continue.md goal-status.md goal-stop.md goal-policy.json README-goal.md

然后每个仓库自己维护:

 
<repo>\.codeartsdoer\goal-state.json

审计文件建议放在用户目录:

 
C:\Users\<用户名>\.codeartsdoer\goal-history.jsonl

10. 一段适合发论坛的简版结论

    CodeArts Agent 目前还没有像 Codex 那样的平台原生 /goal 生命周期,但可以通过“用户级 commands + 用户级 agent + 项目级 goal-state.json + 个人级 goal-policy.json”拼出一套行为上比较接近的单目标执行模式。现在这套方案已经补了 3 个关键点:个人级策略文件、UTF-8 统一、轻量 JSONL 审计日志。实际效果是:工作区内安全开发动作默认直跑,只有 git push、破坏性本地操作、工作区外写入、部署和凭据相关动作才进入 need_confirm,而且同一 goal 内同类风险只需要确认一次。它不是平台原生 1:1 等价,但日常开发体验已经比较接近 Codex /goal 了。

11. 最后一句判断

如果你的目标是:

  • “能不能完全做到 Codex 平台原生 /goal 那种程度”

那答案还是:

  • 还不能

如果你的目标是:

  • “能不能把 CodeArts Agent 调到一个足够接近、足够好用、能持续开发的单目标模式”

那现在的答案是:

  • 可以,而且这一版已经比前面的方案更适合拿去公开分享和复用
  • 文件下载链接:https://share.fnnas.net/s/fafd7bc8dfc64a7db0 
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。