← 全部内容
2026-05-12 产品更新 关注

Hermes 开始让文件编辑拿到真实 language-server 反馈,别等坏代码堆起来

Hermes PR #24168 在 write_file 和 patch 背后加入 LSP layer,让 Agent 能看到自己这次编辑引入的 semantic diagnostics:type errors、undefined names、missing imports,以及 pyright、gopls、rust-analyzer、typescript-language-server、clangd、bash-language-server、Vue、Svelte、Astro、Lua、PHP、OCaml、Dockerfile、Terraform、Dart、Haskell、Julia、Clojure、Nix、Zig、Gleam、Elixir、Prisma、Kotlin、Java 等 language servers 给出的类似失败。设计上会先抓 pre-write baseline,再过滤掉旧问题,避免模型被项目原有技术债淹没。它还只在 git workspace 内启用,避免 Telegram / Discord 里以 home directory 为 cwd 的闲聊意外唤起 language servers。

影响观察中 来源2 对象developer · team · operator
为什么重要

syntax checks 只能抓最便宜的失败。Agent 写代码更贵的错误往往是 semantic:少 import、type 错、symbol 过期,或 framework 文件能 parse 但下一次 build 会炸。把这些错误提前到 edit time,可以缩短 Agent action 与修正之间的回路。真正的 caveat 是运维层面:language servers 比 parser 更有状态、更重,所以 install policy、workspace detection 和 noise filtering 跟功能本身一样重要。

证据
  • PR #24168 新增 agent/lsp modules,覆盖 protocol framing、async client management、server registry、install dispatch、formatting 和 CLI access
  • write_file 与 patch_replace 在 in-process syntax checks 之后增加 LSP semantic tier,并通过 pre-write baseline 只展示本次编辑引入的问题
  • PR 列出约 26 个 language servers,覆盖 Python、Go、Rust、TypeScript、C/C++、shell、web frameworks、infra files、JVM 与其他语言
  • 该功能以 git workspace detection 为门槛,非 repository gateway chats 默认保持 dormant
  • PR 报告 49/49 LSP tests 与 229/229 combined tools plus LSP tests 通过
风险提示
  • 这仍是 open PR,不是 tagged Hermes release
  • language-server installation 可能较慢、依赖网络,或不适合 locked-down production hosts
  • pre-existing-error filtering 在 monorepos 和 generated-code folders 上仍需验证,避免 diagnostics 噪音过大
  • semantic diagnostics 能帮助模型修代码,但不能替代项目自己的 build、tests 和 review