第 8 章:响应的归途
Agent 生成回复后,文字如何一步步流回浏览器——Msg 对象到 SSE 事件流的序列化转换、FastAPI StreamingResponse 的逐字推送机制与连接管理。
Agent 生成回复后,文字如何一步步流回浏览器——Msg 对象到 SSE 事件流的序列化转换、FastAPI StreamingResponse 的逐字推送机制与连接管理。
LLM 返回工具调用指令后的完整解析与预处理流程——function call 块在流式响应中的识别与边界检测、工具名称的精确提取与查找匹配、JSON 参数的反序列化与 Zod 校验,以及工具调用执行前的上下文快照与状态备份策略。
解析AgentScope中Formatter的三层继承体系,从FormatterBase到TruncatedFormatterBase的Token截断,再到OpenAIChatFormatter的具体转换。讲解保护系统提示、工具调用与结果成对删除等截断规则,以及Formatter独立于Model适配多种API的设计。
LLM 生成工具调用指令后的完整执行流程——function call 的解析与参数提取、ToolGuard 三层安全检查、实际函数调用与返回值回传给 LLM 的完整闭环。
LLM 流式响应从网络字节到终端字符的完整旅程——SSE 事件流的逐块读取与缓冲策略、JSON 片段的增量解析算法、流式文本在终端上的逐字渲染实现,以及高频刷新场景下的性能调优与帧率控制机制。
探索Agent长期记忆与外部知识检索的实现。对比工作记忆的对话内局限,讲解LongTermMemoryBase的static_control与agent_control两种控制模式,梳理RAG知识库从文档分块、Embedding向量化到向量检索的全链路流程,阐明三种记忆层次如何协同增强Agent的上下文能力。
Agent 通过 Provider 抽象层调用大语言模型的完整链路——模型 ID 到 Provider 的映射、请求包装与格式转换、限流重试策略、流式响应的逐字输出原理。
封装完成的消息对象如何通过 HTTP 请求发送给大语言模型——请求体的 JSON 序列化、API 认证头的构造与注入、流式请求的特殊 Headers 设置,以及网络层的连接超时、DNS 解析失败等异常情况的处理与重试逻辑。
打开AgentScope工作记忆的内部实现,解析MemoryBase抽象基类定义的add、get_memory、delete接口,以及InMemoryMemory如何用列表元组存储消息与标记、通过深拷贝隔离快照并去重。讲解mark标记过滤与排除机制、压缩摘要前置替换策略,展示为模型推理提供有序可筛选对话上下文的设计。
ReAct 推理-行动循环的完整源码实现——Agent 如何交替进行思考与行动,每轮迭代中发生了什么,观察执行结果后如何调整下一步策略,以及循环的终止条件与异常退出机制。