第 06 章:工具的注册与发现
Claude Code 工具系统如何实现注册与自动发现——内置工具的声明方式与分类体系、工具元数据的数据结构设计、工具注册表的初始化与热更新流程,以及 LLM 如何通过系统提示词获知当前可用的全部工具列表及其用法。
Claude Code 工具系统如何实现注册与自动发现——内置工具的声明方式与分类体系、工具元数据的数据结构设计、工具注册表的初始化与热更新流程,以及 LLM 如何通过系统提示词获知当前可用的全部工具列表及其用法。
追踪消息进入Agent后的处理流程,解析__call__方法如何生成回复ID并调用被Hook包装的reply方法。深入讲解元类_AgentMeta自动为关键方法套上Hook包装的机制,剖析实例级与类级Hook注册、防重入守卫设计,以及MsgHub分组广播机制,揭示AgentScope可扩展通信架构的根基。
AGENTS.md、SOUL.md、PROFILE.md 三个 Markdown 文件如何被读取、处理、拼装成完整的系统提示词,决定 Agent 的身份认知、行为边界与对话风格。
用户原始输入如何被封装成结构化的内部消息对象——消息类型的完整 TypeScript 接口定义、各字段的数据来源与含义、消息的序列化与反序列化过程,理解消息作为统一载体在系统各层间传递与转换的完整机制。
深入剖析AgentScope中Msg消息对象的创建与设计。Msg作为纯数据容器支持字符串与ContentBlock列表两种形态,通过TypedDict定义七种内容块类型兼顾灵活性与类型安全,选择TypedDict而非dataclass使消息天然适配JSON序列化,同时介绍DictMixin字典式访问与序列化等关键细节。
QwenPawAgent 对象从无到有的完整创建过程——Mixin 继承链的组装顺序与 MRO 解析、工厂模式的运用、18 种内置工具的自动注册以及 Agent 核心能力的注入机制。
用户按下回车键后 Claude Code 底层发生了什么——深入追踪输入事件从终端标准输入到消息处理管线的完整代码路径,理解初始入口的函数调用链、事件分发机制以及输入预处理各阶段的责任分工。
聚焦AgentScope框架初始化流程,从async/await异步编程基础讲起,逐步解析agentscope.init()源码实现。揭示模块导入时配置已生成默认值、init()按需覆盖参数的机制,重点剖析ContextVar上下文隔离设计如何确保并发场景下各Agent的全局配置互不干扰。
请求穿越 Channel 适配层到达 Runner 调度器的完整路径——深入 Agent 工作空间的发现与匹配逻辑,理解命令分发、会话持久化与 Agent 生命周期管理的全部细节。
搭建 Claude Code 源码阅读与调试环境——克隆仓库、安装 Node.js 依赖、配置 VS Code 与 TypeScript 语言服务、理解项目的 monorepo 结构,为接下来的逐行深度追踪准备好所有必要的工具和调试手段。