关于 autonomous-skill
autonomous-skill 是用于通过多个 Codex 会话执行长期任务的技能,采用 Initializer 与 Executor 双 Agent 流程。它按任务保存清单和会话记录,并支持继续运行和恢复上下文。
主要功能
- 01Initializer 与 Executor 双 Agent 流程
- 02跨 Codex 会话延续任务
- 03按任务隔离清单与记录
- 04列出任务及完成进度
- 05恢复最近会话上下文
适用场景
- 01分阶段构建 REST API
- 02跨多个会话执行重构
- 03查看并继续未完成任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ feiskyer/ codex-settings --skill autonomous-skill安装后在 Claude Code 中输入/autonomous-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/run-session.shtemplates/executor-prompt.mdinitializer-prompt.mdtask-list-template.md详细介绍
自主技能 - 长时间运行的任务执行
使用双 Agent 模式(初始化器 + 执行器),通过 Codex 非交互模式自动延续会话,跨多个会话执行复杂的长时间运行任务。
快速开始
使用 run-session.sh 脚本管理自主任务:
# Start a new autonomous task
~/.codex/skills/autonomous-skill/scripts/run-session.sh "Build a REST API for todo app"
# Continue an existing task
~/.codex/skills/autonomous-skill/scripts/run-session.sh --task-name build-rest-api-todo --continue
# List all tasks and their progress
~/.codex/skills/autonomous-skill/scripts/run-session.sh --list
# Show help
~/.codex/skills/autonomous-skill/scripts/run-session.sh --help
运行器有意不设置 --model,因此 Codex 默认使用当前生效的 config.toml 或所选配置文件中的模型。
目录结构
所有任务数据都存储在项目根目录下的 .autonomous/<task-name>/ 中:
project-root/
└── .autonomous/
├── build-rest-api/
│ ├── task_list.md # Master task checklist
│ ├── progress.md # Session-by-session notes
│ ├── session.id # Last Codex session ID for resumption
│ └── session.log # Codex stdout/stderr transcript with JSON events
├── refactor-auth/
│ ├── task_list.md
│ ├── progress.md
│ └── session.id
└── ...
这样可以并行运行多个自主任务,互不冲突。
脚本选项
Usage:
run-session.sh "task description" Start new task (auto-generates name)
run-session.sh --task-name <name> --continue Continue specific task
run-session.sh --list List all tasks
run-session.sh --help Show help
Options:
--task-name <name> Specify task name explicitly
--continue, -c Continue existing task
--no-auto-continue Don't auto-continue after session
--max-sessions N Limit to N sessions
--list List all existing tasks
--resume-last Resume the most recent Codex session
--network Enable danger-full-access sandbox for tasks that need broader shell access
工作流概览
User Request → Generate Task Name → Create .autonomous/<task-name>/ → Execute Codex Sessions
↓
┌───────────────┐
│ task_list.md │
│ exists? │
└───────┬───────┘
│
┌───────────────────────┴───────────────────────┐
│ NO YES │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ INITIALIZER │ │ EXECUTOR │
│ - Analyze │ │ - Read state │
│ - Break down │ │ - Next task │
│ - Create │ │ - Implement │
│ task_list │ │ - Mark done │
└───────────────┘ └───────────────┘
│
▼
┌───────────────┐
│ All complete? │
└───────┬───────┘
│
┌───────────────┴───────────────┐
│ NO YES │
▼ ▼
Auto-continue Exit with success
(3 sec delay)
使用示例
示例 1:启动新任务
~/.codex/skills/autonomous-skill/scripts/run-session.sh "Build a REST API for todo app"
输出:
ℹ Generated task name: build-rest-api-todo
==========================================
SESSION 1 - build-rest-api-todo
==========================================
==========================================
INITIALIZER SESSION
==========================================
Task: Build a REST API for todo app
Task Name: build-rest-api-todo
Task Directory: .autonomous/build-rest-api-todo
[Codex creates task_list.md with 25 tasks...]
✓ Initializer session complete
ℹ Session ID saved: 550e8400-e29b-41d4-a716-446655440000
=== Progress: 0/25 ===
Continuing in 3 seconds... (Press Ctrl+C to pause)
示例 2:继续现有任务
~/.codex/skills/autonomous-skill/scripts/run-session.sh --task-name build-rest-api-todo --continue
示例 3:使用会话上下文恢复任务
# Resume the Codex session (preserves conversation context)
~/.codex/skills/autonomous-skill/scripts/run-session.sh --task-name build-rest-api-todo --continue --resume-last
示例 4:列出所有任务
~/.codex/skills/autonomous-skill/scripts/run-session.sh --list
输出:
==========================================
AUTONOMOUS TASKS
==========================================
✓ build-rest-api-todo (25/25 - 100% complete) [session: 550e8400...]
○ refactor-auth (12/30 - 40%) [session: 661f9511...]
? incomplete-task (no task_list.md)
示例 5:使用网络访问
# Enable network access for tasks that need API calls
~/.codex/skills/autonomous-skill/scripts/run-session.sh --network "Fetch data from GitHub API and analyze"
关键文件
每个任务在 .autonomous/<task-name>/ 中都有以下文件:
| 文件 | 用途 |
|---|---|
task_list.md | 主任务列表,包含复选框进度 |
progress.md | 按会话记录的进度备注 |
session.id | 用于恢复任务的上一个 Codex 会话 ID |
session.log | Codex 会话的 JSON Lines 输出 |
重要说明
- 任务隔离:每个任务都有自己的目录,互不冲突
- 任务命名:根据描述自动生成(小写、用连字符分隔,最多 30 个字符)
- 任务列表至关重要:绝不要删除或修改任务描述,只能标记
[x] - 每个会话一次只处理一个任务:专注于彻底完成任务
- 自动继续:会话会在延迟 3s 后自动继续;按 Ctrl+C 暂停
- 恢复会话:使用
--resume-last保留 Codex 对话上下文 - 已配置的模型:运行器不会传入
--model;它使用当前生效的 Codex 配置/配置文件模型 - 网络模式:
--network会将沙盒覆盖设置切换为danger-full-access,同时保持审批策略为非交互式 - Git 清理:可考虑将
.autonomous/添加到.gitignore,以免提交日志
Codex CLI 参考
该脚本会在内部使用以下 Codex 命令。有意使用配置覆盖而非 --full-auto,以确保无人值守运行不会继承当前 CLI 中的 on-request 审批设置:
# Non-interactive execution with file edits (fully autonomous)
# Uses the configured model from the active Codex config/profile
codex exec \
-c 'approval_policy="never"' \
-c 'sandbox_mode="workspace-write"' \
--skip-git-repo-check \
--json \
"prompt"
# Resume previous session
codex exec resume \
-c 'approval_policy="never"' \
-c 'sandbox_mode="workspace-write"' \
--skip-git-repo-check \
--json \
<SESSION_ID> \
"prompt"
# Full access (file edits + shell network / unrestricted filesystem) - use with caution!
codex exec \
-c 'approval_policy="never"' \
-c 'sandbox_mode="danger-full-access"' \
--skip-git-repo-check \
--json \
"prompt"
故障排除
| 问题 | 解决方案 |
|---|---|
| 找不到任务 | 运行 --list 查看现有任务 |
| 有多个任务 | 使用 --task-name 指定任务名称 |
| 会话卡住 | 检查任务目录中的 session.log |
| 需要重新开始 | 删除任务目录并重新开始 |
| 恢复失败 | 移除 session.id 以启动新会话 |
| 运行因等待审批而暂停 | 确保更新后的运行器使用 -c approval_policy="never" 覆盖项 |
| 找不到 Codex | 安装 Codex CLI:npm install -g @openai/codex |
评论
支持 Markdown