第 08 章测验

对应章节:工具系统工程化

共 8 题,答对率 ≥ 80% 即通过。请完成全部题目后点击「提交」。

Q1工具从 1 个长到 50 个时,if/elif 分发(如 `if (name === 'get_time') ... else if (name === 'add') ...`)最核心的问题是什么?
Q2注册表(name 到 spec 加实现的映射)让 Agent 循环「不认识任何具体工具」,这句话的含义是?
Q3手写 JSON Schema 发给模型,最阴险的故障是?
Q4为什么 smolagents(Python)的 @tool 装饰器能直接读函数类型注解生成 schema,而 TS 不行?
Q5代码阅读——执行器用 try/catch 包住工具调用,成功返回 {ok:true, result},工具抛错则返回 {ok:false, error}。现在工具 add 的实现抛了 TypeError,执行器返回什么?
Q6代码阅读——模型第一次调 add('abc', 2),工具返回一条错误字符串;第二次调 add(2, 3),工具返回结果。为什么第一次失败后循环没有中断、模型还能据此纠正?
Q7工具失败时,错误字符串里通常应该包含哪三样信息?
Q8内置工具集的「可用性过滤」(如 Hermes 的 check_fn)指的是?