第 13 章:模块系统——文件的命名与导入
本章讲解 AgentScope 的模块组织规则:下划线前缀标识内部实现,__init__.py 充当公共 API 门面,三层导入路径从顶层包到子包再到公共类,以及 agentscope.init() 的模块发现与自动注册机制。
本章讲解 AgentScope 的模块组织规则:下划线前缀标识内部实现,__init__.py 充当公共 API 门面,三层导入路径从顶层包到子包再到公共类,以及 agentscope.init() 的模块发现与自动注册机制。
卷一收官之作,全景回顾从消息诞生到 ReAct 循环的完整请求链路,梳理八大核心模块的职责边界,辨析易混淆概念,并预告卷二将从现象深入到架构设计原理。
本章深入解析 ReActAgent.reply() 的完整循环机制,涵盖推理、行动与总结三个阶段,介绍记忆压缩如何防止上下文溢出,以及结构化输出、并行工具调用和 PlanNotebook 计划子系统的实现细节。
追踪模型返回工具调用请求后的执行全过程,解析Toolkit如何通过显式注册定位对应Python函数、合并预设参数执行并将结果封装为ToolResponse。详细讲解工具注册时自动生成JSON Schema的机制、工具分组的动态激活与停用策略,以及基于装饰器的中间件洋葱模型如何在调用前后层层插入自定义逻辑。
深入AgentScope模型适配层源码,剖析ChatModelBase统一调用接口与流式、非流式两种响应解析流程。详细解读ChatResponse中Text、ToolUse、Thinking等内容块类型,展示结构化输出如何借助工具调用伪装实现自动回退,涵盖流式增量累积与推理模型思考过程暴露机制。
解析AgentScope中Formatter的三层继承体系,从FormatterBase到TruncatedFormatterBase的Token截断,再到OpenAIChatFormatter的具体转换。讲解保护系统提示、工具调用与结果成对删除等截断规则,以及Formatter独立于Model适配多种API的设计。
探索Agent长期记忆与外部知识检索的实现。对比工作记忆的对话内局限,讲解LongTermMemoryBase的static_control与agent_control两种控制模式,梳理RAG知识库从文档分块、Embedding向量化到向量检索的全链路流程,阐明三种记忆层次如何协同增强Agent的上下文能力。
打开AgentScope工作记忆的内部实现,解析MemoryBase抽象基类定义的add、get_memory、delete接口,以及InMemoryMemory如何用列表元组存储消息与标记、通过深拷贝隔离快照并去重。讲解mark标记过滤与排除机制、压缩摘要前置替换策略,展示为模型推理提供有序可筛选对话上下文的设计。
追踪消息进入Agent后的处理流程,解析__call__方法如何生成回复ID并调用被Hook包装的reply方法。深入讲解元类_AgentMeta自动为关键方法套上Hook包装的机制,剖析实例级与类级Hook注册、防重入守卫设计,以及MsgHub分组广播机制,揭示AgentScope可扩展通信架构的根基。
深入剖析AgentScope中Msg消息对象的创建与设计。Msg作为纯数据容器支持字符串与ContentBlock列表两种形态,通过TypedDict定义七种内容块类型兼顾灵活性与类型安全,选择TypedDict而非dataclass使消息天然适配JSON序列化,同时介绍DictMixin字典式访问与序列化等关键细节。