Skip to content

业务系统签发失败时给用户能照做的说明,并提示模型其他途径照常可用 - #134

Merged
wxkingstar merged 1 commit into
mainfrom
claude/system-token-failure-note
Oct 14, 2026
Merged

wxkingstar merged 1 commit into
mainfrom
claude/system-token-failure-note

Conversation

@wxkingstar

Copy link
Copy Markdown
Owner

问题

AI 员工每轮按授权预先为业务系统签发令牌。外部签发方拒签时,本轮说明是:

业务系统 X(x):本轮未获得访问令牌(access_denied),请联系管理员检查令牌提供方和当前用户授权。不得改用其他身份或历史凭据。

实际对话里出现了两个问题:

  1. 模型把错误码和「令牌提供方」原样转给用户,用户不知道该找谁、做什么。
  2. 用户的请求本可以直接查数据库完成,模型却去调业务系统接口,失败后只回复「请管理员检查」。「不得改用其他身份或历史凭据」容易被理解成连已有的数据库等途径也不能用。

改动

  • 签发失败的系统合并成一条本轮说明,先说明失败只影响这些系统的接口:请求能用数据库、技能、文件等已有途径完成时照常完成,不必提起这些系统;只有确实需要这些系统时,才按给定说法告诉用户,不只给错误码。禁止的范围收窄为「用其他人的令牌或历史令牌调用这些系统」。
  • 按错误码给出用户能照做的说法:
    • access_denied:账号通常还没开通该系统的权限,找该系统管理员开通后重新提问;确认已开通仍不行,再联系 CoreMan 管理员。
    • issuer_unavailable / invalid_response:稍后重新提问;持续出现请联系 CoreMan 管理员。
    • 其他(配置问题):联系 CoreMan 管理员。
  • 无迁移,节点不用升级。

测试

  • tests/integration/test_system_access.py:说明不含错误码、提到其他途径、按错误码给出对应说法、只列出失败的系统。
  • 本地跑了业务系统 / 提示词 / 本轮块相关的 131 个用例,ruff、pyright 都通过。

🤖 Generated with Claude Code

原来签发失败的本轮说明直接带错误码和「令牌提供方」等术语,模型照搬给用户,
用户看不懂该怎么办;另有一句「不得改用其他身份或历史凭据」,模型会理解成
连数据库等已有途径也不能用,于是放着能完成的请求不做。

现在按错误码给出用户能照做的说法(access_denied:找该系统管理员开通权限;
签发服务异常:稍后重试),并说明失败只影响这些系统的接口,用户的请求能用
其他途径完成时照常完成;禁止的只是用他人或历史令牌调用这些系统。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wxkingstar
wxkingstar merged commit d94d02f into main Oct 14, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant