环境
- hduhelp-cli 0.4.70(revision
d872171ea8808adfdc04cd6264c102ba440d3493,manifest 06fe166b77f674ac0eb7b74d0ec34f5afa31d63c9c78b447acd9e4f7dcb8a8f2)
- Linux x86_64,官方
install.sh 安装
hduhelp-cli doctor --json 全部 ok;PAT 含 academic:schedule:read
现象
academic schedule 在省略 --limit 时稳定失败:
$ time hduhelp-cli academic schedule --json --no-input --no-open
{"code":"INTERNAL","message":"context deadline exceeded","hint":"运行 hduhelp-cli doctor --json;如问题持续,请携带版本与 request_id 报告","retryable":false}
# exit 1,耗时 30.012s
对照实验
| 调用 |
结果 |
academic schedule --limit 5 |
立即成功,返回正常课表 |
academic schedule --limit 2 --timeout 1s |
1.006s 失败,说明 --timeout 本身生效 |
academic schedule --timeout 150s(无 --limit) |
仍在 30.012s 失败,报 context deadline exceeded (Client.Timeout or context cancellation while reading body) |
即:--timeout 能缩短超时,但无法把上限提到 30s 以上;不带 --limit 的全量请求必然超过 30s。
原因推测
help academic schedule 对 limit 的说明是:
--limit query integer/int32 单页最多返回条数,1-200。MCP 省略时默认 50;REST 旧客户端省略时保持兼容。
CLI 走 REST 语义,省略 --limit 时不下发分页参数,服务端返回整学期全量条目,超过约 30s 的客户端读取上限。
影响
hduhelp-academic skill 指引 agent「查询课表时选择本人学期课表或今明课表」。agent 按最自然的方式调用无参数课表会稳定失败,属于开箱即坏的主路径。
建议
- CLI 在 REST 模式省略
--limit 时也套用默认分页(如 50,与 MCP 一致);
- 或让
--timeout 成为真正的上限来源,允许长请求;
- 至少在
context deadline exceeded 的错误里提示「请加 --limit 分页」。
本地规避
调用课表时始终带 --limit(1-200,建议 50),并用 pagination.nextOffset 翻页。
环境
d872171ea8808adfdc04cd6264c102ba440d3493,manifest06fe166b77f674ac0eb7b74d0ec34f5afa31d63c9c78b447acd9e4f7dcb8a8f2)install.sh安装hduhelp-cli doctor --json全部 ok;PAT 含academic:schedule:read现象
academic schedule在省略--limit时稳定失败:对照实验
academic schedule --limit 5academic schedule --limit 2 --timeout 1s--timeout本身生效academic schedule --timeout 150s(无--limit)context deadline exceeded (Client.Timeout or context cancellation while reading body)即:
--timeout能缩短超时,但无法把上限提到 30s 以上;不带--limit的全量请求必然超过 30s。原因推测
help academic schedule对 limit 的说明是:CLI 走 REST 语义,省略
--limit时不下发分页参数,服务端返回整学期全量条目,超过约 30s 的客户端读取上限。影响
hduhelp-academicskill 指引 agent「查询课表时选择本人学期课表或今明课表」。agent 按最自然的方式调用无参数课表会稳定失败,属于开箱即坏的主路径。建议
--limit时也套用默认分页(如 50,与 MCP 一致);--timeout成为真正的上限来源,允许长请求;context deadline exceeded的错误里提示「请加--limit分页」。本地规避
调用课表时始终带
--limit(1-200,建议 50),并用pagination.nextOffset翻页。