QVeris

金融与市场数据

AI 金融 Agent 成本审计:可复现示例

按工具、计费单位、重复调用与结果审计账单,以可复现基线衡量节省效果。

发布日期:2026年4月15日 · QVeris团队制作

结合财务报告、计算记录和市场证据开展分析
结合财务报告、计算记录和市场证据开展分析
结合财务报告、计算记录和市场证据开展分析

从实际计费证据开始

金融 Agent 成本审计应将调用事件与最终积分台账勾稽。输入为七天用量导出、工具与供应商标识、时间戳、请求ID、最终计费单位及任务结果;输出为勾稽费用表、重复候选、失败调用证据和有边界的优化方案。

以下数字是示例数据,不是真实客户账单或节省保证。单位费率为假设积分,不是供应商公开价格;积分不等于人民币。Discover 与 Inspect 免费,不应计入付费调用。

先定义可比的审计窗口

固定 UTC 起止时间,列明纳入的 Agent、运行环境和账户。生产任务、定时研究和开发测试分别统计,同时记录尝试任务数与完成任务数。仅因完成任务减少而降低账单,不代表效率提升。

能力调用积分、外部模型 Token 和基础设施费用分开记账;只有存在可靠任务或追踪标识时才进行关联。保留原始计费单位和币种,不从积分余额推算货币兑换率。

分别勾稽执行事件与费用记录

用量事件说明发生了什么,积分台账说明余额如何变化。一次执行可能有调整、待结算项目或后续退款。应通过稳定标识关联,先检查未匹配记录,再报告合计;不能把每条用量记录乘以目录预估价,就称为真实账单。

建立能够解释每笔费用的台账

以下字段名是建议的本地审计结构,不代表供应商导出的固定列名。将官方用量和台账导出映射到这些字段,同时保留原始文件;审计数据不应包含密钥或不必要的个人信息。

字段组记录内容审计检查
记录身份台账条目 ID、执行 ID、任务 ID区分执行与费用调整,拒绝重复台账条目。
时间与状态UTC 事件时间、数据时点、结算状态核对时区、审计截止点及延迟入账记录。
能力与来源已检查的能力标识、供应商及账户范围保留真实标识,不合并名称相近但不同的工具。
单位与费用计费单位、结算数量、带正负号的积分变动分别勾稽扣费、退款与净支出。
请求等价性规范化参数、请求期间、权限及时效要求相同股票代码不足以证明重复。
任务结果成功、空结果、失败、验收通过及证据检查将成本关联到有效结果,而不只看 HTTP 状态。

请求指纹中不要包含密钥。指纹只用于发现候选重复项,不代表已经获得存储或复用响应的许可;数据保留和再分发须遵循来源契约。

示例勾稽:314积分

任务次数假设每次积分积分合计
quote14342
earnings815120
news5840
risk31236
FX6212
filing2510
index9436
sentiment3618
合计50—314

每行满足次数×假设单价=合计,八行总计314积分。实际审计须采用最终台账费用并计入相关调整;仅凭HTTP状态不能判断是否计费。

这个示例能够说明什么

八行数据表示 50 次假设调用,其中财报类占假设总积分的 120/314。占比最大并不等于浪费;应先检查覆盖范围、报告期间及验收结果是否需要这些调用,再决定是否优化。

比较两轮运行前,应按账户原有正负号口径勾稽期初余额、购买、赠送、扣费、退款和期末余额。任务支出统计应排除无关充值;暂估项目要明确标记,结算完成后重新审计。

区分必要工作与可避免的调用

等价请求重复

只有参数、数据期间、访问权限和时效要求一致时,重复请求才可能避免。提出复用方案前,还要比较返回证据是否等价。

重试放大

超时可能意味着执行状态未明。保留原始执行或幂等引用,通过受支持接口查询状态,再按有上限的策略重试。

取数范围过大

反复获取完整历史或整份公告,可能超出任务需要。检查是否支持日期筛选、字段选择或批量接口,同时计量数据成本和下游模型输入。

没有推进结果的循环

Agent 可能反复发现或检查,却没有推进决策。即使这些操作免费,也应单独记录耗时与模型工作量,不能虚构能力调用费用。

只建模一项明确优化:314 → 267

假设14次报价具有相同代码、请求时点、权限与时效容忍度,可由应用层复用减少13次,减少13×3=39积分。再假设六次汇率请求中四次重复,减少4×2=8积分。合计减少47积分,剩余314−47=267积分,示例减少14.97%。

以上假设必须验证。用户要求当前或最新数据时,不应复用过期行情结果;不得假设失败调用一律免费、供应商可无条件互换、平台自动缓存或必然节省某个比例。

指标基线建模结果
假设调用次数50移除 17 次等价调用后为 33
假设积分314267
建模减少量不适用47 积分;47/314=14.97%
必要验收原任务证据与时效要求必须保持等价,否则否决该方案

逐条记录准备移除的请求,以及哪份保留响应可替代它。如果报价发生在不同市场时点,或客户权限不同,减少 13 次报价的假设就可能不成立;应根据符合条件的子集重算,而不是维持预设节省比例。

区分有效控制与未经证实的承诺

  • 仅在明确时效窗口内对等价请求去重,在应用中实现并记录缓存。
  • 选择替代供应商前检查覆盖、结构、权限、授权与计费,低价不能证明数据等价。
  • 调用前检查必需参数,按台账勾稽超时及失败费用,不预设退款。
  • 将免费发现与付费执行分开记录,单独测量发现耗时。
控制措施实施决策失效边界
合并并发请求只在允许范围内合并等价的进行中只读请求。不合并不同账户、权限或数据期间。
应用缓存定义缓存键、有效期、来源时间戳及失效规则。任务需要更新证据或禁止复用时,绕过或刷新缓存。
有限重试区分错误类型;输入错误和权限不足时停止,并设置尝试上限。执行未明时先勾稽状态,避免盲目再发请求。
最小必要取数选择满足输出契约的受支持字段、期间及批量选项。若丢失必要证据,响应再小也不能接受。

先验证输出质量,再接受低成本结果

使用固定证据要求回放同一组任务,比较完成率、来源覆盖、必需字段、时间戳、数值准确性和缺失数据处理。重大差异应人工复核;如果节省伴随陈旧报价、缺失公告或静默降级,就应判定优化失败。

验收项保留的证据
任务可比相同任务构成、请求期间、权限和验收结果。
时效与溯源每项必要结果的来源身份、事件或数据时点及获取时间。
计算正确统一单位、币种和报告口径,并执行确定性复算。
如实失败明确记录陈旧、缺失、权限不足和执行未明状态。

总支出之外,还应报告每个验收通过任务的净结算积分,并保留失败任务的费用。模型或基础设施成本按各自单位另列,不将 Token、积分和货币金额直接相加。

先复现计算,再审计自己的日志

以下Python示例仅在本地计算,不发起网络调用,也不使用编造的工具标识。实际用量与积分导出应依据当前官方用量和台账文档,不依赖未经验证的CLI参数。

rows = [(14, 3), (8, 15), (5, 8), (3, 12),
        (6, 2), (2, 5), (9, 4), (3, 6)]
baseline = sum(count * unit for count, unit in rows)
removed = 13 * 3 + 4 * 2
after = baseline - removed
assert baseline == 314 and after == 267
print(round(100 * removed / baseline, 2))  # 14.97

当前 CLI 文档 · 计费规则与价格

在本地汇总规范化台账

将下面仅依赖标准库的 Python 程序保存为 audit_usage.py。CSV 是本页定义的分析结构,并非官方导出格式。显式映射原台账后,用正数 credits_delta 表示结算扣费,用负数表示退款或冲销;调整记录应使用独立条目标识。

import csv
import sys
from collections import defaultdict
from decimal import Decimal, InvalidOperation


def audit(stream):
    reader = csv.DictReader(stream)
    required = {"entry_id", "task_id", "tool", "outcome", "credits_delta"}
    if not required.issubset(reader.fieldnames or []):
        raise ValueError("Missing normalized audit columns")
    seen = set()
    net = Decimal("0")
    by_tool = defaultdict(Decimal)
    by_outcome = defaultdict(Decimal)
    for line, row in enumerate(reader, start=2):
        if any(not (row.get(k) or "").strip() for k in required):
            raise ValueError(f"Blank required field on line {line}")
        entry = row["entry_id"].strip()
        if entry in seen:
            raise ValueError(f"Duplicate ledger entry: {entry}")
        seen.add(entry)
        try:
            amount = Decimal(row["credits_delta"])
        except InvalidOperation as exc:
            raise ValueError(f"Invalid credits on line {line}") from exc
        if not amount.is_finite():
            raise ValueError(f"Non-finite credits on line {line}")
        net += amount
        by_tool[row["tool"]] += amount
        by_outcome[row["outcome"]] += amount
    return {"entries": len(seen), "net_credits": str(net),
            "by_tool": {k: str(v) for k, v in by_tool.items()},
            "by_outcome": {k: str(v) for k, v in by_outcome.items()}}


if __name__ == "__main__":
    if len(sys.argv) != 2:
        raise SystemExit("Usage: python audit_usage.py normalized_ledger.csv")
    with open(sys.argv[1], newline="", encoding="utf-8-sig") as source:
        print(audit(source))

程序会拒绝空字段、重复台账标识和无效金额,再按工具及结果汇总净积分。它刻意不自动删除重复请求:多次执行可能合理,但重复台账条目会抬高统计;任务是否通过质量验收也不由程序代判。

仅对获准使用的本地导出运行:python audit_usage.py normalized_ledger.csv。若测试输入含 7、7 两笔扣费和 −2 一笔退款,净积分应为 12;这验证的是算术与解析逻辑,不代表生产发票已获核验。

把审计发现转化为可回滚的改动

  1. 封存基线:保存任务集、时间区间、计费口径、原始导出和代码版本。
  2. 提出单一假设:指出具体等价调用、对应台账条目和拟采用的替代响应。
  3. 优先离线回放:新增付费流量前,先比较证据与计算结果。
  4. 小范围上线:设置尝试上限和任务预算,观察新增台账;质量回退时停止。
  5. 结算后勾稽:区分实测减少量与建模预估,列出仍未匹配的记录。
  6. 保留回滚路径:可恢复原路由或缓存策略,同时保留审计记录。

每项发现都应包含负责人、证据、预期变化和验收测试。计费规则或来源权限不清时应记录不确定性,不能将其包装成节省结论。

宣称节省前必须回答的问题

能否将积分直接换算为人民币?

本例不假设固定人民币兑换关系。应采用实际购买币种和发票条款,外部模型或客户端费用另行核算。

Discover 与 Inspect 是否收费?

官方价格页说明二者免费。Call费用遵循能力计费规则与最终台账;购买的充值积分不过期,试用或促销条款可能不同。

怎样的节省结果才可信?

匹配的工作负载、相同输出质量要求、明确计费期间和失败处理,以及可勾稽的前后台账。示例建模不等于生产实测。

超时是否意味着这次调用没有收费?

不是。客户端丢失响应时,执行或结算可能仍在继续。应保留原标识,使用文档支持的状态勾稽方式,并查询最终台账,再决定重试或判断退款。

能否直接换成最便宜的供应商?

必须先依据任务契约核对覆盖、时间戳、字段定义、权限及复用条件。比较时应计入失败和备用调用,衡量验收通过结果的成本,而不只比较展示单价。

应该多久审计一次?

审计频率应匹配工作负载变化及结算周期。路由、计费规则、模型、提示词或缓存策略变化后应重跑;保留可比区间,避免把正常市场活动变化误当作工程优化。

核对当前计费与审计契约

根据当前官方文档映射导出和执行标识,并保留审计所用规则的带日期副本。本页提供分析方法,不能代替账户最终台账。

AI 金融 Agent 成本审计:可复现示例 | QVeris Guides