feat(harness): add information gain stop and audit
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Harness 与质量门禁
|
||||
|
||||
**更新日期**:2026-07-23
|
||||
**更新日期**:2026-07-27
|
||||
**状态**:当前可运行架构
|
||||
|
||||
## 1. Harness 定位
|
||||
@@ -57,6 +57,16 @@ SemanticGuard 使用隔离的单轮模型调用,只接收原始 query、完整
|
||||
|
||||
Trace 写入失败只记录警告,不应改变业务执行结果;`details` 禁止包含 Prompt、Thought、Draft 正文或 raw Tool payload。普通 Trace API 按 `sequence_no, id` 返回 Timeline。
|
||||
|
||||
### 6.1 Token 对账
|
||||
|
||||
所有 Harness 模型入口统一从 Provider Usage 记录 `MODEL_TOKEN_USAGE`:Router、System Chat、Knowledge Answer、Diagnosis Agent、Evidence Repair 和 SemanticGuard。事件按组件和组件轮次记录 input/output/total Token;Usage 不可用时只记录 unavailable,不估算消耗。
|
||||
|
||||
`RUN_FINISHED` 同时记录 RunBudget 总账、模型调用明细合计、不可用 Usage 数量和 `tokens_reconciled`。Diagnosis Agent 的每轮 total Token 还会回填 `AgentStep.token_count`;其他模型组件不创建伪 AgentStep。
|
||||
|
||||
### 6.2 Tool 拒绝
|
||||
|
||||
`TOOL_INVOCATION` 只表示进入业务 ToolBoundary 的实际执行。协议错误、重复 scope、信息饱和或观察合同拒绝使用独立 `TOOL_REQUEST_REJECTED`,只记录 Tool Call ID、Tool name 和稳定错误码。预算 Tool 计数、实际执行次数和 Harness 拒绝次数是三个不同观察维度。
|
||||
|
||||
## 7. Audit 安全
|
||||
|
||||
AgentStep 不保存 Prompt、消息正文、模型正文、Tool arguments 或 Thought。ToolInvocation 不保存完整 request、SQL/日志 query、raw response 或 Agent projection。Provider reasoning 仅写入独立 `agent_reasoning_audit`,不进入普通 Trace 或发布结果;无 Provider 内容时必须记录 unavailable,不能伪造。应用日志不得打印这些字段。
|
||||
|
||||
Reference in New Issue
Block a user