LuminousRuoxi
|
c2243a3200
|
feat(skill): 追加 F 类文书场景特化 tell,修正 P11/P04 映射
prodream essay-chat 那份裁剪版比 HVR 多出 5 条文书场景特化条目——罗列堆料、
匀速、换名、过度工整、模板过渡。它们在通用清单里不收(学术/媒体/技术写作
中都正常),放进申请文书才成为 tell,HVR 的 A–E 里没有对应位置。
处理:作为 F 节**追加**进现有分类,不替换 A–E(A–E 覆盖更全,且文末已解释
A–E 与 P01–P12 的关系)。同时补两类条目 + 误报警戒:§27/§29 正是用功的非
母语学生的典型写法,单独出现不报;§26/§30 升为「见一次就该动手」。
顺带修正文末映射表:P11 同义换写一直漏(↔ §28),P04 平行结构也漏(↔ §6);
「A–E 是你的判断框架」改为「A–F」。
证明:
- docs/_probe_skill_f_section_20260911.py:静态核对 skill 正文含 F 节 8/8 项
(F 标题、§26–§30、误报警戒、删词不删意);真实 /api/chat/stream 跑两次,
两次均逐字引原文报出 §26 名词堆砌,run2 另报 §27 句长均匀
- artifact: docs/_skill_f_probe_20260911.json(docs/ 已 gitignore)
- pytest:65 passed
|
2026-09-11 11:03:13 +08:00 |
|
LuminousRuoxi
|
76d3b30e7d
|
feat: 问题点数量口径改为 单段 1–3 / 全篇 5–10
产品口径(2026-09-11):全篇 Pattern 由「最多 5 个」改为 5–10 个,单段主要
Pattern 由「最多 2 个」改为 1–3 个。依据 PRD §13.1(单段最多默认展示 1–3 个
主要 Pattern)与 §19.3(只概括当前段最主要的 1–3 类问题)。每段批注 3 条上限不变。
全篇 5–10 带下限,与「模型不得无 evidence 输出 Pattern」冲突——只有下限没有
逃生口,模型会编证据凑数。因此两处同时补上「证据优先于数量,下限不得靠编造
evidence 来凑」;SKILL.md 原有「也不要硬凑到十条」随口径一并改写。
无硬截断代码需要同步:evidence.sanitize_patterns 只过滤证据不截数量,前端
index.html:1053/1059 的 slice(0,3) 本就是单段 1–3 的展示上限。
证明 artifact(docs/ 被 gitignore,本地留存):
- docs/_probe_pattern_counts_20260911.py 真实链路探针
- docs/_pattern_counts_20260911_run1.json / _pattern_counts_20260911.json
- docs/Agent化改造方案_20260911.md §十 口径与实测记录
实测(同篇文书,gemini-3.7-flash via OpenRouter,走真实 /api/diagnose):
run1 patterns=5 批注 1/1/2/2 证据 11/11;run2 patterns=6 批注 1/1/3/2 证据 16/16。
两次均在区间内且非死咬下限,4 段 ai_focus 全非空,证据 100% 可逐字回溯。
单测 65 例全绿(test_demo.py 35 + test_agent.py 30)。
|
2026-09-11 10:41:22 +08:00 |
|
LuminousRuoxi
|
94a26227c1
|
feat: 对话层 Agent 化(对话底座 + 自研 skill)
把对话页从固定状态机换成 skill 驱动的 Agent:顾问说什么都原样发给 agent,
由 SKILL.md + 工具决定该聊还是该调工具。工作台(workbenchView)未改动。
后端
- llm.py:新增 stream_chat()(流式 + tools),并带 reasoning 端点自动降级
(gemini-3.7-flash 拒绝 effort:none,首次 400 后锁定重试)
- agent.py:最小对话底座内核——skill 注入 + 工具循环 + SSE 事件
- tools.py:8 个工具包住既有能力(analyze/diagnose/scaffold/reference/
translate/recheck/record_note/confirm),延迟 import main 复用已验证的
endpoint 处理器与测试接缝,prompts.py/schemas.py/evidence.py 未改一行
- main.py:POST /api/chat/stream(SSE)
skill
- skills/hvr-rewrite/SKILL.md:分诊规则、首轮盘点、AI 味清单对齐
blader/humanizer 的 A–E 分类(含强度校准与反误报)、诚实性硬约束
前端
- 流式正文 + 工具卡片 + 选项按钮;工具 payload 直接喂既有渲染函数
(renderUnderstanding/renderDiagnosis/renderRecheck),没有第二套 UI
- 删除随 agent 化失效的 runDiagnose / applyUnderstandingCorrection 死代码
验证(真实模型,非 mock)
- 65 单测全绿(test_agent.py 30 + test_demo.py 35)
- 逐轮实跑:盘点 → 确认 → 诊断 → 复检,SSE 事件序列与 payload kind 均符合契约
- 前端 readSSE 用真实响应字节按 7/64/全量三种切块回放,事件序列一致
- 实测修掉两个只在真跑时暴露的问题:模型调完分析直接调确认工具导致正文为空
(SKILL.md 补「正文先行」硬规则);伪标题 `**N. 标题**` 让列表判定失败、
短横线漏成字面字符(前端改逐行分组渲染)
未验证:浏览器人工走查(无浏览器自动化环境),仅到「真实 HTTP + 真实字节回放」这一层。
|
2026-09-11 10:25:12 +08:00 |
|