auto-sync: 2026-05-14 09:45:05
This commit is contained in:
@@ -1794,6 +1794,224 @@ experience:
|
||||
| 11 | Daemon 通知庞统 | Gateway WS API systemEvent | 步骤完成/异常/需要裁决时 |
|
||||
| 12 | 经验沉淀 | 任务完成后自动触发 AI 蒸馏 | + 规划/执行/异常时自动检索 |
|
||||
| 13 | 实现方式 | **一次性完整实现** | 不做最小集迭代,避免做着做着偏离 |
|
||||
| 14 | 治理原则 | **质量优先,成本和工期为质量让步,但有硬性上限** | 见 4.1 治理框架 |
|
||||
|
||||
### 4.1 质量/成本/工期治理框架
|
||||
|
||||
> 核心原则:**质量是第一优先级,成本和工期可以为质量妥协,但不能无限妥协。**
|
||||
>
|
||||
> 参考:Wanman TokenBudget(per-agent ceiling + 全局 ceiling)、Network-AI FederatedBudget(双层预算)、Network-AI QualityGate(两层门控:规则+AI)。
|
||||
|
||||
#### 三层预算体系
|
||||
|
||||
每个任务创建时分配三重预算,任何一重耗尽都触发干预:
|
||||
|
||||
```yaml
|
||||
# config/settings.yaml 中的默认预算
|
||||
budget_defaults:
|
||||
token:
|
||||
per_task_ceiling: 500000 # 单任务总 token 上限
|
||||
per_step_ceiling: 100000 # 单步骤 token 上限
|
||||
per_agent_ceiling: 200000 # 单 Agent token 上限
|
||||
time:
|
||||
per_task_ceiling: 3600 # 单任务总时间上限(秒)
|
||||
per_step_ceiling: 600 # 单步骤时间上限(秒)
|
||||
depth:
|
||||
max_plan_adjustments: 5 # 计划调整次数上限
|
||||
max_retries_per_step: 3 # 单步骤重试次数上限
|
||||
max_challenge_rounds: 3 # 挑战循环次数上限
|
||||
```
|
||||
|
||||
**预算耗尽时的行为**:
|
||||
|
||||
| 预算类型 | 耗尽行为 | 谁干预 |
|
||||
|---------|---------|--------|
|
||||
| step token 耗尽 | 步骤标记 failed,触发异常处理 | Daemon 自动 |
|
||||
| step 时间耗尽 | 步骤标记 failed,检查 Agent 存活 | Daemon 自动 |
|
||||
| task token 耗尽 | 任务暂停,通知庞统 + 用户 | Daemon → 庞统 → 用户 |
|
||||
| task 时间耗尽 | 任务暂停,通知庞统 + 用户 | Daemon → 庞统 → 用户 |
|
||||
| 计划调整次数耗尽 | 停止调整,用当前最佳计划继续 | Daemon 自动 |
|
||||
| 重试次数耗尽 | 步骤标记 failed,升级到庞统 | Daemon → 庞统 |
|
||||
|
||||
#### 质量门控(Quality Gate)
|
||||
|
||||
参考 Network-AI 两层门控:
|
||||
|
||||
```
|
||||
Agent 提交产出物
|
||||
│
|
||||
▼
|
||||
Layer 1: 规则验证(确定性,零成本,毫秒级)
|
||||
├── 文件存在性检查
|
||||
├── 文件非空检查
|
||||
├── Schema 校验(JSON/CSV 格式正确)
|
||||
├── Placeholder 检测(TODO/FIXME/...)
|
||||
└── 基础完整性(字段非空、数值范围合理)
|
||||
│
|
||||
├─ 通过 → 进入 Layer 2
|
||||
└─ 失败 → reject(退回 Agent 修复)
|
||||
│
|
||||
▼
|
||||
Layer 2: AI 审查(有成本,秒级,仅当 confidence < 阈值时触发)
|
||||
├── 产出物是否与 end_state 描述匹配
|
||||
├── 代码质量(变量命名、异常处理、逻辑正确性)
|
||||
└── 幻觉检测(声称的结论是否有数据支撑)
|
||||
│
|
||||
├─ approve → 完成
|
||||
├─ quarantine → 隔离待人工审查(通知庞统 + 用户)
|
||||
└─ reject → 退回 Agent 修复
|
||||
```
|
||||
|
||||
**成本控制**:Layer 2 不是每次都跑。默认只在以下情况触发:
|
||||
- Agent 回报 confidence < 0.7
|
||||
- 步骤是关键步骤(用户明确指定要审查的)
|
||||
- 连续多个步骤 Layer 1 都一次通过(抽样审查,防止 Agent 学会绕规则)
|
||||
|
||||
#### 质量提升的分级投入
|
||||
|
||||
不是所有任务都需要极致质量。根据任务重要性分级投入:
|
||||
|
||||
```yaml
|
||||
# config/settings.yaml
|
||||
quality_levels:
|
||||
critical: # 资金安全、实盘交易
|
||||
layer2_threshold: 0.8
|
||||
max_retries: 5
|
||||
always_ai_review: true
|
||||
human_approval_required: true
|
||||
token_budget_multiplier: 2.0
|
||||
|
||||
standard: # 策略回测、数据分析
|
||||
layer2_threshold: 0.7
|
||||
max_retries: 3
|
||||
always_ai_review: false
|
||||
human_approval_required: false
|
||||
token_budget_multiplier: 1.0
|
||||
|
||||
exploratory: # 探索性研究、快速验证
|
||||
layer2_threshold: 0.5
|
||||
max_retries: 1
|
||||
always_ai_review: false
|
||||
human_approval_required: false
|
||||
token_budget_multiplier: 0.5
|
||||
```
|
||||
|
||||
任务创建时,AI 根据内容自动判定 quality_level,用户也可以手动指定。
|
||||
|
||||
#### 成本回收机制
|
||||
|
||||
高质量的产出如果被后续任务复用,相当于摊薄了成本:
|
||||
|
||||
- **经验沉淀**:高质量任务的产出自动蒸馏为经验,下次同类任务减少 token 消耗
|
||||
- **Skill 转化**:高频经验固化为 Skill,直接注入减少检索成本
|
||||
- **模板复用**:高质量的计划结构可以保存为模板,下次直接使用
|
||||
|
||||
#### 工期控制:何时干预
|
||||
|
||||
| 场景 | 判断标准 | 干预方式 |
|
||||
|------|---------|----------|
|
||||
| 明显死循环 | 同一步骤 retry > max_retries | 强制终止 + 升级 |
|
||||
| 计划反复调整 | plan_adjustments > max | 锁定当前计划继续 |
|
||||
| Agent 超时无响应 | step 执行时间 > per_step_ceiling | 检查存活 → 重试或换 Agent |
|
||||
| 质量长期不达标 | 连续 3 个步骤 AI 审查 reject | 暂停任务 + 通知用户 |
|
||||
| 成本超预期 | task token > 80% ceiling | 通知庞统评估是否值得继续 |
|
||||
| 接近 deadline | task 时间 > 80% ceiling | AI 判断:是否降级质量等级以保工期 |
|
||||
|
||||
#### AI 决策结构化
|
||||
|
||||
每个 AI 决策必须记录完整的推理过程(司马懿评审意见)。
|
||||
|
||||
```sql
|
||||
-- decisions 表结构化扩展
|
||||
CREATE TABLE decisions (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
task_id TEXT NOT NULL,
|
||||
step_id TEXT,
|
||||
decision_type TEXT NOT NULL, -- agent_selected / plan_adjusted / anomaly_classified / quality_review
|
||||
|
||||
-- 结构化推理(司马懿要求:输入、选项、选择、原因、置信度)
|
||||
input_summary TEXT NOT NULL, -- AI 看到了什么
|
||||
options_considered TEXT NOT NULL, -- 考虑了哪些选项(JSON array)
|
||||
selected TEXT NOT NULL, -- 选了什么
|
||||
reason TEXT NOT NULL, -- 为什么选这个
|
||||
confidence REAL NOT NULL, -- 置信度 0.0-1.0
|
||||
|
||||
model TEXT,
|
||||
token_cost INTEGER,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
```
|
||||
|
||||
#### 经验生命周期
|
||||
|
||||
经验不是写进去就永远有效:
|
||||
|
||||
```sql
|
||||
-- experiences 表扩展
|
||||
ALTER TABLE experiences ADD COLUMN lifecycle TEXT DEFAULT 'draft'; -- draft / verified / superseded / expired
|
||||
ALTER TABLE experiences ADD COLUMN verified_at TEXT;
|
||||
ALTER TABLE experiences ADD COLUMN verified_by TEXT; -- ai / human
|
||||
ALTER TABLE experiences ADD COLUMN expires_at TEXT; -- TTL,过期自动降权
|
||||
ALTER TABLE experiences ADD COLUMN superseded_by INTEGER REFERENCES experiences(id);
|
||||
```
|
||||
|
||||
| 生命周期 | 说明 | 检索权重 |
|
||||
|---------|------|---------|
|
||||
| draft | AI 自动蒸馏,未验证 | 0.5x |
|
||||
| verified | 经过实际任务验证(引用 >= 2 次) | 1.0x |
|
||||
| superseded | 被更好的经验替代 | 0.1x |
|
||||
| expired | TTL 过期,自动降权 | 0.0x(不检索) |
|
||||
|
||||
#### 异常处理策略表
|
||||
|
||||
异常分类用确定性逻辑,处理策略用预设决策表(司马懿评审意见):
|
||||
|
||||
```yaml
|
||||
# config/exceptions.yaml
|
||||
exceptions:
|
||||
- type: agent_timeout
|
||||
detection: "step execution time > per_step_ceiling"
|
||||
strategy:
|
||||
- action: check_agent_alive
|
||||
- action: retry
|
||||
max: 3
|
||||
backoff: exponential
|
||||
- action: reassign_agent # 换一个 Agent
|
||||
- action: escalate_to_human
|
||||
|
||||
- type: validation_failed
|
||||
detection: "quality gate Layer 1 failed"
|
||||
strategy:
|
||||
- action: reject_to_agent
|
||||
max: 3
|
||||
- action: escalate_to_human
|
||||
|
||||
- type: ai_judgment_conflict
|
||||
detection: "two AI decisions contradict"
|
||||
strategy:
|
||||
- action: escalate_to_human # AI 冲突必须人工裁决
|
||||
|
||||
- type: resource_deadlock
|
||||
detection: "circular dependency detected"
|
||||
strategy:
|
||||
- action: break_cycle # 随机释放一个等待
|
||||
- action: reassign_agent
|
||||
- action: escalate_to_human
|
||||
|
||||
- type: budget_exceeded
|
||||
detection: "any budget ceiling reached"
|
||||
strategy:
|
||||
- action: pause_task
|
||||
- action: notify_pangtong
|
||||
- action: await_human_decision
|
||||
|
||||
- type: unknown
|
||||
detection: "unclassified exception"
|
||||
strategy:
|
||||
- action: ai_classify # 只有未知异常才让 AI 分类
|
||||
- action: apply_strategy # 应用 AI 选择的策略
|
||||
- action: escalate_to_human # 兜底
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user