011、工具调用模块(二):工具注册、发现与调度策略
上周调试一个Agent任务流,半夜被报警叫醒——系统日志里刷满了“ToolNotFoundError”。查了半天发现,新上线的天气查询工具在某个服务节点上没注册成功,导致调度时随机命中该节点就崩。这个坑让我意识到,工具调用模块里,注册、发现、调度这三个环节但凡有一个没理顺,整个Agent系统就得瘫痪。
今天咱们就深挖这三个底层机制。很多框架把这层封装得太好,反而让开发者忽略了它们的重要性。
工具注册:不只是往列表里加一行
注册的本质是让系统知道某个工具的存在及其调用方式。常见的做法是在启动时加载工具类并存入全局字典。但这里有个细节:工具元信息的完整性决定后续调度能有多智能。
classToolRegistry:def__init__(self):# 核心注