|
|
@@ -164,19 +164,27 @@ Recursive 新根 Trace 会从环境变量读取一次预算,并把不可变快
|
|
|
| `AGENT_MAX_TOTAL_TOKENS` | `1500000` | 输入和输出 Token 总数 |
|
|
|
| `AGENT_MAX_TOTAL_COST_USD` | `15` | 累计模型成本(美元) |
|
|
|
| `AGENT_MAX_DURATION_SECONDS` | `3600` | 从根用量初始化开始的最长时间 |
|
|
|
-| `AGENT_RESERVED_FINAL_CALLS` | `1` | 仅保留给根 Validator 的末尾调用数 |
|
|
|
+| `AGENT_MAX_VALIDATION_TOOL_CALLS` | `300` | 受控 Validator 搜索和页面读取总次数 |
|
|
|
+| `AGENT_MAX_VALIDATION_MATERIAL_CHARS` | `1000000` | Validator 解析的产物、搜索结果和页面正文字符总数 |
|
|
|
+| `AGENT_RESERVED_FINAL_CALLS` | `8` | 仅保留给根 Validator 的末尾调用数 |
|
|
|
|
|
|
所有数值必须为正数,且 `AGENT_RESERVED_FINAL_CALLS < AGENT_MAX_LLM_CALLS`。预算动态用量保存在根 Trace 目录的 `resource_usage.json`,记录 Agent、LLM、Token、成本、起始时间和最后拒绝原因。
|
|
|
|
|
|
关键计数语义:
|
|
|
|
|
|
-- Validator 不计入 Agent 数,但计入 LLM、Token、成本和时间。
|
|
|
+- Validator 不计入 Agent 数,但计入 LLM、Token、成本、时间、受控工具调用和验收材料字符数;搜索适配器上报的 Provider 成本也累加到整树成本。
|
|
|
- `continue_from`、停止、失败、续跑和回溯不退还已产生用量。只有批量预留后实际未创建 Trace 的部分会撤销 Agent 预留。
|
|
|
- 工具内部的模型调用只有在返回 `tool_usage` 时才能追加记录;`remote_*` 当前不纳入本地树预算。
|
|
|
- LLM 次数在调用前预留,Token 和成本在响应后登记。在途响应导致超限时会保留实际消耗,但不再执行该响应的 Tool Call。
|
|
|
|
|
|
用量文件缺失或损坏时 Recursive 会 fail closed。当前原子更新仅由单 Python 进程内每个 `root_trace_id` 的异步锁保护。
|
|
|
|
|
|
+Validator 配置也只在新建 Recursive 根 Trace 时固化:`AGENT_VALIDATOR_MODEL`
|
|
|
+可覆盖普通 Scope 模型,`AGENT_ROOT_VALIDATOR_MODEL` 可单独覆盖根验收模型。
|
|
|
+`AGENT_VALIDATOR_SEARCH_PROVIDER=serper` 且配置 `SERPER_API_KEY` 时,
|
|
|
+Evidence、Hypothesis 和 Root Validator 可使用受控公开网页搜索;默认
|
|
|
+`disabled`,缺少 Provider 时证据不足只能返回 `unknown`。
|
|
|
+
|
|
|
**实现**:`cyber_agent/core/resource_budget.py:ResourceBudget`,`cyber_agent/core/resource_budget.py:ResourceBudgetController`,`cyber_agent/trace/store.py:FileSystemTraceStore.replace_resource_usage`
|
|
|
|
|
|
---
|
|
|
@@ -202,10 +210,13 @@ Recursive 新根 Trace 会从环境变量读取一次预算,并把不可变快
|
|
|
| `tests/test_recursive_subtree_cancellation.py` | 子树停止、排队取消和 API Runner 路由 |
|
|
|
| `tests/test_recursive_resource_budget.py` | 预算解析、原子计数、超限和用量持久化 |
|
|
|
| `tests/test_recursive_replan_context.py` | 上下文继承、任务匹配和逐级回退 |
|
|
|
-| `tests/test_recursive_validation_core.py` | Validator 输入、独立性和结果校验 |
|
|
|
+| `tests/test_recursive_validation_core.py` | 分层 Policy、Plan、逐项结果和聚合 |
|
|
|
+| `tests/test_recursive_validator_web.py` | 搜索白名单、SSRF、DNS 固定、重定向和限额 |
|
|
|
+| `tests/test_recursive_validation_artifacts.py` | ArtifactRef、Resolver、hash 和跨树越权 |
|
|
|
| `tests/test_recursive_runtime_extensions.py` | 根门禁、预算包装和停止后协议行为 |
|
|
|
| `tests/test_recursive_context_policy.py` | 根锚点、TaskBrief 版本、引用授权与限额 |
|
|
|
-| `tests/test_recursive_context_integration.py` | 五层上下文漂移、真实读取、工具权限与逐层验收 |
|
|
|
+| `tests/test_recursive_context_integration.py` | 五层上下文、分层 Scope、受控搜索、权限与逐层审核 |
|
|
|
+| `tests/test_recursive_validator_lifecycle_complex.py` | 最深层修订和根结果独立验收的五层复杂用例 |
|
|
|
|
|
|
---
|
|
|
|