第 12 章:日志、失败与成本
三种状态最容易混淆
成功表示计算结果符合要求;失败表示已经得到明确的错误结果;超时表示在规定时间内没有完成。超时后尤其要确认进程是否还在运行,否则你可能一边报告失败,一边继续消耗资源。
连接中断时,远端任务可能仍然执行。应该通过任务 ID 查询状态,而不是立刻重建一个任务。重复执行对“求和”影响小,对“下订单”或“发送邮件”却可能产生两次动作。
日志不是越多越好
记录任务 ID、步骤、耗时、退出码、错误类别和必要摘要通常很有用。完整环境变量、访问令牌、客户原文和无限输出则可能造成泄露或磁盘消耗。
控制 stdout/stderr 的累计大小,给日志设置保留期限。教学脚本把输出直接显示到终端,适合小型固定程序;生产执行器应使用有界流式收集,避免把无限日志一次装进内存。
预算要覆盖整条链路
一次任务的成本可能包含模型调用、运行时间、存储、网络流量和重试。限制单次容器 CPU 不会自动限制大模型调用次数。需要给总步骤数、总耗时、总费用和并发数设上限。
错误处理先分类:输入错误不应盲目重试;短暂服务故障可以有限重试;权限拒绝要重新审视任务需要,不能自动升级为无限权限。连续失败后应停止并给出可理解的原因。