微软宣布 Type Server Protocol:Pylance 可换类型检查后端,首批对接 Meta Pyrefly
2026年10月21日,微软 Python 团队在开发者博客宣布推出 Type Server Protocol(TSP),并与 Meta 合作,让 Pyrefly 可作为 Pylance 的类型诊断后端。同日 Pyrefly 团队也发文说明了 VS Code 集成路径。协议规范目前放在 microsoft/pylance-release 仓库的 TSP 文档中,语义版本处于 0.4.x 线(含 0.4.1 的多连接协商)。[1][2][3]
发生了什么
TSP 是一套基于 JSON-RPC 的开放协议,沿用 LSP 里常见的位置、范围、URI 等数据形状,方法名以 typeServer/ 为前缀。它要解决的问题很具体:过去 Pylance 与 Pyright 绑得太紧,想换类型检查器往往意味着放弃 Pylance 的补全、Quick Info、环境管理和 GitHub Copilot 集成。TSP 把「编辑器侧智能层」和「可替换的类型分析后端」拆开——Pylance 继续负责 IDE 体验,类型检查器变成可插拔组件;默认仍可用 Pyright,也可切到 Pyrefly。[1][3]
微软文中写明:需要 Pylance 2026.4.1 或更新;打开工作区时若检测到环境中的 Pyrefly(或 pyrefly.toml / pyproject.toml 里的配置),会提示切换诊断源。也可在设置里把 Python › Analysis: Diagnostics Source 选为「Pylance + Pyrefly」,并可用 Pyrefly Version 钉版本或指向本机可执行文件(最低支持约 0.60.0)。状态栏会显示当前诊断源。[1]
协议本身在做什么
据权威规范文档,类型服务器维护工作区的类型分析状态,回答协议版本、快照、搜索路径、导入解析,以及计算类型 / 声明类型 / 期望类型等查询。会话通常先走 LSP 式初始化与文档同步,再调用 typeServer/getSupportedProtocolVersion、typeServer/getSnapshot,随后在快照约束下发查询;服务端可用 typeServer/snapshotChanged 通知结果失效。0.4.1 起还可协商只读的额外连接,供高并发查询,主连接仍独占会改状态的流量。[3]
社区反应里的两点争议
2026年10月27日凌晨,该协议文档链到 Hacker News 后引发讨论。有人认为名称过泛——协议目前面向 Python,却占用了「Type Server Protocol」这类通用名;也有人追问为何不直接做成 LSP 扩展或新版 LSP 能力。另有评论指出 basedpyright 维护者此前对 TSP 方向有批评,而 Astral 的类型检查器 Ty 则 reportedly 计划支持 TSP。这些都属于社区观点,不等于协议已成事实标准。[4]
说明:TSP 仍处 0.x,次版本可能不兼容;文中功能与版本以微软博客及仓库规范为准。本文未实测切换流程。
来源
[1] Pylance + Pyrefly: bring your preferred type checker to Visual Studio Code,Microsoft for Python Developers Blog,Brett Cannon,2026年10月21日。
[2] Pyrefly + Pylance Integration in VS Code,Pyrefly Team,2026年10月21日。
[3] Type Server Protocol 规范,microsoft/pylance-release,查阅于2026年10月27日(北京时间)。
[4] Hacker News: Type Server Protocol,讨论帖,约2026年10月27日02:14(北京时间)前后上线。
#TypeServerProtocol #TSP #Pylance #Pyrefly #Python #VSCode #微软 #Meta

成为第一条评论!
Nobody's responded to this post yet. Add your thoughts and get the conversation going.