diff --git a/07-Other/AI/AI Agent/UnrealEngine/Hardness Game Development.md b/07-Other/AI/AI Agent/UnrealEngine/Hardness Game Development.md index 948da18..d80d4c4 100644 --- a/07-Other/AI/AI Agent/UnrealEngine/Hardness Game Development.md +++ b/07-Other/AI/AI Agent/UnrealEngine/Hardness Game Development.md @@ -20,7 +20,7 @@ - cpp-debugger-cli - 互娱 - **从 ASAN 到 AI 的“接力排查”** https://km.netease.com/v4/detail/blog/256465 - - **1. 借助 ASAN 把“指针变野”的时间点钉住** + - **1. 借助 ASAN 把“指针变野”的时间点钉住** [[UE5编辑器开启ASAN]] - 第一步是启用 ASAN(AddressSanitizer)来辅助定位: - 在 UE5 编辑器环境启用 ASAN,本身需要做一些额外工作:[https://km.netease.com/v4/detail/blog/254722](https://km.netease.com/v4/detail/blog/254722) - 这些环境搭建细节本文不展开,只强调结论:ASAN 成功启用,可以看到完整的分配 / 释放栈。 @@ -29,6 +29,9 @@ - [VSDebugMCP](http://git-internal.nie.netease.com/mcpanalyzer/VSDebugMCP) - [UnrealMCP](http://git-internal.nie.netease.com/mcpanalyzer/UnrealMCP) - [ue-reference-diagnostic-mcp](http://git-internal.nie.netease.com/mcpanalyzer/ue-reference-diagnostic-mcp) + - VSCode MCP & Plugin + - https://github.com/juehang/vscode-mcp-server + - **`@modelcontextprotocol/server-dap` (DAP MCP)** **用途**:如前所述,这是 AI 进行代码调试的“圣杯”。***它允许大模型直接通过标准 DAP 协议连接到本地的 Python、C++ (GDB/LLDB)、Node.js 调试进程***。 - LLDB MCP https://lldb.llvm.org/use/mcp.html - 其他仓库 - https://github.com/akiselev/debugger-cli @@ -62,4 +65,24 @@ lldb --protocol-server start --port 59999 ``` # 安装通用的调试技能包 claude skill install AlmogBaku/debug-skill -``` \ No newline at end of file +``` + +## VSCode +这的确是一个非常典型的架构差异问题。你提到通过 COM (Component Object Model) 接口控制 Visual Studio,这非常精准,因为 VS 的底层重度依赖 Windows 的 COM 组件机制(如 DTE 对象)。 +但对于 **VS Code** 来说,情况完全不同。VS Code 是基于 Electron 和 Node.js/TypeScript 构建的,**它根本没有 COM 接口**。 +要让 MCP (Model Context Protocol) 或者外部 AI Agent 控制 VS Code,特别是进行断点调试,社区目前有几套非常成熟的开源方案和设计思路: + +--- +### 一、 VS Code 的 MCP 控制方案 +针对 VS Code 的架构,目前主要有三种主流的控制路径: +#### 1. “由内向外”方案:Agent 直接作为 VS Code 插件 (目前最稳定、最主流) +与其让外部的 MCP 服务去“黑客”般地控制 VS Code,不如**让 Agent 直接运行在 VS Code 内部**。 +- **原理**:像 **Cline**、**Roo Code** 这样的插件,它们本身就拥有完整的 VS Code Extension API 权限(可以打开文件、打断点、读取控制台)。 +- **MCP 的角色**:在这种架构下,VS Code 插件作为 **MCP Client**,它去连接外部的 MCP Server(比如获取特定的代码分析工具、数据库查询权限等),而不是让 MCP 来控制 VS Code。 +#### 2. DAP-MCP 桥接方案 (专门针对断点调试) +VS Code 所有的调试能力都是基于 **DAP (Debug Adapter Protocol)** 构建的。如果你想让一个外部的 Agent(比如你终端里的 Claude Code)控制 VS Code 的调试器,最好的办法是拦截或桥接 DAP。 +- **原理**:启动一个 `mcp-server-dap`。这个 MCP 服务把 Agent 发出的 MCP 指令(如“继续执行”、“查看变量”)翻译成标准的 DAP 协议,直接发给 VS Code 底层的 Debug Adapter(比如 `cppdbg` 或 `lldb-dap`)。 +- **效果**:AI 不需要点击 VS Code 的 UI 按钮,它直接和 VS Code 背后那个真正负责调试的引擎对话。 +#### 3. “由外向内”方案:WebSocket / RPC 桥接插件 +如果你的 Agent 必须在外部运行,且需要控制 VS Code 的 UI(比如让编辑器滚动、高亮某一行代码)。 +- **原理**:需要在 VS Code 里安装一个**暴露 WebSocket 或 HTTP 接口的桥接插件**。外部的 MCP Server 通过向这个本地端口发送 JSON-RPC 指令,插件再调用 VS Code API 来执行操作。 \ No newline at end of file