第 22 章:造一个新 Tool——数据库查询工具
本章从零构建一个 SQLite 数据库查询工具,分别实现同步返回完整结果的版本和基于 AsyncGenerator 逐行输出的流式版本。工具注册时框架自动从函数签名与 docstring 生成 JSON Schema,通过 preset_kwargs 机制隐藏数据库路径等敏感配置。最后演示工具集成到 ReActAgent 的完整流程,并附带缓存中间件优化练习。
本章从零构建一个 SQLite 数据库查询工具,分别实现同步返回完整结果的版本和基于 AsyncGenerator 逐行输出的流式版本。工具注册时框架自动从函数签名与 docstring 生成 JSON Schema,通过 preset_kwargs 机制隐藏数据库路径等敏感配置。最后演示工具集成到 ReActAgent 的完整流程,并附带缓存中间件优化练习。
三层记忆架构的完整实现——InMemoryMemory 短期记忆的读写、SafeJSONSession 的原子化磁盘持久写入、MemoryCompactionHook 的自动压缩与 ReMeLight 语义搜索召回。
安全门卫系统的完整架构设计与实现——权限规则的树形层次结构与继承规则、危险操作指令的精确匹配与模糊检测双模算法、用户确认交互的终端 UI 渲染流程,以及安全策略如何通过配置文件实现全局、项目、用户三个层级的灵活定制与动态扩展。
本章手把手搭建 AgentScope 二次开发环境,涵盖仓库克隆与开发模式安装、pre-commit 钩子链配置、测试目录结构与异步测试模式解读,以及代码规范速查。通过三个无需 API Key 的验证步骤确认环境就绪,为后续自定义 Tool、Memory、Agent 等扩展开发提供可靠的工作台基础。
配置系统的多层级结构与优先级规则——config.json 与 agent.json 的职责分工、环境变量 QWENPAW_* 的覆盖机制、旧版本配置的自动检测与迁移策略。
工具执行引擎的内部调度与并发控制——工具调用请求的优先级队列管理、多工具并发执行的限制与编排策略、执行超时的检测与强制终止、失败重试的退避算法与最大次数控制,以及引擎如何统一调度 Shell、文件、网络等不同类型工具的异构执行。
本章讲解 AgentScope 基于 OpenTelemetry 的全链路追踪系统,涵盖五种专用追踪装饰器的层级设计与零开销开关机制,并回顾 StateModule 持久化如何支持断点续跑与状态回放,解决长时间运行 Agent 的排障难题。
从写完代码到合并 PR 的完整质量门禁流程——pre-commit 自动检查、单元测试与集成测试的编写规范、CI 流水线的配置与运行、代码审查的要点与合并标准。
Claude Code 工具的完整类型定义与元数据体系——Tool 接口的设计哲学与可扩展性考量、Zod Schema 驱动的工具描述与参数验证规则,以及工具元数据如何序列化到系统提示词供 LLM 理解与选择调用。
解析 MsgHub 实现的发布-订阅广播机制:AgentBase 维护订阅者字典,__call__ 在回复后自动广播并移除思考块防止信息泄漏,MsgHub 作为异步上下文管理器统一注册与清理订阅关系,实现多 Agent 间的松耦合通信。