词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
write_file 和 patch 所使用的写后 lint 检查。当 agent 编辑文件时,write_file 或 patch 时:{
"bytes_written": 42,
"dirs_created": false,
"lint": {"status": "ok", "output": ""},
"lsp_diagnostics": "LSP diagnostics introduced by this edit:\n<diagnostics file=\"/path/to/foo.py\">\nERROR [42:5] Cannot find name 'foo' [reportUndefinedVariable] (Pyright)\nERROR [50:1] Argument of type \"str\" is not assignable to \"int\" [reportArgumentType] (Pyright)\n</diagnostics>"
}lint 字段承载语法检查结果(通过 ast.parse、json.loads 等进行微秒级进程内解析);lsp_diagnostics 字段承载来自真实语言服务器的语义诊断。两个通道,独立信号——lint: ok 加上已填充的 lsp_diagnostics。| 语言 | 服务器 | 自动安装 |
|---|---|---|
| Python | pyright-langserver | npm |
| TypeScript / JavaScript / JSX / TSX | typescript-language-server | npm |
| Vue | @vue/language-server | npm |
| Svelte | svelte-language-server | npm |
| Astro | @astrojs/language-server | npm |
| Go | gopls | go install |
| Rust | rust-analyzer | 手动(rustup) |
| C / C++ | clangd | 手动(LLVM) |
| Bash / Zsh | bash-language-server | npm |
| YAML | yaml-language-server | npm |
| Lua | lua-language-server | 手动(GitHub releases) |
| PHP | intelephense | npm |
| OCaml | ocaml-lsp | 手动(opam) |
| Dockerfile | dockerfile-language-server-nodejs | npm |
| Terraform | terraform-ls | 手动 |
| Dart | dart language-server | 手动(dart sdk) |
| Haskell | haskell-language-server | 手动(ghcup) |
| Julia | julia + LanguageServer.jl | 手动 |
| Clojure | clojure-lsp | 手动 |
| Nix | nixd | 手动 |
| Zig | zls | 手动 |
| Gleam | gleam lsp | 手动(gleam install) |
| Elixir | elixir-ls | 手动 |
| Prisma | prisma language-server | 手动 |
| Kotlin | kotlin-language-server | 手动 |
| Java | jdtls | 手动 |
<HERMES_HOME>/lsp/bin/ 中的二进制文件。typescript-language-server,它要求 typescript SDK 可从同一 node_moduleshermes lsp install typescript 或首次使用时触发自动安装时,hermes lsp status # 服务状态 + 各服务器安装状态
hermes lsp list # 注册表,可选 --installed-only
hermes lsp install <id> # 主动安装单个服务器
hermes lsp install-all # 尝试安装所有已知安装方式的服务器
hermes lsp restart # 关闭正在运行的客户端
hermes lsp which <id> # 打印解析后的二进制路径hermes lsp status 是最佳起点——它显示哪些语言当前可获得语义诊断,disabled: true — 即使扩展名与文件匹配,也完全跳过该服务器。command: [bin, ...args] — 指定自定义二进制路径,绕过自动安装。env: {KEY: value} — 传递给启动进程的额外环境变量。initialization_options: {...} — 合并到 LSP initialize 握手时发送的initializationOptions 载荷中。具体内容因服务器而异,请参阅对应语言服务器的文档。install_strategy: auto 时,Hermes 将二进制文件安装到 <HERMES_HOME>/lsp/bin/。<HERMES_HOME>/lsp/node_modules/,bin 符号链接位于上一级目录。go install 安装,GOBIN 指向暂存目录。/usr/local/、~/.local/ 或 其他共享位置——暂存目录完全由.py 文件的项目中编辑 Python 文件wait_timeout 秒——pyright/tsserver 通常在数十毫秒内响应,rust-analyzer 在索引config.yaml 中设置 lsp.enabled: false 可禁用整个子系统。写后检查将回退至ast.parse,JSON 使用 json.loads 等),与早期版本hermes lsp status 显示某服务器为"missing"<HERMES_HOME>/lsp/bin/ 中。运行hermes lsp install <server_id> 尝试自动安装,或通过该语言的常规工具链手动安装。hermes lsp status 中出现 Backend warnings 部分bash-language-server,shellcheck。当 hermes lsp status 显示 Backend warnings 部分时,apt install shellcheck # Debian / Ubuntu
brew install shellcheck # macOS
scoop install shellcheck # Windows~/.hermes/logs/agent.log。~/.hermes/logs/agent.log 中的 [agent.lsp.client] 条目——语言服务器的hermes lsp restart 清除该集合;下次编辑时会重新启动。git init 以启用