MemoryLake
返回全部文章
Tutorial2026 年 10 月 8 日·10 分钟阅读

如何准备一个让每个任务都带着项目上下文启动的 Codex 云环境(2026 指南)

Codex Cloud 让您可以将编码任务交给 OpenAI 的基础设施,然后抽身离开。用 OpenAI 的话来说,它“在云端运行编码任务,因此在您的电脑休眠时工作仍可继续”。在 DevDay 2026 上,OpenAI 增加了可重用的云环境,据其称,这“有助于任务快速启动,并为您的团队提供具有经批准的设置和权限的共享配置”。

这解决了机器的问题。但它并不会自动解决上下文的问题。一个在您的笔记本电脑上运行良好的任务在云端可能会有不同的表现,这不是因为模型改变了,而是因为在本地引导它的某些内容存在于您的主文件夹、本地记忆库或您的脑海中。

本指南将解释云任务实际启动时包含什么、人们首先会尝试什么,以及如何设置环境,以便每个任务都从它所需的项目上下文开始。

为什么云任务启动时没有您的本地上下文

首先来看看什么是环境。“云环境是任务使用的可重用配置:仓库、依赖项、工具和访问设置。” Codex 会检查您的仓库,安装它们所需的内容,与您一起测试配置,然后由您发布它。“每个新任务都会从已发布的云环境中获得自己独立的 workspace。”

OpenAI 的环境概述用两句话说明了界限:“云任务使用其云环境中可用的文件和服务。您电脑的本地文件、运行中的进程、浏览器登录和 VPN 访问不会自动传输到其中。”

现在来看看本地 Codex 将其上下文保存在哪里。

指令。“Codex 在进行任何工作之前都会读取 AGENTS.md 文件。”它构建了一个链条:您的 Codex 主目录中的全局文件(“默认为 ~/.codex”),然后是从项目根目录一直到您的工作目录的文件。仓库的文件是检出(checkout)的一部分。而全局文件则存在于您的机器上。

技能。 Codex 从仓库、用户、管理员和系统位置读取技能。仓库技能保存在仓库的 .agents/skills 中。用户技能保存在 $HOME/.agents/skills 中。云环境页面具体说明了任务能看到哪些技能:“存储在仓库中的技能在云任务中可用。来自您本地电脑的个人技能不会同步到云环境。”

记忆。“ChatGPT 网页端使用 ChatGPT 记忆,而本地 Codex 客户端使用独立的本地记忆存储和控制。”该存储位于磁盘上:“Codex 将记忆存储在您的 Codex 主目录下。”它在本地如何工作已在开启 Codex 的本地记忆中进行了介绍。

将这些结合起来,云任务可以可靠地获取提交到仓库的内容以及您在环境中配置的内容。而您主文件夹中的指南、个人技能以及您的本地记忆所获取的任何内容都与您的电脑绑定。

还有两个细节决定了任务能记住什么。“每个云任务都有自己的工作文件。任务中的文件更改不会更新可重用的环境。”并且保存的状态是有有效期的:“默认情况下,在您最后一次开始一轮对话或恢复任务后,任务保存的虚拟机状态最多可恢复七天。”

这并不少见。Claude Code 的云会话也划定了类似的界限,正如您的本地配置在 Claude Code 云环境中留下了什么中所描述的那样。云智能体在设计上就是从共享的内容开始的。

人们尝试的其他方法

运行第一个云任务并修复出错的地方。 这最终会起作用,但每次修复都只存在于一个任务的工作文件中。任务中的文件更改不会更新环境,因此下一个任务仍会从相同的地方开始。

依赖 Codex 记忆。 记忆在本地很有用,OpenAI 自己的指南也明确了它们的作用:“将所需的团队指南保存在 AGENTS.md 或已签入的文档中。将记忆视为一个有帮助的召回层,而不是必须始终适用的规则的唯一来源。”

将关键规则保留在全局 AGENTS.md 中。 您的主文件夹文件是存放个人工作协议的好地方。整个团队依赖的规则属于仓库,在那里,无论是本地任务还是云任务,每个任务都会读取它们。

将所有内容都放入配置对话中。 环境会记录一个安装脚本和一个启动技能,其中包含如何准备和运行项目。它们不适合用来存放架构决策或编码规范。

假设旧版云配置会结转。 OpenAI 指出“Codex Cloud(旧版)继续支持 Code Review 以及 Linear 和 GitHub 集成”,并计划将其弃用。新 Codex Cloud 的环境是单独创建的。

解决方案:将项目上下文放入仓库和环境中,然后在任务中进行检查

步骤 1:盘点您的本地 Codex 配置为每个任务提供了什么

