调用大模型 API进行多轮对话的注意事项
消息与上下文
- 按 API 约定传递
system、user、assistant、tool 消息,不要把工具结果伪装成用户输入。
- 每次请求都要估算输入和输出 Token;上下文超限时优先压缩历史、保留约束和最近工具结果,而不是盲目截断开头。
- 多轮会话不要把 API key、数据库密码、私钥或完整生产日志原样放入 Prompt;需要脱敏并限制日志留存。
可靠性与成本
- 为网络请求设置连接、读取和总超时,处理 HTTP 429、5xx、流式中断和模型返回格式错误。
- 重试只用于幂等请求,并使用指数退避和最大次数;带工具调用或写操作的请求必须使用幂等键,避免重复执行。
- 记录模型、版本、参数、Token 用量和请求耗时,便于回归比较;不要记录完整敏感 Prompt。
输出与工具调用
- 需要机器解析时优先使用 JSON Schema/结构化输出,并对模型结果进行服务端校验,不能仅依赖 Prompt 要求。
- 工具名称、参数和权限采用白名单;在真正执行写入、删除、转账等操作前增加业务校验和人工确认。
- 流式输出要处理半个 UTF-8 字符、代码围栏未闭合和客户端断线,最终结果仍应在服务端重新校验。
评估
- 为关键任务准备固定数据集,分别评估正确性、拒答率、延迟、成本和提示注入防护。
- 模型升级、系统 Prompt 或工具 schema 变化后重新运行回归测试,并保留可追溯的版本号。