Skip to main content

unit-test

心智模型

单元测试通过用确定性假对象替换 LLM 和持久化层,将 Agent 中可预测的小块逻辑隔离出来进行验证。GenericFakeChatModel 按序列返回预设的响应(文本、工具调用或错误),InMemorySaver 则在内存中模拟跨回合的状态持久化。这使得测试快速、免费、可重复,无需 API 密钥。

二级标题及内容

  • 【模拟聊天模型】Mock chat model GenericFakeChatModel 接收一个响应迭代器,按调用顺序依次返回预设的 AIMessage(支持文本和工具调用),同时兼容常规和流式调用。

  • 【内存检查点】InMemorySaver checkpointer InMemorySaver 用于在测试中启用持久化,可模拟多轮对话以测试依赖于历史状态的行为(如记住用户之前提供的信息)。

最佳实践

  • 用迭代器精确控制响应序列:为每次模型调用预设好确切的返回内容,覆盖正常、工具调用和错误等不同路径。
  • 用相同 thread_id 模拟多轮对话:结合 InMemorySaver,使用相同的 thread_id 进行多次调用,验证 Agent 是否能正确利用历史上下文。
  • 优先覆盖确定性逻辑:用单元测试覆盖工具函数、中间件逻辑、条件分支等不依赖 LLM 判断力的部分,集成测试再覆盖整体行为。