PREQSTATION 技能评估
核心用法
PREQSTATION 技能是一个编码代理编排层,用于将自然语言描述的软件开发任务安全地委托给本地 CLI 编码引擎(Claude Code、Codex CLI、Gemini CLI)。其核心设计遵循工作区隔离优先原则:
1. 项目解析:从用户输入提取 engine(默认 claude)、task(项目编号)、objective(执行目标)
2. 路径解析:通过 MEMORY.md 的 Projects 表匹配项目键,支持任务前缀推断(如 PROS-102 → pros)
3. 工作区准备:强制创建 Git worktree,分支命名为 codex/<project_key>,路径隔离于 ${OPENCLAW_WORKTREE_ROOT:-/tmp/openclaw-worktrees}/<project_key>
4. 模板渲染:将用户请求包装为结构化 prompt,明确约束执行范围
5. PTY 安全执行:通过 bash pty:true workdir:<cwd> 启动引擎,支持前台/后台模式及进程生命周期管理
关键执行模式
- One-shot:同步执行短任务
- Background + Poll:异步长任务,支持
list/poll/log/write/submit/kill操作 - PR Review:强制使用临时 worktree 或 clone,禁止在主检出目录执行
显著优点
| 维度 | 优势 |
|------|------|
| **隔离性** | Git worktree + 专用目录彻底隔离任务执行环境,避免污染主工作区 |
| **安全性** | PTY 模式确保交互式 CLI 的正确渲染;明确禁止在 `~/clawd/` 等敏感目录启动代理 |
| **可观测性** | 标准化的进程管理接口(poll/log/write/submit/kill)实现透明监控 |
| **灵活性** | 支持三大多模态编码引擎(Claude/Codex/Gemini),用户可按需指定 |
| **项目治理** | MEMORY.md 集中管理项目映射,支持动态更新和键规范化(小写 kebab-case) |
| **防误用** | 明确的 NOT for 清单排除单行编辑、只读检查等不适用场景 |
潜在缺点与局限性
1. Git 依赖刚性:强制要求项目为 Git 仓库,非 Git 工作流需先配置仓库
2. worktree 开销:每个任务创建独立 worktree,频繁短任务可能产生磁盘/分支垃圾
3. 引擎安全风险:使用 --dangerously-skip-permissions、--dangerously-bypass-approvals-and-sandbox 等标志,完全绕过代码审查沙箱,需用户自行承担执行风险
4. MEMORY.md 单点依赖:项目解析强依赖该文件,未配置时强制中断流程询问用户
5. 输出精简:默认仅返回简短状态,调试需显式请求完整日志
6. 后台任务状态不透明:若代理异常退出或无 milestone 输出,用户可能长时间无感知
适合人群
- 多项目并行开发者:需在统一接口下管理多个代码库的编码任务
- AI 辅助编码实践者:习惯使用 Claude Code/Codex CLI 等工具,需要结构化封装
- 团队技术负责人:需要可审计、可复现的编码代理执行流程
- 安全敏感场景用户:受益于 worktree 隔离,但需理解并承担沙箱绕过风险
常规风险
| 风险类别 | 具体表现 | 缓解建议 |
|---------|---------|---------|
| **代码执行风险** | 代理可能生成并执行破坏性代码(rm、git push --force 等) | 在独立容器/VM 中运行;审查 worktree 变更后再合并 |
| **沙箱绕过** | `--dangerously-*` 标志使代理获得完整主机访问权限 | 限制 `OPENCLAW_WORKTREE_ROOT` 目录权限;避免在含敏感数据的目录使用 |
| **凭证泄露** | 代理可能读取 ~/.env、~/.ssh 等敏感文件 | 设置 `$HOME` 隔离;使用专用服务账户 |
| **资源耗尽** | 后台任务无限运行或循环依赖 | 配置 `timeout` 参数;定期 `process action:list` 清理僵尸会话 |
| **Git 状态污染** | worktree 分支残留或冲突 | 任务完成后显式清理;使用 `git worktree prune` |