Model Context Protocol Advanced Topics
← 所有课程
课程 03Model Context Protocol Advanced Topics

Log and progress notifications

摘要音频

本节课没有语音摘要。

学习笔记

📚 学习笔记:日志记录与进度通知 (Logging and Progress Notifications)

核心概念:

  • 目的:为长时间运行的工具调用(Tool Call)提供反馈,显著提升用户体验 (UX)。
  • 问题:当工具函数执行时间较长时,用户缺乏实时信息,可能误以为调用失败或卡住。

🛠️ 服务器端实现 (Server Side Implementation):

  • 上下文参数 (Context Argument):工具函数会自动接收一个 context 对象作为最后一个参数。
  • 核心方法:context 对象提供了两种主要方法:
  • info():用于记录日志信息 (Logging)。
  • report_progress():用于报告工具运行的进度 (Progress)。
  • 工作原理:调用这些方法时,系统会自动将消息发送回客户端。

🖥️ 客户端实现 (Client Side Implementation):

  • 回调函数 (Callbacks):客户端需要设置两个回调函数来接收来自服务器的更新:
  • 日志回调函数 (Logging Callback)。
  • 进度回调函数 (Progress Callback)。
  • 数据流:服务器 → 发送消息 → 客户端回调函数接收 → 开发者决定如何展示信息。

💡 开发者注意事项 (Developer Notes):

  • 展示方式:日志和进度的展示方式取决于应用类型(例如:命令行应用 (CLI) 可以直接打印;Web 应用需要更复杂的解决方案)。
  • 可选性:这些功能是用户体验的增强手段,开发者可以选择不向用户展示任何日志或进度信息。

Takeaways

  • 日志记录和进度通知的目的是为长时间运行的工具调用提供反馈,从而显著提升用户体验。
  • 服务器端工具函数通过接收一个 context 对象来获取反馈能力。
  • context 对象提供了两个核心方法:info() 用于记录日志,report_progress() 用于报告运行进度。
  • 客户端必须设置日志回调函数和进度回调函数来接收服务器发送的实时更新。
  • 这些功能是可选的,其最终的展示方式取决于应用的类型(例如命令行应用或Web应用)。
抽认卡 7 张卡片
问题
点击显示 · ←/→
答案
点击翻回
导出到 Anki (.tsv) ↓
知识检测 0 题

No quiz for this lesson yet.