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

发布时间:2026/5/26 4:13:29

【学习】Copilot CLI Session:让自主 Agent 在后台持续运行的最佳方式 1. 什么是 Copilot CLI SessionCopilot 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例如/compact、skills、hooks意味着你仍在 VS Code 中管理体验但执行单元已经变成了一个“可后台持续运行”的 CLI Agent。3. 隔离模式Isolation ModesCopilot 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 CLIChat 视图顶部 →New Chat→New Copilot CLI Session命令面板 →Chat: New Copilot CLI Session创建流程这些步骤选择隔离模式worktree/workspace输入 prompt可附加上下文、选择模型、选择自定义 Agent在 Chat 视图中跟踪状态支持同时创建多个 CLI Session 并行工作6. 将本地 Session 交接给 Copilot CLI一个非常实用的工作流先澄清需求再让后台执行。适用场景你先用本地 Agent如 Plan Agent把需求问清楚、把计划做出来然后把任务交给 CLI Session 在后台推进交接方式Session Target 下拉 → 选择Copilot CLIPlan Agent 的Start Implementation→Continue in Copilot CLI交接后会发生什么完整对话历史与上下文会传递给 CLI SessionCLI Session 继续执行VS Code 负责“可视化跟踪”7. 在终端中使用 Copilot CLIVS 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实验性你可以在工作区中创建自定义 Agentpersona、规则、行为并在创建 CLI Session 时选择它。需要启用设置github.copilot.chat.cli.customAgents.enabled适合团队统一“执行风格”、或者在大型项目里固化一些约束比如代码风格、提交规范、分支策略、风险提示等。10. 相关资源延伸阅读Agents OverviewCustom AgentsGitHub Copilot CLI 文档何时用本地 Agent、何时用 CLI、何时用 Cloud Agent下面是一份工程向的快速决策指南。️ 本地 AgentAgent / Plan / Ask最适合需要频繁交互例如一步步调试、问问题、解释代码、探索 API需要即时反馈例如写一段代码、生成一个函数、解释报错任务不明确需要澄清需求Plan Agent 特别适合“先规划再执行”不适合长时间运行大规模修改需要后台执行的任务⚙️ Copilot CLI Agent最适合明确、可独立执行的任务例如“把整个项目迁移到 TypeScript”“为所有 API 添加错误处理”“生成 5 个不同的 UI 方案”长时间运行的任务即使关闭 VS Code 也不会中断需要隔离环境的任务Worktree 模式让它安全修改代码不影响主分支不适合需要频繁问答需要 VS Code 扩展工具CLI 无法访问需要访问受保护的 MCP 服务☁️ Cloud AgentGitHub 托管最适合PR 工作流自动修复 PR、生成 PR 描述、自动 review团队协作能直接访问 GitHub repo / PR / issues需要更强算力或长上下文云端模型通常更强不适合本地文件未提交到 GitHub需要访问本地环境数据库、脚本、工具链一张“选择哪种 Agent”的快速决策图任务是否需要频繁交互 │ ┌──────────┴──────────┐ │ │ 是 否 │ │ ┌───────▼───────┐ 任务是否明确 │ 本地 Agent │ │ └───────────────┘ ┌───────┴────────┐ │ │ 否 是 │ │ ┌───────▼──────┐ 任务是否与 GitHub 交互 │ Plan Agent │ │ └───────────────┘ ┌───────┴────────┐ │ │ 否 是 │ │ ┌───────▼──────┐ ┌────▼─────┐ │ CLI Agent │ │ Cloud Agent│ └──────────────┘ └────────────┘结语Copilot CLI Session 更像是一个可以托管在本地后台的工程执行者你负责定义范围与目标它负责持续推进执行worktree 隔离让它更适合“放心交给它改”当任务足够明确时把工作交给 CLI Session往往能显著提升效率。

相关新闻