Execute a concrete algorithm implementation cycle for the Gorge Chase KaiWuDRL repository. The implementation must be grounded in source-code entry points, development docs, smoke-test validation, and NOW.md-to-algorithm-doc drafting.
实现目标:$ARGUMENTS
把一轮算法设计真正落地到源码中,并在实现结束时把 DEV_MEMORY/NOW.md 整理成“算法文档初稿”。
这里的“算法文档初稿”应当参考当前正式算法文档结构,包含除训练信息以外的全部内容,并为后续人工补充训练/测试 HTML 文档预留目录。
重要:
agent_ppo/只是目录名(源于最初实现为 PPO),不代表必须保持 PPO 结构。你可以在该目录下实现任何算法(DQN、SAC、A3C 等),只要接口兼容即可。
根据用户指令,判断实现用户指定算法/继续完成NOW.md
当前 baseline 算法和正式算法文档是什么
如果这些信息不清楚,先回到 /kaiwu-dev-init,不要直接改代码。
查看当前所处分支,是否为该算法实现对应分支,若否,则根据当前实现的算法创建新分支
git branchgit checkout -b feature/*至少要知道:
agent_ppo/conf/train_env_conf.tomlconf/configure_app.toml开发文档/开发指南/环境详述.md 与 开发文档/开发指南/数据协议.md开发文档/腾讯开悟强化学习框架/智能体/*.md若涉及外部参考算法:
reference_algos/<算法名>/README.md 了解整体结构reference_algos/<算法名>/code/ 下的具体实现:
feature/state_manager.py)model/model.py)# 思路来自 reference_algos/hok_prelim/...)实现前必须能复述下面这条入口链:
train_test.py
-> conf/app_conf_gorge_chase.toml
-> conf/algo_conf_gorge_chase.toml
-> agent_ppo/conf/conf.py
-> agent_ppo/conf/train_env_conf.toml
-> agent_ppo/agent.py
-> agent_ppo/feature/preprocessor.py
-> agent_ppo/feature/definition.py
-> agent_ppo/model/model.py
-> agent_ppo/algorithm/algorithm.py
-> agent_ppo/workflow/train_workflow.py
实现前先明确“想改什么应该改哪里”:
| 改动目标 | 主要文件 |
|---|---|
| 观测特征、合法动作、奖励 shaping | agent_ppo/feature/preprocessor.py |
| 样本结构、GAE、回报计算 | agent_ppo/feature/definition.py |
| 网络结构 | agent_ppo/model/model.py |
| 算法 loss、优化逻辑 | agent_ppo/algorithm/algorithm.py |
| Agent 推理/训练接口 | agent_ppo/agent.py |
| 超参数 | agent_ppo/conf/conf.py |
| 训练环境配置 | agent_ppo/conf/train_env_conf.toml |
| 训练流程、终局奖励、监控上报 | agent_ppo/workflow/train_workflow.py |
| 系统训练配置 | conf/configure_app.toml |
| 切换算法 | conf/app_conf_gorge_chase.toml + conf/algo_conf_gorge_chase.toml |
先读:
GLOBAL_DOCS/算法总表.mdDEV_MEMORY/NOW.md确认本轮只验证一个主方向,不混入多个大改动。
如果改动涉及:
就必须先读对应开发文档,再写代码。
改动前先明确将修改哪些文件以及理由,再实施。
默认约束:
agent_ppo/agent_diy/ 只作参考,不做正式落地conf.py、preprocessor.py、definition.py、model.py、algorithm.py、agent.py⚠️ 重要:测试必须在 Docker 容器内执行,本地环境缺少依赖,直接运行会失败
实现完成后,至少执行一次 smoke test:
# 1. 进入 Docker 容器(必须在容器内执行测试)
docker exec -it kaiwu-dev-kaiwudrl-1 bash
# 2. 在容器内执行烟测
cd /data/projects/gorge_chase
git status # 确认代码已同步进容器
python3 train_test.py
注意:kaiwu-dev-kaiwudrl-1 是容器名,若不同请用 docker ps 查看实际容器名。
实现阶段维护 DEV_MEMORY/NOW.md,记录:
这是算法实现的最后一步,必须执行。
提前创建训练结果存放目录,方便后续人工放入 HTML 文档:
html/mkdir -p GLOBAL_DOCS/算法文档/<算法完整名>/html
在 GLOBAL_DOCS/算法文档/<算法完整名>/README.md 生成初稿:
GLOBAL_DOCS/算法文档/agent_ppo_20260409_1733/README.mdDEV_MEMORY/NOW.md 从过程性记录整理成正式结构在 NOW.md 中:
算法文档初稿位置:GLOBAL_DOCS/算法文档/<算法完整名>/README.mdHTML 文档目录:GLOBAL_DOCS/算法文档/<算法完整名>/html/GLOBAL_DOCS/算法文档/<算法完整名>/
├── README.md # 算法文档初稿(训练结果部分留空/标注待补充)
└── html/ # 训练完成后人工放入训练/测试 HTML 文档;
# HTML 文档文件名(去掉扩展名)默认视作官网模型全称
生成到 GLOBAL_DOCS/算法文档/<算法完整名>/README.md:
# <算法完整名> 算法文档
**文档版本**:<算法完整名>
**记录日期**:<YYYY-MM-DD>
**当前状态**:已实现;smoke test 通过;暂无正式训练得分
**HTML 文档目录**:`GLOBAL_DOCS/算法文档/<算法完整名>/html/`(训练完成后人工放入)
---
## 1. 算法概述
- 任务目标:
- 算法框架:
- 本轮核心改动:
- 当前实现特点:
---
## 2. 代码入口链路
```text
train_test.py
-> conf/app_conf_gorge_chase.toml
-> conf/algo_conf_gorge_chase.toml
-> conf/configure_app.toml
-> agent_ppo/conf/conf.py
-> agent_ppo/conf/train_env_conf.toml
-> agent_ppo/agent.py
-> agent_ppo/feature/preprocessor.py
-> agent_ppo/feature/definition.py
-> agent_ppo/model/model.py
-> agent_ppo/algorithm/algorithm.py
-> agent_ppo/workflow/train_workflow.py
最小验证命令(⚠️ 必须在 Docker 容器内执行):
# 进入容器
docker exec -it kaiwu-dev-kaiwudrl-1 bash
# 在容器内执行测试
cd /data/projects/gorge_chase
python3 train_test.py
| 方法 | 说明 |
|---|---|
reset | |
observation_process | |
predict | |
exploit | |
learn | |
save_model | |
load_model | |
action_process |
| 分组 | 维度 | 内容 |
|---|
| 分量 | 位置 | 说明 | 参数 |
|---|
ObsData:ActData:SampleData:| 参数 | 值 | 说明 |
|---|
| 参数 | 值 | 说明 |
|---|
| 参数 | 值 | 说明 |
|---|
workflow 主循环:html/ 中的 HTML 文档文件名:
## 规则
- 不在不理解源码入口的情况下直接改代码
- 不跳过开发文档约束
- 不把正式改动做进 `agent_diy/`
- 不编造训练结果
- 算法实现结束时必须完成”NOW -> 算法文档初稿”
---
## 下一步行动(执行后必须输出)
根据实现完成度,明确告诉用户:
### 场景 1:Smoke test 失败
下一步:修复代码错误
### 场景 2:Smoke test 通过,算法文档初稿已完成
下一步:提交代码并准备训练
确认目录结构已创建: GLOBAL_DOCS/算法文档/<算法完整名>/ ├── README.md # 算法文档初稿 └── html/ # 空目录,用于存放训练 HTML 文档
提交代码: git add -A git commit -m “feat(<scope>): <算法完整名>” git push -u origin feature/<分支名>
示例 commit message: ───────────────────────────────────────── feat(ppo): agent_ppo_20260410_hok_memory_map_v1
在平台上启动正式训练
训练完成后人工操作:
HTML 文档和结果整理完毕后,执行 /kaiwu-memory-archive 完成归档
### 场景 3:算法文档初稿尚未完成
下一步:完成算法文档
DEV_MEMORY/NOW.mdPyTorch深度学习模式与最佳实践,用于构建稳健、高效且可复现的训练流程、模型架构和数据加载。