DeerFlow
DeerFlow 成本控制:分清有效工作与重复工具流量
围绕令牌、工具突发、停止原因和已验收产物设计实验,不用未经测量的智能体加速数字。
你将学会
- 两个循环窗口统计不同对象
- 警告与强停有不同的计数效果
- 计算已验收产物成本时包含失败
开始前需要
- 基础 Python、HTTP 和容器知识
- 拥有明确验收条件的自有任务
解释本章实现边界,并应用检查清单或隔离辅助函数练习。
先看结论
- 调用集合重复和工具突发使用不同窗口。
- 强停阈值必须在计数窗口内可达。
- 有效产物成本应包含失败和受限尝试。
两个循环窗口统计不同对象
检测器构造默认值是在二十个调用集合的历史窗口中,出现三次匹配时警告、五次时强停。第二层即使参数变化也统计工具名称,默认三十次警告、五十次停止。有效配置能够覆盖这些数字,也支持按工具设置,因此它们不是所有实例共同的服务限制。
工具频率窗口至少扩展到当前最大的强停阈值,否则长度二十的队列永远无法达到五十次保护条件。实现使用双端队列和同步 Counter,让计数随进入和离开窗口增减,不必每次重新扫描。单个工具的覆盖值也可能扩大这个共享窗口。
警告与强停有不同的计数效果
重复调用警告在检查当前批次剩余内容时只是候选结果,工具频率统计仍继续,后续强停可以取代该警告。这个细节避免了前面的警告遮住同一模型响应后面更严重的工具突发,也说明一次模型响应不能直接当成一次工具调用统计。
强停会抑制待执行调用并记录原因,警告则排队等待下一次模型请求注入。令牌预算由构建器中的另一项启用分支安装。应分别统计模型令牌、工具执行、沙箱存活时间和产物验收;调用更少的运行如果不能完成任务,也未必更经济。
计算已验收产物成本时包含失败
准备固定自有任务和预期输出,记录模型、配置、并发与源码版本。把失败及受限停止的尝试纳入总花费,再除以通过验收的产物数量。只有收集样本后才报告延迟分布;尚未运行负载时保留未知值,不借用项目宣传数字冒充自己的实测。
下面的记录刻意使用 null 表示未测量。比较基线和单项配置变化,保留每个拒收原因。提高限制可能挽救合理的长研究,却也会提高最坏情况消耗,并掩盖任务拆分不良。向上调阈值前,应先检查具体误报样例。
实施步骤
- 1
固定任务集、源码与模型配置。
- 2
逐次记录令牌、工具、沙箱时间和停止原因。
- 3
使用相同标准验收产物。
- 4
检查误报后一次只改一项限制。
可复制示例
{"attempts":0,"acceptedArtifacts":0,"totalModelCost":null,"sandboxSeconds":null,"p95LatencyMs":null,"costPerAcceptedArtifact":null,"stopReasons":{},"benchmarkExecuted":false}常见问题
我的实例一定采用 3/5 和 30/50 吗?
不一定。这些是所查构造默认值,实际限制还取决于配置及按工具覆盖。
工具调用少就一定更省钱吗?
不一定。拒收产物、重试、模型选择与沙箱时间也会影响完成有效工作的成本。
资料来源
- README.md来源核查 2026-09-08
- LICENSE来源核查 2026-09-08
- backend/README.md来源核查 2026-09-08
- backend/pyproject.toml来源核查 2026-09-08
- backend/docs/middleware-execution-flow.md来源核查 2026-09-08
- backend/packages/harness/deerflow/agents/lead_agent/agent.py来源核查 2026-09-08
- backend/packages/harness/deerflow/agents/middlewares/loop_detection_middleware.py来源核查 2026-09-08
- backend/packages/harness/deerflow/agents/middlewares/_bounded_dict.py来源核查 2026-09-08
- backend/packages/harness/deerflow/config/loop_detection_config.py来源核查 2026-09-08
- backend/packages/harness/deerflow/sandbox/local/local_sandbox_provider.py来源核查 2026-09-08
- backend/app/gateway/auth_middleware.py来源核查 2026-09-08
- backend/app/gateway/csrf_middleware.py来源核查 2026-09-08
- docker/docker-compose.yaml来源核查 2026-09-08