Install
openclaw skills install famou-artifact-generator交互式引导用户完成 FaMou 进化任务的完整流程:先通过结构化澄清循环产出 `problem.md`,再实现并验证 FaMou 实验的三个输入物料(`init.py`、`evaluator.py`、`prompt.md`)。当用户提到以下任意情形时触发:定义/澄清/创建 FaMou 任务、帮我写 problem...
openclaw skills install famou-artifact-generator端到端指导:从模糊想法 → 任务说明文档 problem.md → 评估器和初始解的实现与验证。
两阶段流程:
problem.mdproblem.md 生成并验证 init.py、evaluator.py、prompt.mdFaMou 进化任务的三个输入:
init.py — 候选解脚本(单文件,可直接运行)evaluator.py — 评估逻辑(固定接口,见下方)prompt.md — 进化引导(角色、任务、数据、解法参考;≤100 行)识别填写任务模板所需的全部信息,用 Plan 或者 TODO 工具建立 TODO 列表:
核心指引
必填 TODO(按依赖顺序逐一解决,不得跳过或乱序):
可选 TODO(有则填,无则跳过):
重复直到所有必填 TODO 解决:
ask_uer 类型的工具):
所有必填 TODO 解决后,或用户明确确认任务已清晰,退出循环。
约束类 TODO 澄清指引:约束澄清通常涉及多个维度,每轮只问一个维度,逐步收集完整后再标记完成。
problem.md按下方任务模板填写所有章节,规则:
problem.md 内容。problem.md 已存在,合并后完整覆盖写入。"请查阅
problem.md。问题定义现在是否清晰完整?"
基于任务说明文档 problem.md,生成并验证 FaMou 进化框架所需要的 evaluator.py、init.py 和 prompt.md。
evaluator.py(先实现,因为 init.py 验证依赖它)
init.py
problem.md 中指定的基线策略或初始解方向。prompt.md(≤100 行)
problem.md,不得添加新假设。运行评估器验证 init.py:
python evaluator.py <path_to_init.py>
必须同时满足:
validity == 1combined_score 为数值且 != 0error_info == ""若任一检查失败,分析原因,修改对应产物,重新验证,直至全部通过。
problem.md 结构)## 目标
<!-- READONLY:为 FaMou 进化任务准备 init.py、evaluator.py 和 prompt.md -->
## 1. 任务定义
- 核心问题描述
- 输入:(命令行参数 / 数据文件)
- 输出:(标准输出 / 生成文件)
- 主要优化目标
- 关键指标及计算公式
## 2. 数据描述
- 数据来源(文件/表名、结构/模式、字段定义)
- 访问方式(路径、格式)
## 3. 评估器
### 接口(READONLY)
def evaluate(path_user_py: str, task_name: str = "default", timeout: int = 3600) -> dict:
return {
"validity": float, # 0 或 1;1 表示满足所有硬约束
"combined_score": float, # 为可行解打分,0表示无效解,低分表示低质量解,高分表示高质量解
"cost_time": float, # 评估花费时间
"error_info": str, # 成功时为 ""
}
### 参考执行流程
1. 创建所需中间目录和文件
2. 配置候选解运行参数
3. 执行候选解脚本
4. 捕获执行结果(完成 / 错误 / 异常)
5. 检查硬约束和软约束
6. 计算 combined_score
### 硬约束
<!-- 精确规则、验证方法、违反后果 -->
### 软约束
<!-- 优化目标、度量方法、对分数影响 -->
### 系统级约束(READONLY)
- 无论 init.py 是否与 evaluator.py 同目录,评估器必须能正确执行
- 如果使用 subprocess 调用子进程,必须将 cwd 设置为 evaluator.py 所在目录
- 不得依赖临时目录作为工作目录
## 4. 初始解
<!-- 单文件 init.py;方案、基线策略或求解方向;必须满足所有硬约束 -->
## 5. 进化提示(prompt.md,≤100 行)
<!-- (1) 角色 (2) 任务描述 (3) 数据描述 (4) 可行解参考 -->
## 6. 补充信息(可选)
<!-- 参考资料、备注 -->
problem.md 中标注为假设后直接进入阶段二。