Beaver Project / Skill Learning
让技能草稿评估真正覆盖任务执行、工具调用、副作用和草稿保真,而不是只看生成文本是否“像一个好技能”。
system context
用户注册、登录和模型配置引导入口。
账号、后端身份和内部授权编排。
创建、配置和管理独立 app-instance 容器。
按实例域名把外部流量转发到对应容器。
单用户工作台,包含前端、后端、workspace 和 skills。
处理 published skills、candidates、draft review。
从历史任务发现候选,合成草稿,再进行安全和评估门禁。
增强草稿评估,给发布前审查提供可追溯证据。
current_state.py
evaluation_model
同一任务文本、同一历史上下文、同一模型设置、同一最大工具迭代数。
new_skill 无技能;revise_skill 用旧技能;merge_skills 用旧相关技能。
将 draft skill 作为 pinned draft guidance 注入,并记录行为差异。
tool_policy
能安全隔离的工具,在 replay 环境中真实执行。
不能安全执行,但记录 intended call,由 LLM 替身判断效果。
既不能执行,也无法可靠判断,明确降低置信度。
执行、替身、阻塞覆盖率分开披露。
replay_environment
每个 case、每个 arm 都创建独立状态。runner 负责执行、拦截、记录,评估器在 runner 外部读取 artifacts 和 side effects。
避免污染真实会话状态。
文件读写落在临时 clone。
记录调用、参数、模式和理由。
外部写入不落生产,只留证据。
{
"case_id": "run-accepted-042",
"arm": "candidate",
"workspace_root": "/tmp/beaver-replay/...",
"tool_calls": [
{ "tool": "filesystem.write",
"mode": "executed" },
{ "tool": "outlook.send_mail",
"mode": "surrogate" }
],
"artifacts": ["draft.md"],
"side_effects": ["intended_email"]
}
surrogate_evaluator
candidate_score = quality(intended_effect, arguments, evidence) risk_penalty = risk(missing_args, duplicated_calls, unsafe_scope) confidence = lower_than_real_execution case_score = candidate_score - risk_penalty
report_and_gates
保留 passed、score_delta、cases、status 等旧字段。
execution、surrogate、blocked coverage。
baseline mean、candidate mean、improved/regression count。
低置信度不能自动等同可发布。
{
"eval_version": "replay-v1",
"mode": "replay",
"execution_coverage": 0.58,
"surrogate_coverage": 0.33,
"blocked_coverage": 0.09,
"confidence": "medium",
"case_reports": [...],
"tool_mode_summary": {...}
}
preservation_contract
现有 synthesizer 对 revision 和 merge 只拿到候选理由、相关技能名、工具名、任务摘要和 session excerpts,没有完整 base skill body。
重新生成看起来更整洁,但可能丢掉原技能里的安全边界、工具约束、工作流顺序和异常处理。
implementation_plan
app-instance/backend/beaver/skills/learning/ case_selection.py preservation.py replay.py surrogate.py eval.py synthesizer.py pipeline.py app-instance/frontend/app/(app)/skills/page.tsx app-instance/frontend/types/index.ts
skills_review_ui
发布门禁结论。
candidate - baseline。
真实执行覆盖。
证据可信度。
用户不需要预先配置每个工具的策略。系统在报告里解释覆盖、阻塞和不确定性,让审核者知道该相信多少。
testing_strategy
旧 payload 可读,新 replay 字段可写,UI 不被旧数据破坏。
case selection、arm construction、tool mode aggregation、surrogate payload。
base section 保留、删除风险、publish gate 对 preservation risk 的处理。
安全文件写真实执行,外部写入被拦截为 surrogate,生成可审计报告。
历史 case 选择、双臂构造、工具模式分类、替身评分 payload、保真检查、低置信发布门禁。
stub filesystem write、stub external write、candidate 同时改善真实 artifact 和 surrogate side effect。
技能发布前,不只要看草稿写得好不好,还要看它在历史任务里做了什么、没做什么、敢不敢相信。