在创建环境之前,列出您的本地任务所依赖的内容。以下四个地方涵盖了大部分内容。

您在 ~/.codex 中的全局 AGENTS.md。阅读它并将每一行标记为个人(您喜欢的工作方式)或项目(此代码库的工作方式)。

您在 $HOME/.agents/skills 中的个人技能。记录您在此项目上使用了哪些技能。

您的本地记忆。Codex 将它们作为文件保存在 ~/.codex/memories/ 下,OpenAI 建议将它们视为生成的状态。您可以阅读它们以查看 Codex 一直依赖什么,并寻找从未写入文件的项目事实。

您自己的习惯。想想您在开始任务时通常发送的第一条消息:运行哪些命令、避开哪个文件夹、先启动哪个服务。这些也是上下文。

输出是一个简短的列表,列出了目前仅存在于您的机器上的项目上下文。如果 Codex 一直忽略您认为它会读取的仓库文件,为什么 Codex 会跳过 AGENTS.md 规则涵盖了常见原因。

步骤 2:将项目上下文移入仓库,将配置移入环境

现在为每个项目提供一个共享的归宿。

项目规范放入仓库的 AGENTS.md 中。Codex 会自上而下拼接文件,因此将仓库范围的规则放在根目录下,将特定区域的规则放在嵌套文件夹中。将个人偏好保留在您的全局文件中;它们是关于您的,而不是关于项目的。

项目技能放入仓库中的 .agents/skills。如果您在此项目上使用的某项技能存在于您的主文件夹中,请将其复制到仓库中,以便云任务和团队成员能够获取它。如果您之前使用过自定义提示词,将 Codex 自定义提示词转换为技能涵盖了这一转变。

来自您本地记忆的持久项目事实放入已签入的文档中。将它们写成带有原因的简明陈述,如果每个任务都需要它们,请在 AGENTS.md 中进行链接。

然后创建环境。在网页端或桌面应用中,选择 Work in,然后选择 Cloud,接着选择 Create environment,并选择您的仓库。让 Codex 检查它们并准备配置。利用对话告诉它您在步骤 1 中涵盖的习惯:启动哪些服务、固定哪些版本。Codex 会将其记录在安装脚本和启动技能中,后者是“启动服务并检查它们是否准备就绪的指令”。

妥善处理访问权限。对程序直接读取的值使用环境变量,对发送到特定 HTTPS 服务的凭据使用网络机密(network secrets),对每个人提供的值使用个人保险库(Personal vault)。对于共享环境,OpenAI 指出,共享会传递要求:“共享环境会共享这些要求,而不是您的个人凭据。”

决定任务可以访问什么。如果您的工作流需要包注册表或内部 API,请在环境的互联网访问设置下添加它们,并在配置期间进行测试。OpenAI 指出了一个值得记住的限制:“允许目标并不意味着提供凭据或授予该服务中的权限。”仓库和连接的应用也是如此:“仓库访问和个人连接取决于运行任务的帐户。”使用您共享环境的同事将使用他们自己的访问权限,而不是您的。

审查配置报告,然后发布。记住这两者的区别:“保存会存储配置;某些设置会立即应用于活动配置。发布则会捕获准备好的文件系统以用于新任务。”

步骤 3:启动任务并询问它加载了什么

从已发布的云环境启动一个新任务,并在给它分配实际工作之前问它几个直接的问题。让它列出它加载的指令来源。询问哪些技能可用。让它运行项目的测试命令。OpenAI 自己的 AGENTS.md 文档在本地也使用相同的检查,要求 Codex 列出它加载的指令来源。

将答案与您在步骤 1 中的列表进行对比。任何缺失的内容仍然留在您的机器上。

然后将该环境用于实际任务,并留意重复的纠正。如果您发现自己对云任务重复说同样的话,那么这个事实应该属于仓库或环境,而不是写在后续消息中。

最后,保护成果。“提交重要工作或保存您需要的输出。保存的状态不能代替版本控制。”任务的状态在有限的时间内是可恢复的;而提交是永久性的。

在 MemoryLake 中进行设置

该解决方案将规范放入仓库,将配置放入环境中。但有些上下文两者都不适用:为什么架构是这样的、跨多个仓库做出的决策,以及无论任务是在 Codex Cloud、本地会话还是完全在另一个智能体中运行都适用的经验教训。MemoryLake 是一个保存该层的地方,它独立于任何单一机器或环境。

You write the entries yourself, in your own words. Nothing is read out of, written to, or deleted from your Codex memories, your cloud environments, your repositories, or any vendor's store.

步骤 1:创建 API 密钥

登录并从控制面板生成一个密钥。按照您的环境期望凭据的方式存储它,以便它不会留在您的仓库中。

