You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为VS Code中GitHub Copilot自定义代理实现可观测性

需求概述

需为VS Code中GitHub Copilot与自研自定义代理的交互实现日志记录功能,捕获所有交互细节(含代理使用内置工具或无工具的场景),但官方无公开API支持该需求。

已尝试的无效方案

  • 尝试通过自定义代理搭载的MCP Server记录日志,但无法覆盖代理使用内置工具或无工具的交互场景
  • 通过代理在指令中嵌入日志逻辑,存在可靠性问题且会污染对话上下文
  • 组织级Copilot审计日志仅提供高层统计数据,无法满足自研特定代理的详细日志需求
  • 尝试开发VS Code扩展访问Copilot输出通道或调试视图,但未找到对应官方API

可靠实现方案

1. 自定义MCP Server链路拦截

基于已部署的自定义MCP Server,在核心请求处理链路中添加日志拦截层:

  • 针对completion、chatCompletion等Copilot核心交互接口,在请求到达和响应返回时,记录用户输入上下文、代理响应内容、时间戳、用户标识、工具调用详情(若有)
  • 对代理调用内置工具的逻辑,在工具调用前、后分别插入日志节点,记录工具参数、执行结果
  • 该方案无需修改VS Code端逻辑,所有日志处理在服务端完成,不会污染对话上下文,且能覆盖所有通过MCP Server的交互场景

2. VS Code扩展侧Hook实现

通过VS Code扩展API结合猴子补丁技术,捕获Copilot扩展的内部交互:

  • 监听输出通道:通过vscode.window.createOutputChannel('GitHub Copilot')获取Copilot的输出通道,订阅其onDidAppend事件,直接捕获扩展输出的调试日志(包含请求、响应的关键信息)
  • Hook核心方法:调试Copilot扩展的源码,找到其发送请求、处理响应的核心函数(如fetchCompletion类方法),通过猴子补丁替换原方法,在调用前后插入日志记录逻辑,直接获取原始请求/响应数据
  • 注意:该方案需适配Copilot扩展的版本更新,若扩展内部实现变更,需同步调整Hook逻辑

3. 本地网络流量代理拦截

部署轻量本地代理服务,拦截VS Code与自定义MCP Server之间的所有HTTPS流量:

  • 配置VS Code的http.proxy和https.proxy指向本地代理服务
  • 在本地代理中解析HTTPS请求/响应,记录请求头、请求体(用户输入)、响应体(Copilot返回内容)、交互时间等信息
  • 需为本地代理生成自签名证书,并添加到VS Code的信任证书列表中,确保HTTPS流量能正常解析
  • 该方案无需修改代理或扩展代码,实现成本低,适合快速验证场景

内容的提问来源于stack exchange,提问作者Shay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 17:42:43