Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>ACE Context EngineNew to Visual Studio Code? Get it now.
ACE Context Engine

ACE Context Engine

愿天知人意

| (0) | Free
ACE - 为 CLI Coding Agent 提供 IDE 感知能力(上下文采集与推送)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ACE Context Engine — VS Code 扩展

为 CLI Coding Agent(Claude Code / Codex / Gemini / OpenCode / Kimi / Qwen / ZCode / Grok / Qoder / Reasonix 等)提供 IDE 上下文感知能力(通过 MCP 协议)。本扩展是 ACE 的 VS Code 端采集器。

扩展采集当前 IDE 状态(当前文件、光标、选中代码、诊断、Git 状态、最近修改等),经本地 daemon 以 MCP 提供给各 Coding Agent。Agent 在合适场景主动调用 ACE 工具,拿到真实编辑状态,不再凭空猜测"你在看什么"。

功能特性

  • IDE 上下文采集:当前文件 / 光标 / 选中代码 / 打开的标签页 / 工作区 / 错误诊断 / Git 状态 / 最近修改 / 符号结构
  • 双向通道(只读查询):Agent 不依赖光标、按符号名跨文件查询——13 个 method(定义 / 引用 / 悬停 / 实现 / 签名 / 调用层级 / 类型层级 / 符号搜索 / IDE 导航 / Code Action 建议),见「双向通道」一节
  • 自动拉起 daemon:扩展激活即拉起本地 daemon(HTTP :8787),崩溃自动重启(指数退避),零手动操作
  • 多 Agent 共享:多个 Coding Agent 连同一 daemon,上下文单一权威;多项目按 projectRoot / select_project 隔离
  • 一键接入所有 Agent:命令面板一条命令,把 MCP 配置 + 使用提示词写入本机所有已安装的 Agent
  • OAuth 自动授权:兼容 Claude Code 等对 HTTP MCP 强制 OAuth 的客户端,免配置