MemoryLake 控制台显示 API 密钥屏幕,在此处创建并复制新密钥以在智能体中使用
MemoryLake 控制台显示 API 密钥屏幕,在此处创建并复制新密钥以在智能体中使用

步骤 2:上传您的第一批记忆

从步骤 1 中关于原因而非规则的项目事实开始:为什么拆分服务、放弃了哪种方法、依赖项约束保护了什么。每个条目记录一个决策,并注明日期。

MemoryLake 工作区显示首批上传的文档,列出了每个文件成为可搜索记忆时的状态
MemoryLake 工作区显示首批上传的文档,列出了每个文件成为可搜索记忆时的状态

步骤 3:连接您的 AI 和智能体

连接 Codex 和您团队使用的其他智能体。这样,无论任务是在本地还是在云端运行,都可以获得相同的背景信息。

MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和智能体框架
MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和智能体框架

这在实践中带来了什么改变

第一个区别是云任务的表现与本地任务一样。它们所需的指南已被提交,因此每个任务的第一条消息都可以是关于工作本身,而不是关于配置。

第二个区别是团队成员获得了相同的起点。共享环境加上仓库级别的指令和技能,意味着同事的任务起点与您的完全相同。

第三个区别是本地记忆重新变回了一种便利。必须始终适用的规则存在于文件中,因此本地记忆只会让您自己的会话更加顺畅。对于更广泛的问题,请参阅为什么 Codex 会遗忘项目上下文。

第四个区别是在不同界面之间移动时不再丢失上下文。ChatGPT Work、本地 Codex 和 Codex Cloud 各自在不同的地方运行,在 ChatGPT Work 云端和本地之间保持上下文中介绍了这种模式。当上下文存在于共享文件和共享记忆层中时,使用什么界面就没那么重要了。

Codex 云环境的最佳实践

将团队规则提交到仓库的 AGENTS.md。 将全局文件留给个人偏好。

将项目技能移入 .agents/skills。 个人技能保留在您的电脑上。

将本地记忆转化为文档。 持久的事实属于文件。

在环境中描述启动过程。 让 Codex 将其记录为安装脚本和启动技能。

为每个机密选择合适的位置。 变量、网络机密或个人保险库(Personal vault)。

更改配置后重新发布。 然后启动一个新任务来使用它。

用一个简短的任务检查每个新环境。 在给它分配实际工作之前,询问它加载了什么。关于智能体在不同工具中实际加载了什么,请参阅编码智能体实际读取了什么。

结论

Codex 云环境使您可以轻松地从共享、可重用的配置中远程运行任务。任务启动时包含的内容就是环境和仓库提供的内容。您的全局 AGENTS.md、个人技能和本地记忆都与您的机器绑定,OpenAI 明确表示个人技能不会同步,本地文件也不会传输。

因此,将项目上下文移到任务可以读取的地方。将规范放入仓库的 AGENTS.md 中,将技能放入 .agents/skills 中,将持久事实放入已签入的文档中,并将配置放入环境中。然后通过询问任务加载了什么来检查每个新环境。

将项目背后的原因保留在每个智能体都能访问的层中,云端就不再是一个任务起点比您本地还要低的地方。

常见问题

什么是 Codex 云环境?

OpenAI 将其描述为“任务使用的可重用配置:仓库、依赖项、工具和访问设置”。Codex 会检查您的仓库,与您一起准备配置,并且每个新任务都会从已发布的云环境中获得自己独立的 workspace。

我的个人 Codex 技能可以在云任务中使用吗?

OpenAI 表示:“存储在仓库中的技能在云任务中可用。来自您本地电脑的个人技能不会同步到云环境。”请将项目技能复制到仓库中的 .agents/skills。

云任务会读取我的全局 AGENTS.md 吗?

Codex 的全局 AGENTS.md 存在于您电脑上的 Codex 主目录中(默认为 ~/.codex)。云环境文档指出本地文件不会自动传输到任务中,因此请将团队规则放在仓库的 AGENTS.md 中。

Codex 记忆会结转到云任务中吗?

本地 Codex 记忆存储在您机器上的 Codex 主目录下。OpenAI 建议将所需的指南保存在 AGENTS.md 或已签入的文档中,并将记忆视为一个召回层。

云任务的状态会保留多久?

默认情况下,在您最后一次开始一轮对话或恢复任务后,任务保存的虚拟机状态最多可恢复七天。OpenAI 建议提交重要工作,因为保存的状态不能代替版本控制。

任务中的更改会更新环境吗?

不会。OpenAI 表示,任务中的文件更改不会更新可重用的环境。要更改起点,请编辑环境的配置,重新发布它,然后启动一个新任务。