2026-08-01T06:53:44.587Z

n8n AI 代理代币使用:构建呼叫账本

总结每一个 n8n 模型调用稳定的身份,重试会计,嵌入式工作属性和明确的使用覆盖.

测量 n8nAI代理代币使用 的可靠方法是为每个模型调用创建一个本书行,然后根据验证结果汇集这些行. 在执行出口中,不要递归添加每个 tokenUsage 对象. 这可以计算重复执行快照两次,再次计算由母节点反射的使用,或将估计的代币混合到提供商报告的总数. 有用的默认有四个规则: 1. 仅从模型调用输出收集使用; 2. 确定执行,节点,运行,项目和供应商调用字段的观察; 3. 将重试和嵌入式通话作为实际使用,但将它们分为一个 logicalOutcomeId ; 4. 报告供应商使用量和估计情况在单独的列中,除了总数之外,还包括覆盖范围. 这种设计回答了搜索背后的操作问题:不仅是数字在哪里?, 使用调用账本,而不是递归金额 目前的n8n源使第一个会计界限可见. 它的类型: TokenUsage 包含 promptTokens , completionTokens 和 totalTokens ,可选地进行缓存阅读,推理和供应商特定的元数据. 在当前的兰格链追踪实施中,当提供商提供计算时,n8n写成 tokenUsage . 如果它无法获得实际完成使用,则它会写 tokenUsageEstimate . 这些领域是不可替换的. 估计可以帮助设置警告门,但它不是提供商报告的使用或发票收据. 追踪实现还会在AI语言模型连接上写出模型输出. 这给收藏者一个更安全的起点,而不是搜索AI代理节点下面的所有物业. 使用这样的行: 这些识别器解决了不同的问题. n8n 文件将 $execution.id 作为唯一的工作流执行ID,并将 $runIndex 作为当前节点运行的零次计数. 在执行中, nodeName 和 itemIndex 分别调用. 提供商响应身份证,如果可用, 从观察身份构建减倍密钥: 如果提供商不披露通话ID,请保留明确的 providerCallId: null ,并使用可用的最强的稳定本地身份. 不要把提示或响应作为首要关键:相同的提示可能是合法的单独调用,并且存储内容会造成可避免的隐私问题. 事件关键答案 我已经记录了这个电话吗?它没有回答 这个电话贡献了用户可见的结果吗? 这需要第二个关键. 在工作流入口时生成 logicalOutcomeId ,通过重试保存,并将其传递到每个子工作流中. 值可以是不透明的工作或请求ID;它不应包含提示,电子邮件地址或其他敏感内容. 保持重复尝试,但重复重复观察 复试不是重复使用. 一次尝试失败到达模型,即使后来的尝试成功,也消耗了代币. 放弃它使一个不可靠的工作流程看起来更便宜, 复制的观察不同. 假设一个选民收集者拿到执行 811 ,然后再拿到相同的完成执行. 这两张相是同一次电话的快照. 同样,母体AI代理输出可能包含已存在于AI语言模型输出模型节点中的模型使用的诊断副本. 这些副本不应创建新的账本行. 规则很严格: 同样的 eventKey 再次看到:更新新鲜度或来源,但不要添加代币; 在同一节点运行中不同的提供者调用:保持它; 不同的运行指数:保持它; 一次重试执行与不同的执行身份证:保留它; 一个具有不同的执行身份的嵌套执行:保持它; 在非模型连接下显示的相同呼叫: 忽略镜子. 我用合成的详细执行装置测试了这个规则. 它包含四个快照:一个失败的执行,第二次失败的快照,一个成功的重试, 一个模型调用只显示了估计. 测量 结果 : 可见的 tokenUsage 对象通过递归搜索找到 12 简单的递归实际代币总数 6,020 单独的供应商报告的模式调用 4 实际的即时代代币 1,670 实际完成代币 280 实际的全部代币 1,950 只有估计的电话 1 预计的代币,单独报告 120 实际通话覆盖率 80% 复习结果是 3.09× 语义账本总数. 它计算了重复执行快照和母节点镜子. 这次尝试为最终结果贡献了1950个实际代币中的1,060个,或者是 54.4% . 这种区别很重要. 如果把第一次尝试称为复制品, 如果把每个可见的副本都称为新的呼唤, 认同解决了两个错误. 子还捐了350枚. 它保留了自己的执行身份和事件密钥,所以它不能与其父母碰撞. 共同的 logicalOutcomeId: support ticket 42 将这项工作归因于相同的预期结果. 只有估计的电话仍在实际总数之外. 增加它将产生2,070个代币,但更精确的数字将隐藏一个更弱的事实: 仪表板应显示 actualTotalTokens: 1950 , estimatedTotalTokens: 120 和 actualCoveragePct: 80 ,而不是一个未标记的数量. 您可以通过保存上面的执行形状作为固定,并运行下面显示的账本循环来复制比较. 重要的是决策规则,而不是这些合成百分比; 产量比例取决于工作流程,模型节点,供应商,重试政策和数据保留. 通过覆盖控制提取详细的执行数据 n8n对检索一个执行的公开API合同接受 includeData . 相关的执行方案表示,只有当该标志是正确的时,详细数据才会被包含. 因此,收藏人可以通过以以下形式的请求完成执行: 保持关键服务器侧,要求最低要求的执行数据,不要复制提示或响应器件到代币账本中. 收集者需要标识符,状态,运行结构,使用字段和覆盖证据,而不是对话内容. 然后按节点行走 data.resultData.runData 节点: 处理这个作为一个版本的适配器,而不是一个无时代的解析器. 验证你部署的每个模型节点类型的实际输出. 一个更新的 n8n 源快照可以暴露追踪元数据,如 llm.tokens.in , llm.tokens.out , llm.tokens.total 和估计的旗,但旧或供应商特定的节点可能不同. 保存未知的诊断领域,并且在模型运行没有被识别的使用时可视地覆盖. 详细的数据也可能无法获得. n8ns执行终端记录了一个配置的显示尺寸限制,该产品支持执行数据编辑. 保存设置可以删除旧执行器官. 因此,一个缺失的实体意味着使用不可用,而不是零代币. 每个收藏窗口的记录覆盖计数器: 标记必须包括未使用的已认可的模型调用. 否则,一个破产的收藏器可以报告100%的覆盖率, 每个验证结果的总数 一个代币总数只能除了它购买的作品之外有用. 对于每个 logicalOutcomeId ,总量: 当这些字段存在时,实际输入,输出,缓存,推理和总代币; 预计的代币在单独列中; 单独的召唤和执行数量; 失败尝试的代币; 嵌入式执行代币; 收藏覆盖率和最后一次见面时间; 一个决定性结果收据. 收据取决于工作流程. 支持工作流可能需要更新预期状态和目的地ID的门票. 文件工作流可能需要一个已知存储密钥以及内容哈希的对象. 部署工作流程可能需要测试,部署状态和公共卫生反应. 最后一次成功的执行是活动证据;它没有证明所需的外部影响. 使用三个视图,而不是一个过载的数字: 1. 调用视图 用于调试单个模型调用. 2. 对于节点运行,状态和重试关系, Execution view . 3. 结果视图 为了所有尝试和嵌的工作, 只有结果视图支持这样的声明: 此验证的门票更新使用了1950个供应商报告的代币,加上120个估计的代币,在五个模型调用中,实际调用覆盖率为80%. 如果您稍后计算货币,请将账本加入使用供应商,模型,区域或服务层次的日期模型价格表,并在相关情况下加入代币类. 不要从今天的价格推断历史成本. 不要仅使用估值价格的行列,仿佛是调整的账单数据. 标签估计的结果,直到与供应商的发票或权威的成本记录相匹配. 仅在审计通过后,才推广仪表板 在信任n AI 代理代币仪表板之前,运行一个已知模型调用,一个重复节点运行,一个强迫重试和一个嵌套的子工作流. 检查执行详细数据,并要求这些检查: 每次预期的调用均产生一个正确的账本行; 两次执行相同的执行不会改变总数; 失败的尝试仍然存在于结果总数中; 儿童处决在父母结果下出现一次; 实际使用,估计使用和缺失使用保持分开; 删除或编辑执行数据将降低覆盖率,而不是产生零; 如果外部交货物不存在,结果收据失败. 这里的设备通过了这些会计检查,但它并不能证明与每个n8n节点或提供商兼容. 这就是边界:本书设计可重复使用;适配器是版本特定的. Sidewisp旨在使时间和预算效率成为AI代理健康的一部分,并包括可用性,执行,内存,工具和结果. 预计使用代币和估计成本分析, Sidewisp 目前处于私密预览阶段。 在这种健康层连接之前,保持本书接近n8n,收集所需的最小元数据,除非使用和验证结果都改善,否则不促进优化.