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

如何在VS Code扩展中追踪GitHub Copilot Chat的用户提问行为?

追踪GitHub Copilot Chat命令调用的方法

要在你的VS Code扩展中追踪用户是否触发Copilot Chat的提问命令,你可以利用VS Code的命令执行监听API,具体有两种实现方式:

方法一:监听全局命令执行事件(推荐)

通过监听全局的命令执行事件,筛选出你需要追踪的Copilot Chat命令,这种方式不会影响原命令的正常运行:

// 在扩展激活函数内注册监听
const disposable = vscode.window.onDidExecuteCommand((command) => {
    // 定义需要追踪的Copilot Chat命令集合
    const targetCommands = new Set([
        'github.copilot.chat.generate',
        'github.copilot.chat.generateDocs',
        'github.copilot.chat.generateTests',
        'github.copilot.chat.generateAltText'
    ]);

    if (targetCommands.has(command.command)) {
        // 这里添加你的追踪逻辑,比如记录事件、统计触发次数等
        console.log(`用户触发Copilot Chat命令: ${command.command}`);
        // 可以通过command.arguments获取命令执行时传入的参数
        console.log('命令参数:', command.arguments);
    }
});

// 将监听实例加入订阅,确保扩展销毁时自动释放资源
context.subscriptions.push(disposable);

方法二:包装目标命令(谨慎使用)

如果你需要在命令执行前后插入自定义逻辑,可以重新注册同名命令,内部调用原命令实现:

// 获取Copilot Chat的原命令
const originalGenerateCmd = vscode.commands.getCommand('github.copilot.chat.generate');

if (originalGenerateCmd) {
    // 重新注册同名命令,覆盖原命令
    const disposable = vscode.commands.registerCommand('github.copilot.chat.generate', async (...args) => {
        // 执行追踪逻辑
        console.log('用户发起了Copilot Chat提问');
        // 调用原命令,保证原有功能正常运行
        await originalGenerateCmd(...args);
    });

    context.subscriptions.push(disposable);
}

注意:方法二可能会与Copilot Chat扩展的更新产生兼容性问题,且若原命令实现有变更,可能导致功能异常,因此优先选择方法一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 06:42:39