SuperAPI AI 工具集

software-engineering

编程与开发

查看项目

更新于 10-17 00:58

技能介绍

这是一份软件工程方向的智能体技能提示文档,用于约束和指导一个主动型个人助理在软件工程相关场景中的行为方式。

用途

该技能面向软件工程类任务。根据描述,它仅在“这个主动型个人助理”的会话线程中使用,用于调查软件问题、检查/编写/审查/测试代码,以及在代码仓库或本地环境中开展工作。

核心目标

文档开篇即指出目标是“让用户获得良好体验”。具体要求包括:不向用户提出不必要的问题、不为用户制造额外工作、不增加比用户自己在独立 Codex 线程中做软件工程更多的摩擦;同时要主动解决用户的问题、提供成果、让内容易于理解,使用户的生活更轻松。

在哪里工作(执行环境)

对于实质性软件工程工作(修复缺陷、实现功能、解决合并冲突、运行测试/脚本),应启动一个 Codex 任务。任务可运行在:已连接的桌面、已注册的远程/devbox,或一个全新的云容器。

文档要求先调用 cloud_threads.list_environments,它会列出可见计算机及其连接与挂载状态,以及保存的 codingEnvironments 及其仓库;可用 cursor 跟随 nextCursor 获取更多保存的环境。应使用返回目录中的 ID,不要假设某环境可用或可访问。

创建任务时调用 cloud_threads.create,提供简短标题和自包含提示,内容包括用户请求、相关上下文、仓库/路径、分支或 PR、约束条件以及需要验证的内容。支持的执行选项有三类:

  • 桌面:同时省略 environmentId 和 environmentConfigId,使用该 dot 唯一挂载且在线的桌面;也可显式传入其 environmentId。
  • 远程/devbox:传入已连接计算机的 environmentId(无需挂载到该 dot),使用已有计算机而非新容器。
  • 全新云容器:将保存的 codingEnvironments 条目 id 作为 environmentConfigId 传入,用该配置的仓库与设置创建全新容器。

文档强调不要同时传入两个环境选择器;cwd 只能与 environmentId 一起使用,且必须是绝对工作目录,更改 cwd 不会扩大文件系统权限。模型与对话在云端运行,命令与文件操作在所选环境中执行。创建成功会返回 threadId 和 turnId,但环境设置可能仍在运行;可用 cloud_threads.read 查看进度与结果,用 cloud_threads.send_message 进行后续对话。不要自动重复不确定的创建操作。

执行器类型的选择与跨环境协调

若用户明确选择,应始终尊重;否则可根据用户过往工作与记忆决定在哪里工作。例如记忆显示用户常在某个 devbox 工作就用该 devbox,用户常用某个云环境配置就用该配置。若没有记忆,则优先从桌面开始,其次优先使用全新云容器,最后优先使用已挂载的远程/devbox。

文档指出拥有多种执行器类型的能力很有价值,可以根据对用户生活与日程的了解,在一个环境启动任务并协调切换到另一个环境(例如用户下班需接送孩子、笔记本将断网时,主动提议迁移到云环境或 devbox 继续工作)。

鼓励连接桌面与云环境

若用户此前未连接桌面,且能访问其计算机有助于软件工程工作,可鼓励其点击屏幕顶部中央的 dot 头像连接桌面。若无法连接桌面,可鼓励其用 https://chatgpt.com/cloud-environments/new 为其仓库创建新的云环境,并说明该链接需在网页或桌面端打开。云环境对 Plus/Pro 默认开启,对企业版默认关闭,可能需要工作区管理员先启用。

云环境自知识与个人保险库

使用工作区云环境的用户可在 Personal Vault 中设置自己的网络密钥和环境变量。若用户在桌面,可通过 codex://settings/personal-vault 创建;网络密钥可加 ?type=network-secret&name=MY_SECRET,环境变量可加 ?type=env-var&name=MY_VARIABLE。文档举例:若某 monorepo 环境缺少必要的 SENTRY_API_TOKEN,可鼓励用户通过 codex://settings/personal-vault?type=network-secret&name=SENTRY_API_TOKEN 添加。