快速开始(一键接入)

  1. 安装扩展并打开任意项目。
  2. 打开命令面板(Ctrl+Shift+P)→ 运行 ACE: 一键接入所有 Agent。
  3. 扩展会自动:
    • 为已安装的每个 Agent 写入全局 MCP 配置(指向 http://localhost:8787/mcp);
    • 写入该 Agent 的全局提示词文件(CLAUDE.md / AGENTS.md,带 <!-- ACE_START --> 标记块,可重复运行不重复追加);
    • 在 ~/.local/bin/ 写入全局 ace 命令(stdio 兜底)。

运行结果打印在 ACE 输出面板:每个 Agent 是"已配置 / 未检测到"一目了然。

提示:配置已写入,重启对应的 Coding Agent 会话后生效。

手动配置

一键命令之外,手动接入只需两步:写 MCP 配置 + 写提示词。所有 Agent 共用同一个 daemon 地址 http://localhost:8787/mcp。

1. MCP 配置

在 Agent 的全局 MCP 配置文件中注册 ace(各 Agent 的 MCP 配置文件与提示词文件在同一目录,见「提示词(使用指引)」表格):

{
  "mcpServers": {
    "ace": { "type": "http", "url": "http://localhost:8787/mcp" }
  }
}

Claude Code 也可用命令行:claude mcp add ace --type http --url http://localhost:8787/mcp(用户级)。

TOML 系(Codex / Grok / Reasonix)与 OpenCode / ZCode 的结构字段略有差异,推荐直接使用一键命令自动写入,避免手误。

2. 提示词

把使用指引写入 Agent 的全局提示词文件(~/.claude/CLAUDE.md / ~/.codex/AGENTS.md 等,路径见「提示词(使用指引)」表格),以 <!-- ACE_START --> / <!-- ACE_END --> 标记块包裹。一键接入时已自动写入,重复运行会更新而非重复追加;内容参考「工具清单(AI Agent 使用指引)」一节。

3. stdio 模式(兜底,无 HTTP daemon 时)

若某 Agent 只支持 stdio:一键接入时扩展已在 ~/.local/bin/ 写入全局 ace 命令,配置为:

{ "type": "stdio", "command": "~/.local/bin/ace" }

stdio 模式下多会话自动 relay 共享上下文,cwd 自动路由项目。

双向通道(只读查询 / 导航 / Code Action)

Agent 以任意符号名跨文件查询,不依赖光标定位;Server 经 WS 下发 request,扩展复用 VS Code LSP 执行查询后回 response:

method 说明
definition / references / hover 符号的定义位置 / 引用位置 / 类型与签名
workspace_symbols / document_symbols 全局符号搜索 / 任意文件 outline
implementations 接口 / 抽象类的实现位置
signature 函数 / 方法的参数列表
call_hierarchy / type_hierarchy 直接调用关系 / 直接父类子类
open_file / reveal / select IDE 导航(打开 Tab / 跳转行列 / 选中区间,focus=false 后台打开不抢焦点)
code_actions 只读修复建议列表(标题 + 类型 + 是否首选,不含 edits,不应用修复)

范围红线:全程只读查询 + IDE 导航定位 + 只读建议,不做写操作 / 代码执行 / 应用修复。能力跟随 VS Code 已装语言扩展(内置 JS/TS 等),非声明语言返回明确提示而非静默空。

提示词(使用指引)

一键接入时,扩展已把使用指引写入各 Agent 的全局提示词文件:

Agent 提示词文件
Claude Code ~/.claude/CLAUDE.md
Codex CLI ~/.codex/AGENTS.md
Gemini CLI ~/.gemini/AGENTS.md
OpenCode ~/.config/opencode/AGENTS.md
Kimi Code ~/.kimi-code/AGENTS.md
Qwen Code ~/.qwen/AGENTS.md
ZCode ~/.zcode/AGENTS.md
Grok CLI ~/.grok/AGENTS.md
Qoder ~/.qoder/AGENTS.md
Reasonix ~/.reasonix/AGENTS.md

内容以 <!-- ACE_START --> / <!-- ACE_END --> 标记块写入,重复运行一键命令会更新而非重复追加。你也可以手动把使用指引写入上述文件(内容参考「工具清单」一节),效果相同。

工具清单(AI Agent 使用指引)

以下指引面向 AI Coding Agent:你有 ACE 提供的 IDE 上下文感知工具(MCP),在合适的场景主动调用合适的工具,由 AI 决策,而不是等用户明确指定。工具名即 MCP 工具名;双向通道的协议 method 名(definition / references / hover 等)即对应工具去掉 get_ 前缀,见上节。

工具与用途

工具 用途
get_current_context 完整 IDE 上下文:当前文件 / 光标 / 选中代码 / 标签页 / 诊断 / Git / 最近修改
get_active_file 当前激活文件(路径 / 语言 / 光标 / 选中)
get_selection 当前选中的代码
get_cursor_position 光标位置
get_open_tabs 打开的标签页列表
get_workspace 工作区信息(根路径 / 框架 / 包管理器)
get_errors 当前错误诊断(severity = error)
get_recent_changes 最近修改历史(按文件折叠)
get_git_context Git 状态:分支 / 变更文件 / diff
get_recent_events 最近的 IDE 事件(打开 / 编辑 / 诊断更新 / Git 变更)
get_symbol 文件符号结构:传 file 查任意文件(函数 / 类 / 方法定义位置),缺省当前文件
search_symbol 跨文件全局按名称搜索符号定义位置
get_definition 符号的定义位置(可跨文件):传 symbol 按名查询(不依赖光标),缺省当前光标符号
get_references 符号的引用位置(跨文件):传 symbol 按名查询,缺省当前光标符号
get_hover 符号的类型 / 签名 / 文档:传 symbol 按名查询,缺省当前光标符号
get_implementations 接口 / 抽象类的实现位置(跨文件,需传 symbol)
get_signature 函数 / 方法的签名文本(含参数,需传 symbol)
get_call_hierarchy 函数的直接调用关系(incoming 谁调用了它 / outgoing 它调用了谁,需传 symbol,可选 direction)
get_type_hierarchy 类 / 接口的直接父类 / 子类(supertypes / subtypes,需传 symbol,可选 direction)
open_file 在 IDE 中打开文件(需传 file;打开 Tab / 抢焦点,传 focus=false 后台打开不打扰)
reveal_location 打开文件并跳转指定行列(需传 file,可选 line / column,0-based)
select_code 打开文件并选中指定区间(需传 file + start / end,文档 offset)
get_code_actions 只读修复建议列表(需传 file + line;配合 get_errors 返回 IDE 建议的修复方案,不应用)
get_context_summary 某日(默认今天)开发上下文摘要,跨会话延续开发意图
select_project 绑定当前项目(多项目时,之后调用默认路由到该项目)
list_projects 查看已接入上下文的所有项目

触发场景 → 应调用

场景 应调用
用户说"优化这里"、"看下这个"、"当前文件"、"刚才改了什么" 等模糊指代 get_current_context(若需选中代码则 get_selection)
用户提到"报错"、"修复这个错误"、贴了错误码 get_errors,配合 get_active_file 定位
需要了解最近的开发改动 / 进度 get_recent_changes
需要分支、未提交改动、diff get_git_context
用户提到跨文件函数 / 类 / 组件 search_symbol(全局按名搜)或 get_symbol { file }(查任意文件结构)
用户问某符号"在哪定义 / 被谁引用 / 什么类型" get_definition / get_references / get_hover(传 symbol 按名查询,不依赖光标)
用户问接口"有哪些实现 / 有哪些类实现了它" get_implementations { symbol }
用户问函数"签名 / 参数是什么" get_signature { symbol }
用户问"X 调用了谁 / 谁调用了 X" get_call_hierarchy { symbol, direction }(incoming / outgoing)
用户问"X 的父类 / 子类是什么" get_type_hierarchy { symbol, direction }(supertypes / subtypes)
用户说"帮我打开 X 文件 / 看下 X" open_file { file }(传 focus=false 后台打开不打扰)
用户说"帮我跳到 X 文件第 N 行 / 定位到这个位置" reveal_location { file, line, column }(0-based)
用户说"帮我选中 X 文件这段代码" select_code { file, start, end }(文档 offset)
用户看到报错、想知道 IDE 建议的修复方案 get_code_actions { file, line }(配合 get_errors,只读建议不应用)
新会话开头想延续之前的开发意图 get_context_summary
涉及多个项目 先 list_projects 查看,再 select_project 绑定目标项目

使用原则

  1. 模糊指代先取上下文,不猜测:用户说"这里 / 这个 / 当前"时,先调用工具获取真实状态,再回答或动手。
  2. 最小调用:优先用 get_current_context 一次拿全;按需再定向调用其他工具,不批量轰炸。
  3. 无上下文时:若工具返回"尚无 IDE 上下文",说明扩展未连接(或未打开文件),如实告知用户,不臆造。
  4. 多项目:同时接入多个项目时,工具默认路由到 select_project 绑定的项目;需指定时用 projectRoot 参数。

排错

现象 处理
Agent 报 SDK auth failed / Invalid OAuth error response daemon 是 HTTP 模式,Claude Code 等强制 OAuth。确认扩展已激活、daemon 在 :8787 运行(curl http://localhost:8787/mcp 有响应);daemon 已内置 OAuth 自动授权,无需手动配 token
工具返回"尚无 IDE 上下文" 扩展未连接 / 未打开文件。确认扩展已安装激活、工作区已打开
一键接入显示"未检测到"某 Agent 该 Agent 未安装,或其全局配置目录不存在。手动配置见上文
daemon 未自动拉起 确认扩展包内 dist/extension.js 与 mcp-server/dist/index.js 都存在(vsix 已内置);或用 ACE_SERVER_PATH 指定 server 路径
端口被占用 daemon 默认 :8787,可用环境变量 ACE_HTTP_PORT 改端口(需同步改各 Agent 配置)

配置

变量 默认 说明
ACE_HTTP_PORT 8787 daemon HTTP 端口(MCP over HTTP)
ACE_WS_PORT 47821 WebSocket 端口(收扩展推送)
ACE_WS_URL ws://localhost:47821 扩展侧连接地址
ACE_MEMORY_PATH ~/.ace/memory.json Agent Memory 落盘路径
ACE_SERVER_PATH — 显式指定 daemon 脚本路径
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft