iomgaa
b307f51340
feat: --retry-uncertain re-diagnoses uncertain rows; fix docstring
2026-07-16 05:41:19 -04:00
iomgaa
564c92a043
feat: add cache_salt dimension to LLM response cache
2026-07-16 05:23:58 -04:00
iomgaa
1108235818
refactor: drop dead prompt fields consolidate_system/span_eval_user
2026-07-16 04:42:26 -04:00
iomgaa
f1b6865861
fix: include question_id in diagnosis tree-coverage fail-loud message
2026-07-15 22:33:23 -04:00
iomgaa
c5fff7f8b3
fix: fail loud when diagnosis video tree not covered (algo #7 input)
2026-07-15 22:25:30 -04:00
iomgaa
8fef7ced42
fix: address whole-impl review (INFRA T0 rows, reproducible manifest, evolution_target report, dead config, canonical DRY)
...
C-1: persist_infra_t0_rows 补 INFRA/空预测错题的 T0 信号行(不进诊断故须单独落库),run_pipeline 加 Phase 0,dry-run 用假数据走通。
C-2: CLI 加 --generated-at,真实运行默认盖真实 UTC now,可显式固定以字节级复现 manifest。
I-1: coverage_report 增 evolution_target_distribution(T2 信号按 tool/skill/system 计数)。
I-2: 删除 PoolConfig 死字段 n_trainval/floor_k/epsilon/report_floor/val_wrong_min(grep 确认无消费者,视频级切分用独立 VideoSplitConfig/SplitBuildConfig/SelectConfig)。
I-3: 抽共享 load_canonical_predictions(db_path, run_id),CLI 与 build_split 共用;消除 canonical 取行 + correct 判定重复。
M-1: build_split docstring 注明 val_wrong_min-agnostic 契约(McNemar 护栏由 CLI 冻结后执行,Task 11 契约)。
2026-07-15 13:39:14 -04:00
iomgaa
6a21d80313
feat: add video-split config knobs and reproducible script
2026-07-15 12:54:25 -04:00
iomgaa
3a8dd5c167
fix: add close/context-manager to diagnosis store; tighten import boundary
2026-07-15 12:06:29 -04:00
iomgaa
6b85fcbe1c
feat: add baseline diagnosis signal store
2026-07-15 12:01:30 -04:00
iomgaa
4b6d1d8a50
feat(harness): correctness 三口径 + gate 块按 unit 跑
...
进化引擎与 gate e-process 从 question_id 口径迁至 unit_id 口径,AR pair
双向 AND 折叠为单元、不被 P/Q 单题计分污染;逐题 predictions 仅作溯源。
- question_units: 新增 unit_correctness_view(units, per_q)->dict[unit_id,bool]
作为逐题→单元折叠的唯一入口(复用 unit_correctness)。
- core/evolution/validate: pair_block/compute_accuracy 参数改 unit_ids、
分母按单元数(键即 unit_id)。
- app/harness/validate(gate 实际执行路径):阶梯题序聚合为单元并保持信息
阶梯序(_ladder_units),gate 块按单元切分(AR pair 整锁不跨块拆);
baseline_cache 键含 unit_id、存单元级对错;候选逐题读回后折叠成单元视图;
n_used/W/L/四象限/准确率均按单元计;证据行按 unit 口径,candidate_correctness
独立保留逐题对错供 runner 二轨合并。
- runner: probation 结算按 unit 折叠计 W/L(_probation_unit_flips);quadrant
四象限 id 承载 unit_id。
核心算法保真 #5(信息阶梯 e-process):本次仅迁移 correctness 口径,不改冷启动
2:1 / gamma-EMA / 反泄漏算法本身(gate_ladder 迁移见 Task 8)。
2026-07-15 07:31:03 -04:00
iomgaa
7ef9b99217
feat: add QuestionUnit entity and GeneratedQuestion pair fields
...
新增 QuestionUnit 契约实体(kind/unit_id/task_type/questions/unit_hash + size/from_single/from_pair),
作为 AR pair 孪生对贯穿评测/训练 harness 的最小调度单元。
GeneratedQuestion 追加 unit_id/pair_id/question_role/flip_axis 四字段,
__post_init__ 回填 unit_id,默认值保证现有非 AR single 题构造点行为不变。
2026-07-15 05:45:34 -04:00
iomgaa
ae0a718f67
feat: thread and persist sub_pattern into accepted questions
2026-07-14 13:45:31 -04:00
iomgaa
72befa2bd4
feat(pools): add batch_correct_ratio field to PoolConfig
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-14 10:34:28 -04:00
iomgaa
ec4cbbdd44
style(core): move Path import to TYPE_CHECKING block in types.py
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-12 22:36:00 -04:00
iomgaa
0d0f275134
feat(core): add PoolConfig dataclass for pool strategy configuration
2026-07-12 22:33:49 -04:00
iomgaa
811ffa648b
feat(types): extend GeneratedQuestion with skill_target & difficulty_steps
...
- Add skill_target (str | None) and difficulty_steps (int | None) fields
to GeneratedQuestion dataclass with field(default=None)
- Update loader.py to pass new fields from JSON (backward-compatible)
- Update pools.py _q_to_dict/_dict_to_q for serialization compat
- Add question_gen_v2 config section to default.yaml
- Add comprehensive test coverage (7 tests)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-11 23:05:38 -04:00
iomgaa
badfcce4cb
fix(agent): validate non-empty retry delays; pin exhaustion semantics
...
核心算法 #10(Agent Loop):Codex 质量审查跟进,仅加固防御与
可观测,不改变循环语义。
- __init__ 校验 step_retry_delays 非空,空序列直接抛 ValueError
(P5 fail-fast,避免首次可重试异常时 IndexError 掩盖原始 LLM
异常、违背方法契约)
- 补耗尽语义窄测试(耗尽后原样抛出最后一次原始异常)与空序列
构造校验测试
- run() 最终失败日志补异常类型名,便于回溯归因
2026-07-11 08:44:47 -04:00
iomgaa
e3184c11f9
feat(agent): step-level retry for transient LLM errors (20s/40s backoff)
...
核心算法 #10(Agent Loop):仅加固异常路径的韧性兜底,不改变
解析协议、hook 时序与步数语义。benchmark 错题 796-3 显示一次
SSL BAD_RECORD_MAC 穿透 GovernedLLMClient 重试栈后废掉 13 步
已积累上下文;本次在 run() Phase 1 增加步级重试(默认 2 次,
20s/40s 退避),可重试异常限定 (TimeoutError, OSError),非可
重试异常照旧 fail-fast 整题终止,行为与现状一致(P5 显式异常)。
为满足 radon C 级复杂度约束,重试循环抽取为私有方法
_call_llm_with_step_retry,行为不变。
2026-07-11 08:37:35 -04:00
iomgaa
439dc29b3b
fix(agent): reject argless action in normalization; add boundary test
...
核心算法 #10(Agent Loop):修复 Codex 质量审查 Critical——
_normalize_action 仅在除 tool 外至少存在一个平铺参数键时才收拢,
{"tool": "x"} 无参结构不再被静默升级为空 args 合法结构,照旧
返回 None 走 retry 追问路径。补边界测试 + 测试辅助方法类型注解
与中文 docstring。
2026-07-11 08:28:59 -04:00
iomgaa
8d84d5e236
fix(agent): normalize fenced and flat-args LLM outputs in parser
...
核心算法 #10(Agent Loop):仅加固 _parse_response 解析路径——
剥除 ```json 围栏 + 收拢 action 平铺参数(deepseek 稳定输出变体,
案例 637-3/615-3 三连拒 0 步阵亡)。Thinking+JSON 协议、json_repair
兜底链、hook 时序与步数语义均未改动。
2026-07-11 08:16:28 -04:00
iomgaa
45403b23b4
feat(repair): regenerator + supplement 防御修复 + 迁移脚本
...
- 新增 app/tree/repair/regenerator.py(VLM 重生成 + 级联修复)
- supplement.py: deduplicate_field str() 防御 + inject_value strip
- patch.py: ruff format 格式化
- repair_trees.sh: conda source 激活修复
- 新增 migrate_from_trm4.sh 迁移工具
- enhance/__init__.py → repair/__init__.py 重命名
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-09 07:53:59 -04:00
iomgaa
63ad68f737
feat(evolution): export dataclass types from __init__.py
2026-07-07 11:48:13 -04:00
iomgaa
9ab6a89298
feat(evolution): __init__.py public API + ARCHITECTURE.md Protocol update
2026-07-07 10:28:14 -04:00
iomgaa
5c42e0309b
feat(evolution): evolve.py per-target evolution — skill/system/tool ( #9 )
2026-07-07 10:26:58 -04:00
iomgaa
2c5b4c819c
feat(evolution): evolve.py validation + helpers ( #9 )
2026-07-07 10:12:15 -04:00
iomgaa
c6a81f8504
feat(evolution): diagnose.py aggregation + case packs + run_diagnosis ( #8 )
2026-07-07 10:04:48 -04:00
iomgaa
fdbf9222ab
feat(evolution): diagnose.py metrics + attribution (Stage 1, #8 )
2026-07-07 09:55:22 -04:00
iomgaa
ebd83810aa
feat(evolution): validate.py — pure block validation decision functions ( #7 )
2026-07-07 09:47:45 -04:00
iomgaa
7f8ed56428
feat(evolution): patch.py — 补丁引擎移植(算法 #9),51 测试全通过
...
从 TRM4 core/harness/patch.py (427 行) 零修改移植到 core/evolution/patch.py。
包含:
- 7 个常量(APPENDIX/MOMENTUM marker + MAX_CHARS + HEADING)
- appendix 区:追加/提取/替换/边界检测,损坏态 ValueError
- momentum 区:替换/提取/边界检测,注入防护
- apply_patch_with_report:4 种 op(append/insert_after/replace/delete)
- 冻结区坐标判定(每条 edit 重算)、report 1-based index
- 51 个单元测试覆盖全部公共 API 及边缘场景
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-07 09:44:05 -04:00
iomgaa
57793fb0f8
feat(evolution): gate.py — CE-Gate e-process 纯函数 ( #5 算法保真)
...
从 TRM4 core/harness/eprocess.py 逐行迁移,零逻辑变更:
- compute_e_value: 截断 Beta 混合 e 值(log 空间 + betainc 对称性)
- gate_decision: 四出口优先级链(confirmed→directional→futility→exhaustion→continue)
- probation_verdict: 试用期非对称双向结算
- 常量保真: _WALD_WIN=ln1.4, _WALD_LOSS=ln0.6, _SHRINK_PSEUDO=4
仅变更: import 路径 + GateParams/GateVerdict 移至 types.py + 中文 docstring
14 tests 覆盖: e 值数学、边界校验、四出口路径、试用期三分支
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-07 09:38:21 -04:00
iomgaa
47c2de71a2
feat(core/evolution): protocols.py + types.py 基础层 — 18 个 dataclass + 3 个 Protocol
...
TRM4 诊断/进化/门控数据类型迁移至 TRM5 Clean Architecture 内核。
逐字段比对 TRM4 的 eprocess.py、diagnose.py、evolve.py 保真迁移。
types.py (18 个 dataclass):
- Gate: GateParams, GateVerdict (frozen, 原样迁移)
- 诊断: SpanMetrics, SkillStepAdherence, QuestionMetrics,
ErrorAttribution, CaseSample, SkillCasePack, SystemCasePack,
ToolCasePack, DiagnosisResult (全部 frozen=True)
- 进化: EvolutionRecord (mutable), RejectedEdit (frozen),
EvolutionResult (frozen, 移除 skills_version/prompts_version)
- 新增: PairResult, QuadrantClassification (块验证纯决策输出)
- 新增: DiagnosePrompts, EvolvePrompts (模板束, frozen)
protocols.py (3 个只读 Protocol):
- SkillStore, PromptStore (同步文件读取)
- RunLog (异步日志查询, 隔离 SQL)
变更理由:
- QuestionMetrics 由 TRM4 mutable 改为 frozen (一次性构造)
- ErrorAttribution 由 TRM4 mutable 改为 frozen (构造时填入全部字段)
- EvolutionResult 移除版本管理字段 (app/ 职责)
涉及算法: #5(CE-Gate), #8(诊断瀑布), #9(进化引擎)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-07 09:34:04 -04:00
iomgaa
9bdfd28c63
feat(core): 追加 GeneratedQuestion frozen dataclass
...
跨层共享类型,被 core/evolution/ 和 app/harness/、app/question_gen/ 使用。
frozen=True + tuple 字段确保不可变。无默认值(显式传入)。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-07 04:36:56 -04:00
iomgaa
adf14633e5
chore: lint 修复(TC001/TC003 类型导入优化)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-06 23:15:06 -04:00
iomgaa
30aec373c8
fix(core/agent): 移除 max_steps 默认值
...
设计要求调用方显式传入 max_steps(P4: 显式优于隐式)。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-06 22:53:05 -04:00
iomgaa
9ca9035190
feat(core/agent): 实现 AgentLoop 推理循环引擎
...
保真 TRM4 算法 #11 : json_repair 兜底、submit_answer 终止、
pluggy hook 生命周期、无效工具不计步。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-06 22:43:22 -04:00
iomgaa
d79d67b1d3
feat(core/agent): 添加 ToolDispatcher Protocol 和 AgentLoopSpec hookspec
...
ToolDispatcher async + context 参数。AgentLoopSpec 四个 async 生命周期 hook。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-06 22:36:31 -04:00
iomgaa
112111408e
feat(core): 添加共享 Protocol 端口
...
LLMProvider / VLMProvider / TelemetryRecorder,全部 runtime_checkable。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-06 22:36:23 -04:00
iomgaa
70320d7cfa
feat(core): 添加 LLMResponse frozen dataclass
...
含 content/thinking/ttft_ms/max_inter_token_ms/call_id 等 11 个字段。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-06 22:33:48 -04:00
iomgaa
9340c5e0f8
feat(core/agent): 添加 Step 和 LoopResult 数据类
...
保真 TRM4 算法 #11,Step 新增 call_id 字段。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-06 22:32:59 -04:00
iomgaa
e60823de1a
build: add README, pyproject.toml, package skeletons and smoke test
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-07-06 11:37:59 -04:00