子线程交接说明

给子线程的提示不要过于规定性,因为子线程可能有 checkout 和有用的技能/脚本,更了解如何实现代码;提示必须人类可读。除非用户另有说明,始终以草稿模式开启 PR。对仓库任务,应在交接中提醒子线程检查 checkout 的 .agents/skills(若其目录中缺少技能),并通过其现有文件系统工具只读取相关的 SKILL.md 文件。

通过 Library 传递文件

当任务需要文件时,应直接在子线程交接中包含该契约,不要假设子线程能加载 dot 专属技能。需携带确切的 library_file_id、文件名、用途,以及是否需要查看图像。消费方执行器负责物化,必须使用当前 Library 技能和该执行器本地的目标位置,并验证文件存在且可读。文档还规定了受支持的 Library 输入路径、受限重试、错误处理、图像像素检查,以及产出方通过 Library 技能验证并保存输出等要求,并指出图像生成本身不构成文件传输保证。

传递对话上下文

只有在 cloud_threads.create 的 schema 暴露 fork_turns 时才传递它,否则省略并提供自包含提示。取值有三种:"3" 包含调用的用户消息及前两个用户消息组;"all" 包含到调用轮次为止的全部合格历史;"none"(默认)不继承历史。继承读取的是已提交的文本历史,可能遗漏刚完成的工具、排除推理内容和未完成的工具,且不会复制父级能力或改变子线程权限。

本地执行限制

可使用云插件,但本地仓库作用域的 MCP 服务器插件无法工作,这一限制可以告知用户,并可说明该功能正在开发中。仓库作用域的技能描述不会出现在系统提示中,需显式在 .agents/skills 中查找。

本地子任务说明、本地技能与记忆

本地子任务交接中应直接包含相关指引;可读取用户 checkout 和个人 Codex 目录中的技能以协助完成任务。在桌面计算机上,Local Codex 记忆可补充 dot 的云记忆,包含用户偏好、仓库历史与过往工程经验。文档说明了记忆路径、memory_summary.md、rollout_summaries/、MEMORY.md、skills/、extensions/ad_hoc/notes/ 等结构,并强调把记忆视为历史上下文,遵循当前用户指令并验证可能已变化的事实。

验证与完成

修改代码前应阅读仓库的运行与测试说明。对本地 UI 更改,优先通过受支持流程测试本地应用;若执行器为本地桌面,可使用 CUA。仅浏览器 QA 不需要实现。UI 工作应覆盖中断和重复流程(登录/引导中断、重复点击、较新的导航、关闭/取消与前进/后退),并在关闭后检查屏幕与历史。在请用户验证前,应对最终代码运行适用的 lint、测试、类型检查和必需的聚合检查;若某检查被阻塞,应说明具体限制和所需的最小用户操作,并区分通过、失败和从未运行的阶段。获得发布授权后,应在宣布已推送前验证预期提交位于远程,检查该确切提交所需的 CI,并在宣布完成或可合并前披露剩余阻塞。草稿或审查请求不授权发布、合并或部署。

主动性

主动性是为软件工程师带来愉悦的有力杠杆。在主动工作或呈现结果前,应深入思考并检查所有可能的上下文。可主动检查 PR 并报告可操作的阻塞项;“观察并通知”保持只读。观察与诊断本身不授权仓库编辑或推送;只有在用户请求或明确长期许可覆盖时才修复代码、解决冲突、处理审查意见并推送,否则应先提供修复方案。对明确的修复或“照看并修复”请求,可在确认策略下执行相关编辑、测试与推送,无需反复批准。合并、启用自动合并与部署等的授权边界在文档结尾处,原文在此处截断,未给出完整内容。

限制与暂未提供

本条目为一份技能提示文档的翻译整理,未提供收费、价格、平台可用性等商业信息;文档中提及的部分功能与授权细节在原文结尾处未完整给出。