附录D:错误代码速查

个人公众号

QwenPaw 的异常体系建立在 agentscope_runtime 引擎的基础异常类之上,通过错误代码(error code)标识不同类型的故障。


核心业务异常

定义在 src/qwenpaw/exceptions.py

错误代码异常类父类说明
PROVIDER_ERRORProviderErrorAgentRuntimeErrorExceptionProvider 通信或配置错误
MODEL_FORMATTER_ERRORModelFormatterErrorAgentRuntimeErrorException模型消息格式化失败
SYSTEM_COMMAND_ERRORSystemCommandExceptionAgentRuntimeErrorException系统命令执行失败
AGENT_STATE_ERRORAgentStateErrorAgentRuntimeErrorExceptionAgent 状态或会话错误
SKILLS_ERRORSkillsErrorAgentRuntimeErrorException技能管理错误
ChannelErrorExternalServiceException频道通信错误,附带 channelchannel_name 详情

LLM API 异常转换

convert_model_exception() 函数将第三方 LLM SDK 异常自动转换为标准异常。转换规则如下:

按 HTTP 状态码

状态码目标异常说明
401 / 403UnauthorizedModelAccessException认证失败或无权访问
429ModelQuotaExceededException请求配额超限(频率限制)

按错误消息关键词

关键词目标异常说明
unauthorized / authentication / api key / invalid key / forbiddenUnauthorizedModelAccessException认证相关问题
rate limit / quota / too many requestsModelQuotaExceededException配额/频率限制
timeout / timed out / deadline exceededModelTimeoutException请求超时
context / maximum context / context window / too many tokensModelContextLengthExceededException上下文长度超限

兜底

条件目标异常说明
模型相关但无精确匹配ModelExecutionException通用模型执行错误
非模型相关错误UnknownAgentException包装原始异常

常见故障排查

现象可能异常检查步骤
启动后 API 调用立即失败UnauthorizedModelAccessException1) qwenpaw doctor 检查 API Key 2) 检查环境变量 3) 检查 Provider 配额
长时间无响应后报错ModelTimeoutException1) 网络连通性 2) API 端点可达性 3) 增大超时配置
上下文过长时失败ModelContextLengthExceededException1) /compact 手动压缩记忆 2) 调整 MEMORY_COMPACT_RATIO
高并发场景失败ModelQuotaExceededException1) 降低 QWENPAW_LLM_MAX_CONCURRENT 2) 降低 QWENPAW_LLM_MAX_QPM
技能安装失败SkillsError1) 查看 skill_scanner 扫描报告 2) 检查 SKILL.md 格式
渠道收不到消息ChannelError1) qwenpaw channels status 2) Webhook URL 配置 3) 网络连通性

模块级异常

ACP 协议 (agents/acp/core.py)

异常类父类说明
ACPErrorsExceptionACP 异常基类
ACPConfigurationErrorACPErrorsACP 配置错误
ACPTransportErrorACPErrors传输层错误
ACPProtocolErrorACPErrors协议格式错误
ACPSessionErrorACPErrors会话管理错误

命令执行 (utils/command_runner.py)

异常类父类说明
CommandExecutionErrorRuntimeError命令执行失败
ProcessLaunchErrorRuntimeError进程启动失败

技能系统 (agents/skills_hub.py, agents/skills_manager.py)

异常类父类说明
SkillImportCancelledRuntimeError技能导入被取消
SkillConflictErrorRuntimeError技能名称冲突

技能安全扫描 (security/skill_scanner/)

异常类父类说明
SkillScanErrorException技能安全扫描检测到风险

备份系统 (backup/models.py)

异常类父类说明
BackupConflictErrorException备份版本冲突

QQ 频道 (app/channels/qq/channel.py)

异常类父类说明
QQApiErrorRuntimeErrorQQ API 调用错误

Telegram 频道 (app/channels/telegram/channel.py)

异常类父类说明
_FileTooLargeErrorException文件超过大小限制
_MediaFileUnavailableErrorException媒体文件不可用

Mission 模式 (agents/mission/mission_runner.py)

异常类父类说明
PrdValidationErrorValueError任务描述验证失败

守护进程 (app/runner/daemon_commands.py)

异常类父类说明
RestartInProgressErrorException重启已在进行中

配置验证错误

通过 agentscope_runtime.engine.schemas.exception.ConfigurationException 抛出,常见触发场景:

场景config_key说明
MCP stdio 客户端缺少 commandmcp.commandstdio 传输类型必须有 command
MCP 远程客户端缺少 urlmcp.urlstreamable_http/sse 传输类型必须有 url
LLM 退避参数不合理llm_backoffllm_backoff_cap 必须大于等于 llm_backoff_base

Agent ID 验证错误

validate_agent_id() 抛出的 ValueError

条件说明
长度 < 2Agent ID 至少 2 个字符
长度 > 64Agent ID 最多 64 个字符
包含非法字符仅允许字母、数字、连字符、下划线,不能以 -_ 开头/结尾
使用保留 IDdefault 为保留 ID,不可使用
ID 已存在同名 Agent 已注册