快乐冲浪与生活

多体验、多体会、多体悟

0%

FastMCP: 3.4.4

FastMCP 的状态不是靠"把上一步结果塞回参数"来维持的,而是服务端按会话持有 state。

基础示例

先创建一个的 MCP Server 并启动:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# server.py
mcp = FastMCP("上下文状态管理")


@mcp.tool(
    title="FastMCP 介绍",
    description="介绍 FastMCP 是什么,以及如何使用 FastMCP 进行上下文状态管理。",
)
async def intro():
    return "FastMCP 是一个用于构建多轮对话的工具,支持上下文状态管理。"
1
2
3
4
5
6
7
$ fastmcp run --no-banner --transport streamable-http server.py
[07/21/26 19:02:21] INFO     Starting MCP server '上下文状态管理' with transport 'streamable-http' on                transport.py:361
                             http://127.0.0.1:8000/mcp                                                                               
INFO:     Started server process [29291]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
  • --no-banner 终端不显示 banner
  • --transport streamable-http HTTP 长连接双向流式、自动携带 SessionID,完整支持 Session State 会话持久化

获取工具信息

获取 MCP Server 工具信息的方式有两种:

本文是 T 系列的第 03 篇,主要介绍 MCP 如何实现持久化记忆。

T 系列为技术文章翻译系列,加以本人的一些拙见,如有雷同,实属正常,如有不同,欢迎交流。

尽管 LLM 在处理和生成文本方面非常强大,但它们本质上是无状态的每次 API 调用都被视为一个全新的独立请求,无法保留之前交互的任何记忆。要使 Chatbot 或虚拟助手真正有用,它必须具备记忆能力,能够记住用户的姓名、偏好或多轮对话的上下文。传统方法试图通过将整个聊天历史打包进 LLM 的提示中来解决这一问题,但这种方法效率低、成本高且容易出错。本文探讨了一种更稳健且可扩展的解决方案:利用模型上下文协议(MCP)将记忆实现为外部、可管理的工具。这种方法使 Agent 即使保持无状态,而有状态的工具则提供持久的记忆功能。

本文是 T 系列的第 01 篇,主要介绍 Chatbot UI 如何与 MCP Server 进行通信。

T 系列为技术文章翻译系列,加以本人的一些拙见,如有雷同,实属正常,如有不同,欢迎交流。

Chatbot 的用户界面(UI)正从简单的文本显示演变为一个动态客户端,能够与复杂的后端系统进行通信,而该后端通常由模型上下文协议(MCP)Agent 驱动。本文探讨了基于工具的聊天界面架构,重点分析前端与后端之间的通信流程。我们将逐步介绍用户请求的路由、调用外部工具以及实时流式响应的全过程。目标是清晰理解支持这些复杂交互的协议和设计模式,从而超越基础的请求-响应模型,构建出更稳健、可扩展且更易用的系统。