开发工具
Helix 内置 12 个 MCP server,向你的 Agent 暴露大约 70 个工具。这些工具覆盖代码智能、文件管理、终端访问、Web 交互、远程操作等。每个工具都通过 Model Context Protocol 运行,使 Agent 可以以统一方式发现、调用和组合它们。
本页解释每个工具组的作用、工具如何在各 Agent 层之间分配,以及如何用你自己的 MCP server 扩展工具集。
工具如何与 Agent 关联
Helix 中所有工具都以 MCP server 的形式暴露。当一个会话启动时,系统会根据 Workspace 配置与 Agent 层级组装工具集:
- Manager Agent —— 只看到 Longterm Agent 工具。它的职责是协调,而不是执行。
- Execution Agent —— 可访问除 Longterm Agent 之外的所有工具。真正的工作在这里发生。
- Sub Agents —— 继承父会话的工具,但去掉 SubAgent server 本身(防止递归创建)。
这种分层过滤让每个 Agent 专注于自身角色,同时防止意外的工具循环。
代码智能 —— Serena LSP
28 个工具 · 全局共享服务
Serena 是 Helix 核心的代码智能引擎。它接入 Go、TypeScript、Python、Rust、Dart、Java 与 C/C++ 的 Language Server Protocol 服务,让 Agent 拥有人类在 IDE 中获得的同等深度的代码理解能力。
符号分析
| 工具 | 作用 |
|---|---|
activate_project | 打开一个项目并启动其 language server |
list_projects | 显示所有活跃项目及其 LSP 状态 |
get_symbols_overview | 列出文件中所有的类、函数与变量 |
find_symbol | 在项目中按名称搜索符号 |
go_to_definition | 跳转到符号的定义处 |
find_references | 查找符号被使用的所有位置 |
get_hover_info | 获取符号的类型信息与文档 |
rename_symbol | 在整个项目中安全地重命名符号 |
文件操作
| 工具 | 作用 |
|---|---|
read-file | 读取文件内容,可指定行范围 |
write_file | 创建或覆盖一个文件 |
list_dir | 列出目录内容,可选递归 |
find_file | 按通配符模式查找文件 |
search_pattern | 跨文件搜索正则模式 |
replace_content | 用字面匹配或正则替换文本 |
delete_lines | 删除文件中的特定行 |
replace_lines | 用新内容替换特定行 |
insert_at_line | 在指定行号插入内容 |
符号编辑
| 工具 | 作用 |
|---|---|
replace_symbol_body | 替换整个函数或类的定义 |
insert_after_symbol | 在符号之后立即插入代码 |
insert_before_symbol | 在符号之前立即插入代码 |
工作流引导
| 工具 | 作用 |
|---|---|
think_about_collected_information | 反思已收集的信息是否足够 |
think_about_task_adherence | 检查 Agent 是否仍在正确轨道上 |
think_about_whether_you_are_done | 验证任务是否真的完成 |
summarize_changes | 生成所有代码改动的摘要 |
start_code_review | 启动自动化代码审查循环 |
switch_modes | 在 editing、planning 与 interactive 模式间切换 |
prepare_for_new_conversation | 为新会话重置上下文 |
initial_instructions | 加载 Serena 操作手册 |
正是这些工作流工具让 Serena 不只是一个代码搜索引擎。它们引导 Agent 走过一个有纪律的流程:收集信息、确认方向、执行变更、复核结果、最终汇总。这种结构正是 Helix 能在 50 步任务中保持连贯性的原因。
Serena 会通过 go.mod、tsconfig.json、pyproject.toml、Cargo.toml 等标识文件自动识别项目语言。多数情况下无需手动配置。
Shell 与终端
Shell 执行
1 个工具 · 全局共享服务
| 工具 | 作用 |
|---|---|
execute_shell | 运行 shell 命令并返回输出 |
直接的命令执行,可配置超时与工作目录。Agent 通过它运行构建、测试、linter、包管理器等任意 CLI 工具。
Tmux 终端
6 个工具 · Workspace 级服务
| 工具 | 作用 |
|---|---|
create_window | 创建一个新的终端窗口 |
close_window | 关闭一个终端窗口 |
execute_command | 在指定窗口中运行命令 |
read_output | 读取窗口当前的输出 |
send_keys | 向窗口发送按键输入 |
kill_process | 终止窗口中正在运行的进程 |
Tmux 让 Agent 拥有持久化的终端会话。与每次运行一条命令并返回的 execute_shell 不同,Tmux 窗口保持打开。这对以下场景至关重要:
- 长时间运行的进程,如开发服务器、watch 模式或数据库进程
- 交互式调试,Agent 需要多步发送输入并读取输出
- 并行终端工作,不同窗口处理不同事项
在 UI 中,每个 Tmux 窗口显示为一个独立的终端 tab。你可以实时观察 Agent 在终端中的工作。
Web 与浏览器
网页抓取 —— Snag
4 个工具 · 全局共享服务
| 工具 | 作用 |
|---|---|
fetch_url | 抓取一个 URL,可选 JavaScript 渲染 |
fetch_tab | 从已经打开的浏览器 tab 中获取内容 |
list_tabs | 列出所有打开的浏览器 tab |
screenshot_url | 对一个网页截图 |
Snag 负责网页内容获取。它可以抓取静态页面,通过真实浏览器渲染重 JavaScript 站点,并从你已经打开的 tab 中获取内容(适合从已登录会话中抓取文档或工单详情)。
Chrome DevTools
约 10 个工具 · 外部 Stdio 服务
| 工具 | 作用 |
|---|---|
navigate_page | 跳转到一个 URL |
new_page | 打开一个新的浏览器页面 |
click | 点击页面元素 |
fill | 填写表单字段 |
take_screenshot | 截图 |
take_snapshot | 捕获 DOM 快照 |
evaluate_script | 在页面上下文中运行 JavaScript |
list_network_requests | 列出捕获到的网络请求 |
performance_start_trace | 开始一次性能 trace |
performance_stop_trace | 停止并获取性能 trace |
Chrome DevTools 让 Agent 拥有完整的浏览器自动化能力。这对测试 Web UI、调试前端问题、填写表单与验证视觉输出非常强大。Agent 可以导航页面、与元素交互、运行脚本、捕获截图——这正是手动浏览器测试中会用到的同一套能力。
远程操作 —— SSH
6 个工具 · 全局共享服务
| 工具 | 作用 |
|---|---|
remote_connect | 用密钥或密码注册一个 SSH 连接 |
remote_disconnect | 关闭并移除一个连接 |
remote_list | 列出所有已注册连接及其状态 |
remote_shell | 在远程服务器上执行 shell 命令 |
remote_upload | 通过 SFTP 上传本地文件或目录到远程服务器 |
remote_download | 通过 SFTP 将远程文件下载到本地路径 |
远程 SSH 让 Agent 可以在远程服务器上工作,而无需让你在那台机器上运行 Helix。Agent 可以连接到 staging 环境、生产服务器或云实例,然后执行命令并传输文件。连接按名称注册,整个会话可复用。
典型使用场景:
- 在 staging 服务器上部署并验证改动
- 从远程环境拉取日志或配置
- 上传构建产物或配置文件
- 调试只在特定服务器上重现的问题
Agent 协作
Sub Agent
2 个工具 · Workspace 级服务
| 工具 | 作用 |
|---|---|
run_subagent | 启动一个独立的 sub agent 并发执行任务 |
create_worktree_binding | 创建 Git worktree 绑定,用于隔离的代码改动 |
Sub agent 是 Helix 实现并行工作的方式。Execution Agent 可以在一条消息中创建多个 sub agent,它们以独立的上下文并发运行。每个 sub agent 继承父级的工具(不包括 SubAgent server 本身),完成后返回一个结果摘要。
create_worktree_binding 与 sub agent 协同工作于代码修改任务。它创建一个隔离的 Git worktree,让 sub agent 可以在独立分支上做改动,不会干扰主工作树或其他 sub agent。任务完成后,改动会自动合并回来。
Longterm Agent
4 个工具 · 全局共享服务(仅限 Manager 层)
| 工具 | 作用 |
|---|---|
longterm_chat | 向 Execution Agent 发送一次对话或创建新会话 |
longterm_history | 获取对话历史,详细程度可配置 |
longterm_history_item | 通过 ID 获取特定的历史条目 |
longterm_check_id | 检查会话 ID 是否仍然有效 |
Longterm Agent 是 Manager 层与 Execution 层之间的桥梁。Manager 用它来委派工作、检查进度并获取结果。这种分离让 Manager 能保持任务的高层视图,而 Execution Agent 处理细节。
上下文与缓存
1 个工具 · Workspace 级服务
| 工具 | 作用 |
|---|---|
recall_cached_content | 通过 SHA256 哈希取回缓存的工具调用结果 |
当工具输出很大时(长文件内容、大型搜索结果、冗长的命令输出),Helix 会缓存它们并在对话中插入一个紧凑的引用。对话消息中的 [CACHED] 标记包含一个哈希,Agent 在需要时可以用它召回完整内容。
这一机制是 Helix 让长会话保持可用的关键。系统不会让重复的大型输出灌满上下文窗口,而是只存储一次,让 Agent 在需要时按需取回。结合对话压缩,会话可以运行数小时而不发生上下文崩塌。
端口转发
3 个工具 · Workspace 级服务(仅限容器环境)
| 工具 | 作用 |
|---|---|
expose_port | 通过 HTTP 反向代理或 TCP 隧道暴露容器端口 |
list_ports | 列出所有活跃的端口转发规则 |
close_port | 关闭一条端口转发规则 |
当 Helix 运行在容器环境中时,端口转发可用。它让 Agent 可以将容器内运行的服务(如开发服务器、数据库、API 端点)暴露到外部,以便从外部访问。这对于在基于容器的开发中测试 Web 应用或 API 至关重要。
添加自定义 MCP Server
除了 12 个内置 server 之外,你还可以添加任意兼容 MCP 的 server 来扩展 Helix 的能力。自定义 server 通过设置 UI 管理,支持两种传输模式。
HTTP(StreamableHTTP)
适用于以 HTTP 服务方式运行的 MCP server:
{
"name": "my-database-tools",
"url": "http://localhost:3001/mcp",
"enabled": true
}
Stdio
适用于以本地进程方式运行的 MCP server:
{
"name": "my-custom-tools",
"command": "npx",
"args": ["-y", "my-mcp-server@latest"],
"env": {
"API_KEY": "your-key"
},
"enabled": true
}
自定义 server 配置存储在 global_mcp_servers.json 中,对所有 Workspace 可用。新会话会自动包含全局启用的 server。你也可以按会话管理哪些 server 处于活跃状态。
常见的扩展方向:
- 数据库工具 —— 直接在 Agent 对话中查询和管理数据库
- 云厂商工具 —— 与 AWS、GCP 或 Azure 资源交互
- 工单系统工具 —— 在 Jira、Linear 或 GitHub Issues 中创建和管理工单
- 监控工具 —— 从 Datadog、Grafana 或类似平台拉取指标与告警
- 自定义内部工具 —— 把团队的内部 API 与工作流暴露给 Agent
MCP 生态正在快速发展。你可以在 MCP servers directory 查找社区维护的 server 并加入 Helix。
各 Agent 层的工具访问权限
并不是所有工具对每个 Agent 都可用。下面是完整的访问矩阵:
| Tool Server | Manager | Execution Agent | Sub Agent |
|---|---|---|---|
| Longterm Agent | ✅ | — | — |
| Serena LSP | — | ✅ | ✅ |
| Shell | — | ✅ | ✅ |
| Tmux Terminal | — | ✅ | ✅ |
| Snag (Web) | — | ✅ | ✅ |
| Chrome DevTools | — | ✅ | ✅ |
| Remote SSH | — | ✅ | ✅ |
| Skills | — | ✅ | ✅ |
| Context Cache | — | ✅ | ✅ |
| Port Forward | — | ✅ | ✅ |
| SubAgent | — | ✅ | — |
| Custom MCP Servers | — | ✅ | ✅ |
关键规则:
- Manager 仅有
longterm_chat等相关工具,所有事情都通过 Execution Agent 委派。 - Execution Agent 拥有完整工具集(除 Longterm Agent 外的全部)。
- Sub Agents 继承 Execution Agent 的工具,但不能再创建 sub agent,也不能创建 worktree 绑定(防止递归循环)。
- 自定义 MCP server 与内置 Workspace 工具遵循相同的模式。
接下来
- 工作流与扩展 —— Git worktree 工作流、Skills 体系、Agent Profile,以及如何在 Helix 工具基础上构建扩展
- Serena LSP 配置 —— Serena Language Server 集成的详细配置指南
- 多 Agent 架构 —— Manager、Execution、Sub Agent 如何协调工作