更新时间:2026-05-11 GMT+08:00
分享

常见问题

Authenticationfailed报错

调用API时出现{"code":401,"data":null,"message":"Authenticationfailed!"}报错,表示Authentication失效,请重新获取。

智能体运行正常,发布后API调用报错API Key validity AgentArts.103004、Failed to call model

问题现象:

在平台页面测试智能体时一切正常,但通过API调用已发布的智能体、工作流时,收到如下错误响应:

"message": "Planning assistance engine failed to plan or execute: Failed to call model, root cause=[100025]Model request error: Failed to get the authorization header."
"error_suggestion": "Check the availability of the backend model service, API Key validity, and network connectivity.", "error_code": "AgentArts.103004"

原因分析:

由于未在AgentArts平台上配置模型API Key所致。

  • 试运行阶段:平台为了方便用户快速上手,通常会为页面上的“试运行/预览”提供部分免费额度的Token,用户无需配置即可直接对话(免费Token用完后需要配置API Key)。
  • 发布运行态:当智能体发布并转为API调用时,系统认为已进入正式生产环境。出于资源权属和计费考虑,生产环境不支持使用平台的免费Token。此时,智能体内部引用的底层大模型(如GLM、DeepSeeK或其他第三方模型)必须使用用户自己在平台配置的API Key。
  • 理解误区:在平台“授权管理 > 模型”页面看到的“已开通”状态,仅表示您已订阅或具备使用该模型的权限,并不等同于您已配置了用于扣费和鉴权的API Key。

解决措施:

  1. 在AgentArts平台配置模型API Key。

    1. 登录AgentArts智能体开发平台
    2. 在左侧导航栏中选择“授权管理”在“模型”页签单击“鉴权管理”。根据页面提示获取并填入API Key。
      图1 配置模型API Key

  2. 重新编辑智能体中的模型,并更新智能体版本。

    模型API Key配置完成后,返回“智能体管理”页面,重新配置智能体、工作流的模型,并进行“更新版本”操作。

    图2 编辑并更新智能体示例

签名过期,报错signature expired, signature time:..., server time:...APIGW.0301

问题现象:

接口返回401错误,提示signature expired,并给出了两个具体的时间戳,通过两个时间戳的差值可以看到签名时间超过15分钟(客户端签名时间 (signature time): 07:41:40Z、服务器当前时间 (server time): 08:03:32Z,时间差约22分钟)。

{"request_id":"318656a7b2c5bea7edb00296f0d896ce","error_msg":"Incorrect IAM authentication information: calc ak sk signature failed:signature expired, signature time:20260422T074140Z,server time:20260422T080332Z","error_code":"APIGW.0301"} 

原因分析:

安全机制要求请求从发起签名到送达服务器的时间差必须在15分钟以内,引发超时的原因主要有:

  • 手动拷贝延迟。您在Python脚本中生成了Authorization和X-Sdk-Date,但过了很久(超过15分钟)才将其拷贝到Postman或其他工具中使用。
  • 本地系统时钟不同步。您发送请求的机器本地时间比标准UTC时间慢了(或快了)15分钟以上。
  • 缓存了鉴权头。在代码中重复使用很久以前生成的Header报文,而没有在每次请求前重新执行签名函数。

解决方法:

  • 确保在代码逻辑中,“计算签名”和“发送请求”这两个动作是连续完成的。不要使用之前算好并保存下来的旧签名,因为签名15分钟后就会失效。
  • 检查运行环境的系统时间。如果是Linux服务器,建议使用ntpdate同步标准时间。
  • 如果您是手动调试,请重新运行Python脚本以获取带有最新时间戳的Authorization并在15分钟内完成调用。

如何构造 POST 接口的消息体(Body)

对于复杂的POST接口,应根据API文档定义的结构构造JSON字符串:

示例场景:创建评测集

根据文档定义的参数(name、description、schemas等),构造方式如下:

  • 参数映射逻辑:
    • name(必选):字符串类型。
    • description(可选):字符串类型。
    • schemas(可选):对象数组,每个对象包含必选的name(标识符)和type(数据类型)。
  • 代码示例:
    import json
    
    # 1. 按照文档定义的嵌套结构构造字典
    post_data = {
        "name": "Evaluation_Set_001",           # 必填项
        "description": "业务背景描述",           # 可选项
        "schemas": [                            # 嵌套对象数组
            {
                "name": "user_input",           # Schema中的必填项
                "type": "String"                # Schema中的必填项
            },
            {
                "name": "score",
                "type": "Float"
            }
        ]
    }
    
    # 2. 将字典转换为字符串,传给签名对象 r.body
    body = json.dumps(post_data)
    
    # 3. 后续执行签名 sig.Sign(r)

相关文档