【学习】Copilot CLI Session:让自主 Agent 在后台持续运行的最佳方式

1. 什么是 Copilot CLI Session

Copilot CLI Session 可以理解为:在本地后台运行的 自主 Agent 会话

它的关键特性是:

  • 使用 Copilot CLI agent harness,运行方式 独立于 VS Code 主进程
  • 即使你关闭 VS Code 窗口,Session 依然可以 继续运行
  • 适合 范围明确、上下文完整、不需要频繁交互 的任务,例如:
    • 实现一个计划中的功能
    • 批量生成多个方案
    • 执行明确的修复任务

2. VS Code 如何与 CLI Session 协作

VS Code 并不是把 CLI Session “塞进”编辑器里运行,而是通过 Copilot SDK 来对会话进行“控制与观测”:

  • 启动 / 停止 / 监控 CLI 会话
  • 在 Chat 视图中:
    • 查看状态
    • 输入指令
    • 处理权限请求
  • 支持 Slash Commands(例如 /compactskillshooks

意味着:你仍在 VS Code 中管理体验,但执行单元已经变成了一个“可后台持续运行”的 CLI Agent。


3. 隔离模式(Isolation Modes)

Copilot CLI 提供两种隔离方式,决定它“在哪个环境里改代码”。

① Worktree Isolation(推荐)

核心思路:每个 Session 创建独立 Git worktree

  • 所有修改都发生在 worktree 中,不影响主工作区
  • 每轮自动 commit,保持历史一致
  • 适合让 Agent 更安全地自主修改代码
注意:使用 Worktree 模式,需要当前项目是 Git 仓库

② Workspace Isolation

核心思路:直接在当前工作区修改文件

  • 适合你希望 立即看到变更 的场景
  • 风险更高:因为改动会直接落到当前工作的目录里

4. Copilot CLI Session 的限制

CLI Session 很强,但也有边界:

  • 无法访问 VS Code 内置工具
  • 无法使用 扩展提供的工具
  • 模型能力受 CLI 工具链限制
  • 只能访问 无需认证的本地 MCP 服务器
    • 需要认证/受保护的 MCP 服务通常不可用

因此:如果你的任务强依赖 VS Code 扩展生态(比如某些专用调试器、可视化工具、内部插件),CLI Session 可能不是最佳选择。


5. 如何创建 Copilot CLI Session

创建方式

你可以通过以下入口创建:

  • Chat 视图 → Session Target 选择 Copilot CLI
  • Chat 视图顶部 → New ChatNew Copilot CLI Session
  • 命令面板 → Chat: New Copilot CLI Session
在这里插入图片描述


在这里插入图片描述

创建流程

这些步骤:

  1. 选择隔离模式(worktree / workspace
  2. 输入 prompt(可附加上下文、选择模型、选择自定义 Agent)
  3. 在 Chat 视图中跟踪状态
  4. 支持同时创建多个 CLI Session 并行工作

6. 将本地 Session 交接给 Copilot CLI

一个非常实用的工作流:先澄清需求,再让后台执行

适用场景:

  • 你先用本地 Agent(如 Plan Agent)把需求问清楚、把计划做出来
  • 然后把任务交给 CLI Session 在后台推进

交接方式:

  • Session Target 下拉 → 选择 Copilot CLI
  • Plan Agent 的 Start ImplementationContinue in Copilot CLI

交接后会发生什么?

  • 完整对话历史与上下文会传递给 CLI Session
  • CLI Session 继续执行,VS Code 负责“可视化跟踪”

7. 在终端中使用 Copilot CLI

VS Code 提供专用的 Copilot CLI Terminal Profile

打开方式

  • Terminal 面板 → “+” 下拉 → GitHub Copilot CLI
  • 命令面板 → Chat: New Copilot CLI Session
  • 命令面板 → Terminal: Create New Terminal (With Profile)

任意终端输入 copilot

在这里插入图片描述

特性

  • 自动识别并显示 Session 到 Chat 视图
  • 可以从终端恢复 Session
  • 自动处理身份验证

8. 多仓库工作区(Multi-repo Workspace)

如果你的 VS Code 工作区包含多个仓库:

  • 启动 CLI Session 时会出现 仓库选择器
  • 选择在哪个仓库创建 worktree
  • 创建出的 worktree 会显示在 Source Control 的 Worktrees 节点中

这让 CLI Session 在 mono-repo / multi-repo 场景下仍然可控、可追踪。


9. 自定义 Agent 与 Copilot CLI(实验性)

你可以在工作区中创建自定义 Agent(persona、规则、行为),并在创建 CLI Session 时选择它。

需要启用设置:

  • github.copilot.chat.cli.customAgents.enabled

适合团队统一“执行风格”、或者在大型项目里固化一些约束(比如代码风格、提交规范、分支策略、风险提示等)。


10. 相关资源(延伸阅读)

  • Agents Overview
  • Custom Agents
  • GitHub Copilot CLI 文档

何时用本地 Agent、何时用 CLI、何时用 Cloud Agent?

下面是一份工程向的快速决策指南。

🖥️ 本地 Agent(Agent / Plan / Ask)

最适合:

  • 需要频繁交互
    例如:一步步调试、问问题、解释代码、探索 API
  • 需要即时反馈
    例如:写一段代码、生成一个函数、解释报错
  • 任务不明确,需要澄清需求
    Plan Agent 特别适合“先规划再执行”

不适合:

  • 长时间运行
  • 大规模修改
  • 需要后台执行的任务

⚙️ Copilot CLI Agent

最适合:

  • 明确、可独立执行的任务
    例如:
    • “把整个项目迁移到 TypeScript”
    • “为所有 API 添加错误处理”
    • “生成 5 个不同的 UI 方案”
  • 长时间运行的任务
    即使关闭 VS Code 也不会中断
  • 需要隔离环境的任务
    Worktree 模式让它安全修改代码,不影响主分支

不适合:

  • 需要频繁问答
  • 需要 VS Code 扩展工具(CLI 无法访问)
  • 需要访问受保护的 MCP 服务

☁️ Cloud Agent(GitHub 托管)

最适合:

  • PR 工作流(自动修复 PR、生成 PR 描述、自动 review)
  • 团队协作(能直接访问 GitHub repo / PR / issues)
  • 需要更强算力或长上下文(云端模型通常更强)

不适合:

  • 本地文件未提交到 GitHub
  • 需要访问本地环境(数据库、脚本、工具链)

一张“选择哪种 Agent”的快速决策图

 任务是否需要频繁交互? │ ┌──────────┴──────────┐ │ │ 是 否 │ │ ┌───────▼───────┐ 任务是否明确? │ 本地 Agent │ │ └───────────────┘ ┌───────┴────────┐ │ │ 否 是 │ │ ┌───────▼──────┐ 任务是否与 GitHub 交互? │ Plan Agent │ │ └───────────────┘ ┌───────┴────────┐ │ │ 否 是 │ │ ┌───────▼──────┐ ┌────▼─────┐ │ CLI Agent │ │ Cloud Agent│ └──────────────┘ └────────────┘ 

结语

Copilot CLI Session 更像是一个可以托管在本地后台的工程执行者

  • 你负责定义范围与目标
  • 它负责持续推进执行
  • worktree 隔离让它更适合“放心交给它改”

当任务足够明确时,把工作交给 CLI Session,往往能显著提升效率。

Read more

前端防范 XSS(跨站脚本攻击)

目录 一、防范措施 1.layui util  核心转义的特殊字符 示例 2.js-xss.js库 安装 1. Node.js 环境(npm/yarn) 2. 浏览器环境 核心 API 基础使用 1. 基础过滤(默认规则) 2. 自定义过滤规则 (1)允许特定标签 (2)允许特定属性 (3)自定义标签处理 (4)自定义属性处理 (5)转义特定字符 常见场景示例 1. 过滤用户输入的评论内容 2. 允许特定富文本标签(如富文本编辑器内容) 注意事项 更多配置 XSS(跨站脚本攻击)是一种常见的网络攻击手段,它允许攻击者将恶意脚本注入到其他用户的浏览器中。

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

目录 1. 打开浏览器开发者工具 2. 使用 Network 面板 3. 查看具体的API请求 a. Headers b. Payload c. Response d. Preview e. Timing 4. 实际操作步骤 5. 常见问题及解决方法 a. 无法看到API请求 b. 请求失败 c. 跨域问题(CORS) 作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。 1. 打开浏览器开发者工具 按下 F12 或右键点击页面选择“检查”可以打开浏览器的开发者工具。常用的浏览器如Chrome、Firefox等都内置了开发者工具。下面是我选择我的一篇文章,打开开发者工具进行演示。 2. 使用

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例)

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例) 前端开发中最令人头疼的莫过于那些难以定位的UI问题——元素错位、样式冲突、响应式失效...传统调试方式往往需要反复修改代码、刷新页面、检查元素。现在,通过Cursor编辑器集成的Codex功能,你可以直接用截图交互快速定位和修复这些问题。本文将带你从零开始,掌握这套革命性的调试工作流。 1. 环境准备与基础配置 在开始之前,确保你已经具备以下环境: * Cursor编辑器最新版(v2.5+) * Node.js 18.x及以上版本 * React 18项目(本文以Chakra UI 2.x为例) 首先在Cursor中安装Codex插件: 1. 点击左侧扩展图标 2. 搜索"Codex"并安装 3. 登录你的OpenAI账户(需要ChatGPT Plus订阅) 关键配置项: // 在项目根目录创建.