360 Secure SkillHub
360 安全技能中心

subagent-timeout-config

核心功能:原子配置OpenClaw三个关联超时字段,内置TTL约束验证,提供快速(调试)、日常(开发)、耐心(长任务)三种预设,支持自定义值;自带自动备份、原子写入、可选网关重启、预览模式,保障配置安全。典型场景:交互式调试、日常开发、大型代码重构等。通过CLI命令调用,输出配置结果或预览差异,支持查看当前配置、指定自定义路径。

songhonglei
songhonglei
热度 23.16
最近更新 2026-06-20 20:21:46
分类:开发依赖:代码执行 / 读写文件 / 第三方 API应用场景:DevOps / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add subagent-timeout-config
Metadata
name
subagent-timeout-config
description
One-click subagent timeout configurator for OpenClaw. Configures the three related fields (agents.defaults.timeoutSeconds + subagents.runTimeoutSeconds + acp.runtime.ttlMinutes) atomically with built-in TTL constraint validation (ttlMinutes * 60 ≥ runTimeoutSeconds). Three preset profiles — quick (60s/1h/1h, fast feedback), normal (3min/2h/2h, everyday dev), patient (5min/3h/3h, long-running tasks) — plus --custom for arbitrary values. Auto-backup before write, optional gateway auto-restart, --dry-run preview. Triggers: "set subagent timeout", "subagent 超时", "配置 timeout", "调整超时", "subagent timeout config", "openclaw timeout", "tool call timeout".

subagent-timeout-config

One-click timeout configurator for OpenClaw subagents. Set the three related timeout fields atomically with built-in constraint validation, automatic backup, and optional gateway restart.

⚠️ OpenClaw-only by default — reads/writes ~/.openclaw/openclaw.json. Use --config <path> to target a different runtime's JSON config file.


Why this skill exists

OpenClaw timeouts are split across three nested fields that must be tuned together:

Field Path What it controls
timeoutSeconds agents.defaults.timeoutSeconds Per-tool-call wait
runTimeoutSeconds agents.defaults.subagents.runTimeoutSeconds Per-subagent task budget
ttlMinutes acp.runtime.ttlMinutes ACP session lifetime

Hidden trap: ttlMinutes * 60 must be ≥ runTimeoutSeconds, otherwise sessions die before subagents finish. Default OpenClaw values (30s / 30min / 30min) are too tight for many real-world tasks (codex/claude-code planning, large refactors, complex analysis).

This skill picks the right combination in one command, validates the constraint, backs up the original config, and restarts the gateway.


Preset Profiles

Profile timeoutSeconds runTimeoutSeconds ttlMinutes Use case
quick 60s (1min) 3600s (1h) 60min (1h) Fast feedback, interactive debugging
normal 180s (3min) 7200s (2h) 120min (2h) Everyday development
patient 300s (5min) 10800s (3h) 180min (3h) Long-running tasks, big codebases

Aliases: impatient / fast → quick, slow → patient.


Usage

Preview before applying (recommended first time)

python3 <skill-install-path>/scripts/set_timeout.py --profile normal --dry-run

Apply a profile (with auto-restart)

python3 <skill-install-path>/scripts/set_timeout.py --profile patient

Apply without restarting Gateway

python3 <skill-install-path>/scripts/set_timeout.py --profile normal --no-restart
# Then later, when you're ready:
openclaw gateway restart

Custom values

# Format: timeoutSeconds,runTimeoutSeconds,ttlMinutes
python3 <skill-install-path>/scripts/set_timeout.py --custom 240,9000,150

Check current configuration

python3 <skill-install-path>/scripts/set_timeout.py --status

List all profiles

python3 <skill-install-path>/scripts/set_timeout.py --list

Target a non-default config path

python3 <skill-install-path>/scripts/set_timeout.py \
  --profile normal --config /path/to/your/openclaw.json
# Or via env:
OPENCLAW_CONFIG=/path/to/openclaw.json python3 <...>/set_timeout.py --profile normal

Workflow (when the agent invokes this skill)

  1. Ask the user which profile suits their task (or accept --custom).
  2. Show --dry-run diff first when the user is unsure.
  3. Apply with default settings (auto-backup + auto-restart).
  4. Confirm new settings via --status.
  5. If validation fails (e.g. TTL too small), explain the constraint and offer a corrected value.

Safety Features

  • Auto-backup: Before every write, the original config is copied to <config>.bak.<YYYYMMDD-HHMMSS>. Restore by cp if needed.
  • Atomic write: New config is written to a .tmp file then renamed, so a crash mid-write never leaves a corrupt JSON.
  • Constraint validation: Refuses to apply invalid combos (e.g. ttlMinutes too small for runTimeoutSeconds). Validation runs before any file modification — --dry-run and real applies both validate.
  • Restart opt-out: --no-restart lets you defer the Gateway restart (useful when you have a long-running task you don't want to interrupt).

CLI Reference

Flag Description
--profile <name> Apply preset: quick / normal / patient (+ aliases)
--custom T,R,TTL Apply custom values (3 comma-separated integers)
--status Print current configuration
--list List all available profiles
--config <path> Override config file path (default ~/.openclaw/openclaw.json)
--dry-run Preview diff; do not write file or restart Gateway
--no-restart Skip openclaw gateway restart after writing

Exit codes: 0 = success, 1 = error (bad args, IO, validation failure).


Dependencies

  • Python 3.8+ (standard library only — no pip dependencies)
  • openclaw CLI on PATH (only needed for the auto-restart step; use --no-restart if you don't have it)

What This Skill Is NOT

  • Not a generic timeout tool — it only knows about OpenClaw's three specific fields. For other agent runtimes' config formats, use --config to point at a custom JSON path but be aware the schema is OpenClaw-specific.
  • Not a persistent daemon — it's a one-shot CLI invocation.
  • Not a profile editor — to add a new preset, edit PROFILES in scripts/set_timeout.py.

Key Files

File Purpose
scripts/set_timeout.py Configurator: profiles, validation, backup, restart