Record phase two acceptance evidence and synchronize delivery status

This commit is contained in:
2026-09-07 02:55:19 +08:00
parent 89df10bc4e
commit e667dd55dd
24 changed files with 13892 additions and 45 deletions
@@ -878,18 +878,19 @@ Dataset 从仓库或受控导入目录注册。API 不接受调用方提交任
```json
{
"case_id": "agent-os-review-001",
"prompt": "查找死锁内容并创建三个复习任务",
"allowed_tools": ["rag.search", "notes.read", "tasks.create"],
"expected_tools": ["rag.search", "notes.read", "tasks.create"],
"expected_conditions": {
"citation_required": true,
"tasks_created": 3
},
"tags": ["os", "write"]
"case_id": "agent-add-001",
"prompt": "调用 math.add 计算17加25,然后回答42。",
"allowed_tools": ["math.add"],
"expected_tools": [{"name": "math.add", "arguments": {"left": 17, "right": 25}}],
"output_contains": ["42"],
"citation_required": false,
"tasks_created": null,
"tags": ["math"]
}
```
每个Dataset最多100例且case_id唯一;Case至少声明工具、输出子串、引用或任务数量之一作为客观断言。预期工具必须属于allowed_tools。参数按声明键的值匹配,重复/额外调用计入错误,任务创建按成功Tool Result计数。
有写操作的 Agent Case 必须运行在隔离 Vault/数据库中,测试结束后清理 Fixture,禁止作用于用户真实知识库。
### 9.4 创建 RAG Benchmark
@@ -902,6 +903,7 @@ Dataset 从仓库或受控导入目录注册。API 不接受调用方提交任
"modes": ["fts", "vector", "hybrid"],
"retrieval": {
"top_k": 10,
"fusion": "rrf",
"rrf_k": 60,
"rerank": true,
"rerank_candidates": 20,
@@ -914,23 +916,28 @@ Dataset 从仓库或受控导入目录注册。API 不接受调用方提交任
配置快照必须记录 Embedding model ID/version/dimension、Reranker、索引版本、Dataset Hash 和运行环境。
### 9.5 创建 Agent Benchmark暂缓,未暴露接口
### 9.5 创建 Agent Benchmark已实现
`POST /api/benchmarks/agent/runs`
```json
{
"dataset_id": "agent-core-v1",
"provider_id": "mock",
"model": "mock-1",
"skill_id": null,
"max_steps": 10,
"token_budget": 20000,
"concurrency": 1,
"metadata": {}
"provider_id": "已有启用的Provider ID",
"model": "已有模型",
"max_steps": 6,
"timeout_seconds": 90,
"token_budget": 6000,
"repeat": 1,
"allow_network": false,
"offline": false
}
```
`max_steps` 120、`timeout_seconds` 1300、`token_budget` 130000、`repeat` 1–3。顺序执行以限制额度;默认拒绝mock。仅显式offline=true可使用mock,且offline不能选真实Provider。创建返回202;无Provider为404,模式冲突为422,容量超限为429。权限由用户在真实Trace中处理,不自动批准。共用运行查询/SSE/取消/报告端点。
报告包含逐例agent_run_id、success/checks、调用/匹配/无效数量、steps、latency_ms、token_usage。汇总task_success_rate以计划案例总数为分母,total_cases/evaluated_cases区分未完成样本;选择/参数准确率以max(实际调用总数,预期调用总数)为分母,无调用时为null。无效调用率以实际调用数为分母。平均步骤/耗时采用计划数分母,取消/失败报告不可当完整性能测量。配置冻结dataset hash/version、Provider类型/引用、模型、预算、评分版本与权限策略。
Benchmark Runner 通过正式 Agent Runtime 创建 Run,并从 Trace 计算结果,不能直接调用 Tool Executor 绕过权限和步骤控制。
### 9.6 Benchmark Run
@@ -1080,7 +1087,7 @@ VECTOR_INDEX_REBUILD_REQUIRED
## 10. Export Service
> 实现状态:HTML / PDF / DOCX 导出均已实现(`backend/app/export/`),`format` 支持 `html`/`pdf`/`docx` 三格式。`function-plot` 已支持静态 SVG 内嵌(HTML)与矢量图内嵌(PDF,经 `backend/app/plot/render_reportlab.py` 复用共享几何),解析或渲染失败时回退为源码占位并记录 warning;Mermaid 目前仍以占位代码块保留并记 warning。DOCX 为文本优先 v1`function-plot` 与 Mermaid 保留源码占位并记 warning
> 当前实现:三格式已有编辑器快照入口、任务/取消/下载/warning。函数图为HTML SVG、PDF共享几何矢量、DOCX PNG;Mermaid通过前端准备并按源码摘要绑定PNG后进入三格式。未提供静态资源的直接API Mermaid请求仍保留源码并warning,不能假称服务器独立运行Mermaid。受支持MathText公式及Vault图片内嵌,完整限制见本节末补充
### 10.1 创建导出任务
@@ -1616,3 +1623,14 @@ CUDA 组件:`GET /api/local-models/runtime-components/cuda` 返回 status、st
#### 回答版本的上下文快照(2026-09-07)
`ChatMessage.context_captured` 为布尔值,旧记录默认 false。新 assistant 消息保存本次请求的 `workspace_context``attachments`,并设置 context_captured 为 true;此时 null 文件上下文和空附件列表都是明确快照。重新生成不覆盖原 user 消息的快照。客户端恢复旧记录时仅在 context_captured 为 false 时回退到对应父用户消息。
## 2026-09-07 预览与静态资源增量契约
`POST /api/plots/function`:请求`{source, theme_id}`source最多20000字符;响应`{result: {content,mime_type,width,height,warnings} | null, diagnostics: [{severity,code,message,line}], node_count}`。语法错误为200诊断、请求字段违规422。共享plot白名单解释器,不执行eval;每块16表达式、8000累计节点、并发2。主题映射当前六个Theme ID并提供CSS图表Token;未知主题回退light。
`ExportRequest`新增可选title(最多200字符)、assets(最多64);`source.file_path`为未保存快照中相对图片的基准位置,不能用于任意文件读。每个asset为`{kind: mermaid|math_block|math_inline|image, source_hash: 64位sha256十六进制, png_base64}`;摘要为strip后UTF-8源码(image为src)的SHA256。只接受有效PNG并重编码,每图4百万像素、总16百万像素/8MiB;重复kind/hash或超限返回422 EXPORT_ASSET_INVALID。摘要失配不替换当前节点,不接受客户端SVG/XML/URL执行。
未带资源的公式由受限MathText转换(512字符/20层/64资源),仅解析Vault范围内PNG/JPEG/WebP(单文件2MB),拒绝远端与越界路径。资源失败保留源码/替代文字和warning。PDF/DOCX采用浅色打印样式;HTML保留有限主题调色板,不复刻任意主题CSS。DOCX图片为静态内容,不提供可编辑公式对象。
RAG `retrieval.fusion`接受rrf(默认)或weighted(归一化FTS/vector各50%),参数写入config_snapshot。真实本地单查询Embedding可命中有界进程缓存,provenance.query_embedding_cache为hit/miss;比较延迟须分别报告冷暖样本。HashEmbedding仍仅为确定性单元测试,不是当前生产检索模型。