harness-spawn-subharness-agent
Skill0 starsChanged 8 months agoMITView on GitHub
生成子代理技能,实现完全隔离的子任务执行环境,防止上下文污染
In this repository33 other files it gives its agents.
- harness-10x-productivity-boostSkill
- harness-adjust-granularitySkill
- harness-analyze-project-scaleSkill
- harness-auto-full-executionSkill
- harness-brainstormSkill
- harness-build-context-indexSkill
- harness-build-core-manifestSkill
- harness-build-deterministic-workflowSkill
- harness-check-clean-stateSkill
- harness-configSkill
- harness-context-clearSkill
- harness-determine-granularitySkill
- harness-diagnose-and-improveSkill
- harness-enable-circuit-breakerSkill
- harness-enforce-architecture-guardrailsSkill
- harness-escalate-to-humanSkill
- harness-evaluate-performanceSkill
- harness-evolveSkill
- harness-executing-plansSkill
- harness-generate-feature-listSkill
- harness-goalSkill
- harness-handle-failureSkill
- harness-initSkill
- harness-merge-agent-resultsSkill
- harness-merge-subharness-resultSkill
- harness-monitor-agent-batchSkill
- harness-monitor-subharness-agentSkill
- harness-planSkill
- harness-recover-clean-stateSkill
- harness-schedule-parallel-agentsSkill
- harness-session-handoffSkill
- harness-track-feature-progressSkill
- harness-validate-outputSkill
The file
Files
harness-spawn-subharness-agent 生成子代理技能
核心能力
- 检查前置条件(harness-build-deterministic-workflow)
- 创建子代理隔离目录(.subharness/{task-id}/)
- 初始化子代理文件(SUBTASK_MANIFEST.md, CONTEXT_INDEX.md, STATUS.md)
- 创建 Git worktree 隔离环境
- 注册子代理到全局状态
前置条件
- harness-build-deterministic-workflow 已完成
- WORKFLOW_TEMPLATES.md 存在
执行步骤
Step 1: 检查前置条件
使用 Read 工具读取:.EnjoyHarness/SKILL_REGISTRY.md
检查条件:
- harness-build-deterministic-workflow 已标记为完成
如果未完成:
❌ 错误: 工作流未构建
💡 请先运行: harness-build-deterministic-workflowStep 2: 生成任务ID
使用 Bash 工具生成唯一任务ID:
TASK_TYPE="feature" # 或 "fix" / "refactor" / "docs"
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
TASK_ID="${TASK_TYPE}-${TIMESTAMP}"
echo "任务ID: ${TASK_ID}"Step 3: 创建子代理目录
使用 Bash 工具创建目录:
mkdir -p .subharness/${TASK_ID}
mkdir -p .subharness/${TASK_ID}/WORK_TREE
echo "✅ 子代理目录创建完成: .subharness/${TASK_ID}"Step 4: 创建 SUBTASK_MANIFEST.md
使用 Write 工具创建文件:.subharness/${TASK_ID}/SUBTASK_MANIFEST.md
内容:
---
task_id: {TASK_ID}
parent_task: none
created_at: {TIMESTAMP}
status: pending
priority: MEDIUM
---
# SubTask Manifest
## 任务信息
- 任务ID: {TASK_ID}
- 父任务: 无(根任务)
- 创建时间: {TIMESTAMP}
- 状态: 待执行
- 优先级: 中等
## 任务描述
{任务描述占位符}
## 技能调用链
{待填充}
## 依赖关系
- 上游依赖: 无
- 下游触发: 无
## 成功标准
- [ ] 任务完成
- [ ] 测试通过
- [ ] 输出校验通过
## 失败兜底
- 失败次数 ≥ 3次 → 触发熔断
- 超时 ≥ 30分钟 → 终止执行Step 5: 创建 CONTEXT_INDEX.md
使用 Write 工具创建文件:.subharness/${TASK_ID}/CONTEXT_INDEX.md
内容:
---
task_id: {TASK_ID}
context_priority: P1
loaded_at: null
---
# SubTask Context Index
## 上下文加载策略
### P0级(必需)
- [ ] SUBTASK_MANIFEST.md(本文件)
- [ ] AGENTS_MANIFEST.md(核心规则)
- [ ] ARCHITECTURE_GUARDRAILS.md(架构约束)
### P1级(按任务类型)
- [ ] WORKFLOW_TEMPLATES.md(工作流模板)
- [ ] TOOLSET_SPEC.md(工具配置)
### P2级(按需)
- [ ] ERROR_HANDBOOK.md(错误处理)
- [ ] 相关代码文件
## 上下文隔离规则
1. **禁止访问**: 其他子代理的上下文
2. **仅访问**: 本任务相关文件 + 全局规则
3. **写入限制**: 仅写入本任务目录
## Token预算
- 最大Token: 5000 tokens
- 当前使用: 0 tokensStep 6: 创建 STATUS.md
使用 Write 工具创建文件:.subharness/${TASK_ID}/STATUS.md
内容:
---
task_id: {TASK_ID}
status: pending
started_at: null
completed_at: null
iteration_count: 0
error_count: 0
---
# SubTask Status
## 执行状态
- 状态: 待执行
- 开始时间: 未开始
- 完成时间: 未完成
- 迭代次数: 0
- 错误次数: 0
## 执行进度
- [ ] 初始化完成
- [ ] 工作流开始
- [ ] 节点执行中
- [ ] 结果验证
- [ ] 任务完成
## 事件记录
等待第一个事件...
## Token消耗
- 已使用: 0 tokens
- 剩余: 5000 tokens
- 占比: 0%
## 错误记录
无错误Step 7: 创建 Git Worktree(可选)
如果需要完全隔离的 Git 环境:
# 创建新分支
git checkout -b subtask/${TASK_ID}
# 创建 worktree
git worktree add .subharness/${TASK_ID}/WORK_TREE subtask/${TASK_ID}
echo "✅ Git worktree 创建完成"Step 8: 更新全局状态
使用 Read 工具读取:.EnjoyHarness/GLOBAL_STATE.md
使用 Edit 工具更新:.EnjoyHarness/GLOBAL_STATE.md
在 active_subagents 列表中添加:
active_subagents:
- task_id: {TASK_ID}
status: pending
created_at: {TIMESTAMP}Step 9: 更新事件日志
使用 Edit 工具追加内容到:.EnjoyHarness/EVENT_LOG.md
追加内容:
{TIMESTAMP} | SUBAGENT_SPAWN | harness-spawn-subharness-agent | 生成子代理 {TASK_ID} | SUCCESSStep 10: 更新事件计数
使用 Edit 工具更新:.EnjoyHarness/EVENT_LOG.md
old_string: total_events: N
new_string: total_events: N+1
Step 11: 更新技能注册表
使用 Edit 工具更新:.EnjoyHarness/SKILL_REGISTRY.md
old_string: - [ ] harness-spawn-subharness-agent - 生成子代理技能
new_string: - [x] harness-spawn-subharness-agent - 生成子代理技能 ✅
Step 12: 输出完成信息
使用 Bash 工具输出:
echo ""
echo "✅ harness-spawn-subharness-agent 完成!"
echo ""
echo "📋 子代理信息:"
echo " - 任务ID: ${TASK_ID}"
echo " - 目录: .subharness/${TASK_ID}"
echo " - 状态: 待执行"
echo ""
echo "📂 文件创建:"
echo " - SUBTASK_MANIFEST.md(任务规则)"
echo " - CONTEXT_INDEX.md(上下文索引)"
echo " - STATUS.md(状态追踪)"
echo " - WORK_TREE/(Git worktree)"
echo ""
echo "🔒 隔离机制:"
echo " - 文件系统隔离: ✅"
echo " - Git worktree隔离: ✅"
echo " - Token预算隔离: 5000 tokens"
echo ""
echo "🎯 下一步:"
echo " 运行 harness-monitor-subharness-agent 开始监控子代理"
echo ""成功标准
- 子代理目录创建完成
- SUBTASK_MANIFEST.md 文件存在
- CONTEXT_INDEX.md 文件存在
- STATUS.md 文件存在
- Git worktree 创建成功(可选)
- 全局状态已更新
- 技能注册表已更新
失败兜底
- harness-build-deterministic-workflow 未完成 → 终止执行,提示运行前置技能
- 目录创建失败 → 记录错误到 EVENT_LOG.md,触发重试
- Git worktree 创建失败 → 跳过 worktree,仅使用目录隔离
联动关系
- 前置: harness-build-deterministic-workflow
- 自动触发: harness-monitor-subharness-agent
迭代计数
本技能执行预计迭代次数: 约 8 次(Write 3次 + Edit 4次 + Read 1次)
测试用例
测试 1: 前置条件检查
输入: 在工作流未构建时运行 期望输出: 错误提示"工作流未构建" 验证方式: 删除 WORKFLOW_TEMPLATES.md 后运行
测试 2: 目录创建
输入: 执行 harness-spawn-subharness-agent
期望输出: .subharness/{task-id}/ 目录存在
验证方式: ls -la .subharness/
测试 3: 文件完整性
输入: 检查子代理目录
期望输出: 包含 SUBTASK_MANIFEST.md, CONTEXT_INDEX.md, STATUS.md
验证方式: ls .subharness/{task-id}/
测试 4: 全局状态更新
输入: 读取 GLOBAL_STATE.md
期望输出: active_subagents 包含新生成的任务ID
验证方式: grep "{TASK_ID}" .EnjoyHarness/GLOBAL_STATE.md
测试 5: 技能注册表更新
输入: 读取 SKILL_REGISTRY.md
期望输出: harness-spawn-subharness-agent 标记为完成
验证方式: grep "harness-spawn-subharness-agent" .EnjoyHarness/SKILL_REGISTRY.md
测试 6: 事件日志记录
输入: 读取 EVENT_LOG.md
期望输出: 包含 SUBAGENT_SPAWN 事件
验证方式: grep "SUBAGENT_SPAWN" .EnjoyHarness/EVENT_LOG.md
子代理隔离机制
隔离层级
层级 1: 文件系统隔离
- 独立目录:
.subharness/{task-id}/ - 独立文件: MANIFEST, CONTEXT, STATUS
- 写入限制: 仅本目录
层级 2: Git Worktree 隔离
- 独立分支:
subtask/{task-id} - 独立 worktree:
.subharness/{task-id}/WORK_TREE - 提交隔离: 不影响主分支
层级 3: Token 预算隔离
- 独立预算: 5000 tokens/子代理
- 独立计数: 不影响全局迭代计数
- 超限处理: 终止子代理,触发熔断
层级 4: 上下文隔离
- 仅加载必要上下文(P0 + P1)
- 禁止访问其他子代理上下文
- 防止上下文污染
隔离优势
- 防止上下文污染: 每个子代理独立上下文,避免干扰
- 并行执行: 多个子代理可并行执行不同任务
- 故障隔离: 单个子代理失败不影响其他子代理
- Token控制: 每个子代理独立Token预算,防止超限
- 易于调试: 每个子代理有独立的执行日志和状态
使用示例
示例 1: 生成功能开发子代理
# 任务类型: feature
# 任务ID: feature-20260328-110000
# 目录: .subharness/feature-20260328-110000/
# 状态: pending
# Token预算: 5000 tokens示例 2: 生成Bug修复子代理
# 任务类型: fix
# 任务ID: fix-20260328-110500
# 目录: .subharness/fix-20260328-110500/
# 状态: pending
# Token预算: 5000 tokens示例 3: 并行执行多个子代理
子代理1: feature-20260328-110000 (用户登录功能)
子代理2: fix-20260328-110500 (修复注册Bug)
子代理3: refactor-20260328-111000 (优化数据库查询)
并行执行: 3个子代理同时运行
隔离机制: 完全隔离,互不干扰Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

