服务对象与地域限制
PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。
代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。
本文要点
- VS Code 1.140 Stable 于 2026 年 9 月 30 日发布;GitHub 10 月 1 日的月度汇总覆盖 9 月多个版本,不能当作这些功能当天才上线。
- 多目录会话为实验功能,默认关闭;按所用 harness 在用户 settings.json 开启 multiRootEnabled,设置对新会话生效。
- 每个聊天可以使用自己的目录或工作树;使用同一目录的聊天仍共享终端、变更等状态。
- 远程委派工具默认关闭,仅在 Agents window 使用;目标主机须已连接,仓库须在目标主机已有受信任目录。工具不会自动克隆或复制源工作区。
- 工作树分离代码变更,但不构成安全边界;ignored 目录的符号链接会把修改传回原 checkout。
先区分会话关系、执行主机和代码目录
<a href="https://code.visualstudio.com/updates/v1_140" target="_blank" rel="noopener noreferrer">1.140 发布说明</a>将 Multi-folder sessions、Remote delegation 和 Shared worktree folders 标为 Experimental。它们分别处理聊天使用哪个目录、任务在哪台机器运行、以及工作树如何复用 ignored 文件夹。开启其中一个,不代表其他功能或账号权限同时开放。
相关工作可由主聊天创建 peer chat;独立交付物可使用独立会话。需要仓库文件时明确目录,需要分离代码改动时再明确要求 Git worktree。这里的多目录代理会话与普通编辑器多根工作区不同,也不能把 VS Code Agent Host Codex、OpenAI Codex 扩展和桌面应用视为同一个入口。
步骤一:为所用 harness 开启多目录会话
先通过 VS Code 的 Check for Updates 核对安装版本。打开用户级 settings.json,根据当前 harness 选择一个设置并设为 true:Copilot 使用 <code>chat.agentHost.copilotAgent.multiRootEnabled</code>,Claude 使用 <code>chat.agentHost.claudeAgent.multiRootEnabled</code>,Codex 使用 <code>chat.agentHost.codexAgent.multiRootEnabled</code>。这些实验设置默认关闭,不显示在 Settings editor。
随后创建新会话;官方说明新会话会读取设置,无需重启 Agent Host。当前没有添加目录或选择 peer chat 目录的专门 UI,应在主聊天请求中写明目标仓库或工作树。例如先要求在仓库 A 只读分析接口,再为仓库 B 创建 peer chat 检查调用方式。需要各自修改同一仓库时,明确要求不同的新工作树。不要把已有会话自动迁移当作成功标准。
步骤二:确认聊天实际使用的目录
每个聊天的终端、tasks、changes、pull request 和 Agent merge 状态属于该聊天的目录;使用同一目录的聊天共享这些状态。悬停会话可查看所有目录的汇总,悬停嵌套聊天可查看它自己的目录详情。先核对这些信息,再允许写文件。
建议第一次只要求代理报告当前目录、仓库、分支和预期修改文件,不执行修改。把结果与请求中的目标对照。需要隔离时,两个聊天应指向不同工作树;仅创建两个聊天并不能保证隔离。共享 checkout 的同伴适合只读研究或审阅,修改任务应明确文件归属。
步骤三:远程委派先连接主机,再指定工作区
在 Agents window 使用远程委派,需启用 <code>chat.remoteAgentHostsEnabled</code> 与 <code>chat.remoteSessions.tools.enabled</code>,并连接准备使用的主机。远程工具默认关闭。<code>list_agent_hosts</code>可列出主机、模型、资源容量和会话负载;<code>create_remote_session</code>可指定主机,或依据操作系统、最低内存、逻辑 CPU 和可选模型选择符合条件的主机。
远程会话未指定工作区时没有仓库目录。仓库任务必须使用目标主机上已有的受信任目录,直接使用或为它创建 Git worktree;工具不会自动克隆或复制源工作区,正常审批仍适用。先让远程代理报告主机和目录,再核对文件是否确实存在,不要把本机路径当成远程路径。
协调用的 Agents window 应保持打开并连接。可用 <code>get_remote_session</code>读取状态和最新答复;远程代理通过 <code>send_remote_message</code>报告结果,最终答复不会自动转发。本文没有实测主机注册、跨账户授权、网络可靠性或具体套餐费用;实际连接步骤以官方远程主机文档及组织配置为准。
工作树的起点和权限需要单独检查
<a href="https://code.visualstudio.com/docs/agents/run/agent-harnesses" target="_blank" rel="noopener noreferrer">官方 harness 文档</a>说明,新工作树从所选基准分支的已提交 Git 状态开始,默认不包含当前 checkout 的未提交 tracked 修改、untracked 文件及 .env、依赖等 ignored 内容。如果任务依赖未提交文件,先明确如何提供这些文件,或选择使用当前 Folder。
工作树隔离的是代码改动,不是命令、网络或文件系统权限。官方通用说明中 Worktree 会话使用 Allow all,Folder 会话的审批选项依所用 harness 而异;选择工作树前应查看当前入口的权限提示,需要系统级限制时核对官方 sandboxing 配置。不要把远程委派的正常审批表述理解成所有工作树都会逐次询问。
复用 ignored 文件夹:符号链接会共享修改
<code>git.worktreeIncludeFiles</code>用于把指定 ignored 文件复制到新工作树;实验性的 <code>git.worktreeSymlinkFolders</code>则按 .gitignore 风格 patterns,对当前 checkout 中匹配的 ignored 文件夹创建符号链接,例如 node_modules。发布说明没有给出该设置的默认值,不能假设它自动开启。
符号链接不是独立副本:代理通过链接修改文件,会影响原 checkout 的对应文件夹。需要独立依赖版本、构建输出或可写缓存时,不要把它们当作隔离目录共享。使用前先确认链接指向,再以只读检查验证;发现意外回写时停止有关写入,检查原目录变更,不能仅删除工作树就认定影响已撤销。
看不到功能或任务没回报时怎么判断
依次检查版本、所选 harness、设置是否写在用户 scope、是否创建了新会话、目标主机是否连接、远程受信任目录是否存在。多目录设置不显示在 Settings editor 属于官方已说明的行为;远程最终答复不自动转发,也不等于任务失败。用状态工具确认实际进展。实验功能变化或组织策略不允许时,保留既有流程并核对官方文档,不通过放宽权限来试错。
若实际出现代理连接、407 或证书链错误,再对照<a href="/resources/github-copilot-enterprise-proxy-ca-guide">Copilot 企业代理与 CA 排查</a>定位网络层。网络出口不能开启实验设置、创建远程目录或替代订阅和组织授权。
资料来源
常见问题
VS Code 1.140 的多目录会话默认开启吗?
没有。它是实验功能,默认关闭;按 harness 在用户 settings.json 设置对应 multiRootEnabled 为 true,再创建新会话。
两个 peer chat 会自动使用不同工作树吗?
不能假设会。每个聊天可以使用自己的目录,但指向同一目录的聊天仍共享状态。需要隔离修改时必须明确请求不同工作树,并核对实际目录。
远程代理会复制本机仓库吗?
不会自动克隆或复制源工作区。目标主机需要已有受信任目录;未指定工作区的远程会话没有仓库目录。
远程任务的最终答复会自动回到主聊天吗?
不会自动转发。保持协调 Agents window 打开且连接,用 get_remote_session 查状态,并让远程代理通过 send_remote_message 回报。
Git worktree 能限制代理的网络和文件权限吗?
工作树用于分离代码变更,不构成安全边界。官方通用文档说明 Worktree 会话使用 Allow all;审批和系统级隔离应按当前 harness 和 sandboxing 配置核对。
git.worktreeSymlinkFolders 会创建独立依赖副本吗?
不会。它创建指向原 checkout 匹配 ignored 文件夹的符号链接,通过链接写入会影响原文件夹。需要独立可写依赖或构建结果时应避免共享。