使用Claude 3.5 Sonnet创建AWS Bedrock Agent动作组失败:工具名称验证错误
问题原因与解决方案
核心原因
AWS Bedrock Agent 为 Claude 3.5 生成工具名称时,会遵循固定拼接规则:{HTTP方法大写}__{动作组名称}__{operationId},这个完整字符串必须完全匹配正则规则 ^[a-zA-Z0-9_-]{1,64}$。你之前只修改了 operationId,但忽略了以下两个关键问题:
- 拼接后的总长度超过了64字符限制
- 动作组名称(ActionName)包含了正则不允许的字符(比如空格、点、特殊符号等)
错误数量从4个减少到2个,说明部分操作的拼接字符串已经符合要求,剩余两个仍存在上述任一问题。
具体解决步骤
拆解拼接字符串并逐一验证
对每个REST端点,手动拼接出完整工具名:<HTTP_METHOD>__<ACTION_GROUP_NAME>__<OPERATION_ID>检查两点:
- 总字符数≤64
- 所有字符仅包含大小写字母、数字、下划线(_)、连字符(-)
优先缩短动作组名称
动作组名称会被每个操作的工具名重复使用,是影响总长度的关键。比如将长名称UserAccountManagementRESTAPIActionGroup缩短为UserAcctAG,直接减少每个工具名的长度占用。精简operationId
避免冗长的命名,比如将getUserFullProfileWithBillingDetailsById简化为getUserProfileById,在保留语义的前提下尽量缩短。检查动作组名称的合法性
确认Terraform资源aws_bedrockagent_agent_action_group中的name字段没有特殊字符(如空格、.、/等),仅使用允许的字符集。预验证拼接结果
在部署前,手动验证每个拼接后的工具名是否符合正则:- 长度在1-64之间
- 无违规字符
示例修正
假设原拼接字符串为:
GET__UserAccountManagementRESTAPIActionGroup__getUserFullProfileWithBillingDetailsById
总长度远超过64,修正后:
GET__UserAcctAG__getUserProfileById
该字符串长度符合要求,且所有字符均在允许范围内。
内容的提问来源于stack exchange,提问作者tuffant21
相关产品推荐
相关产品推荐

