🧪 Skills

Autonomous Project Management

自主项目管理系统 - 去中心化协调多个子代理并行工作,通过 STATE.yaml 文件实现自主决策和协调,无需中央编排器

v1.0.0
❤️ 0
⬇️ 85
👁 1
Share

Description


name: autonomous-pm description: 自主项目管理系统 - 去中心化协调多个子代理并行工作,通过 STATE.yaml 文件实现自主决策和协调,无需中央编排器 version: "1.0.0" metadata: openclaw: requires: bins: ["node"] optionalBins: ["git"]

自主项目管理系统 (Autonomous PM)

去中心化的项目协调模式,让子代理通过共享状态文件自主工作。

✨ 核心特性

🎯 去中心化协调

  • ✅ 多个子代理并行工作
  • ✅ 通过 STATE.yaml 共享状态
  • ✅ 无需中央编排器瓶颈
  • ✅ 自文档化(所有状态持久化)

📋 STATE.yaml 协调模式

所有代理通过单一真实来源协调:

project: website-redesign
updated: 2026-03-11T14:30:00Z

tasks:
  - id: homepage-hero
    status: in_progress
    owner: pm-frontend
    started: 2026-03-11T12:00:00Z
    notes: "Working on responsive layout"
  
  - id: api-auth
    status: done
    owner: pm-backend
    completed: 2026-03-11T14:00:00Z
    output: "src/api/auth.ts"
  
  - id: content-migration
    status: blocked
    owner: pm-content
    blocked_by: api-auth
    notes: "Waiting for new endpoint schema"

next_actions:
  - "pm-content: Resume migration now that api-auth is done"
  - "pm-frontend: Review hero with design team"

🚀 使用方法

1️⃣ 初始化新项目

cd /Users/xufan65/.openclaw/workspace/scripts

# 创建新项目
node project-manager.cjs my-project init

生成文件:

  • projects/my-project/STATE.yaml

2️⃣ 查看项目状态

node project-manager.cjs my-project status

输出示例:

📊 项目: my-project
🕐 更新: 2026-03-11T14:30:00Z

📋 任务状态:

1. 🔄 [task-001] in_progress
   👤 Owner: pm-my-project
   📝 实现用户认证

2. ✅ [task-002] done
   👤 Owner: pm-backend
   📝 API 端点完成

3. ❌ [task-003] blocked
   👤 Owner: pm-content
   🚫 Blocked by: task-002

🎯 下一步行动:
1. pm-content: Resume migration

3️⃣ 管理任务

开始任务

node project-manager.cjs my-project start task-001 "实现用户认证"

更新任务

node project-manager.cjs my-project update task-001 "进度: 80% 完成"

完成任务

node project-manager.cjs my-project done task-001 "认证已实现"

阻塞任务

node project-manager.cjs my-project block task-002 "task-001"

🎭 PM 代理模式

主会话 = 协调者 ONLY

工作流程:

  1. 新任务到达 → 检查 PROJECT_REGISTRY.md
  2. PM 存在sessions_send(label="pm-xxx", message="[task]")
  3. 新项目sessions_spawn(label="pm-xxx", task="[task]")
  4. PM 执行 → 更新 STATE.yaml,报告回来
  5. 主代理总结 → 给用户

规则:

  • ✅ 主会话:最多 0-2 个工具调用(仅 spawn/send)
  • ✅ PM 拥有自己的 STATE.yaml 文件
  • ✅ PM 可生成子子代理进行并行子任务
  • ✅ 所有状态变更提交到 git

📊 优势对比

传统编排器 自主 PM 优势
❌ 主代理瓶颈 ✅ 并行执行 ⬆️ 3-5x 速度
❌ 频繁上下文切换 ✅ 自主决策 ⬇️ 90% 通信
❌ 手动协调 ✅ 文件协调 ⬇️ 95% 管理
❌ 无审计日志 ✅ Git 历史 ✅ 完整追溯

💡 关键洞察

STATE.yaml > 编排器

文件协调比消息传递更易扩展:

  • ✅ 无需持续轮询
  • ✅ 原生版本控制
  • ✅ 跨会话持久化

Git 作为审计日志

每次更新 STATE.yaml 时提交:

git add projects/my-project/STATE.yaml
git commit -m "Update task-001: in_progress → done"

标签约定

使用 pm-{project}-{scope} 格式:

  • pm-website-frontend
  • pm-api-backend
  • pm-docs-content

轻量主会话

主代理做的越少,响应越快:

  • ❌ 不要: 执行任务、监控进度
  • ✅ 应该: 分配任务、接收报告

🔄 工作流程示例

场景: 网站重构

1. 初始化项目

node project-manager.cjs website-redesign init

2. 用户请求

"重构认证模块并更新文档"

3. 主代理操作

// 检查注册表
if (!hasPM("auth-refactor")) {
  // 生成新的 PM
  sessions_spawn({
    label: "pm-auth-refactor",
    task: "重构认证模块并更新文档。在 STATE.yaml 中跟踪"
  });
  
  // 响应
  respond("已生成 pm-auth-refactor。完成后会报告。");
}

4. PM 子代理操作

// 1. 读取 STATE.yaml
const state = readState("projects/website-redesign/STATE.yaml");

// 2. 分解任务
state.tasks = [
  { id: "refactor-auth", status: "in_progress", ... },
  { id: "update-docs", status: "pending", ... }
];

// 3. 执行任务
// ... 重构代码 ...

// 4. 更新状态
updateTask("refactor-auth", { status: "done" });

// 5. 提交到 git
git commit -am "Complete refactor-auth";

// 6. 报告完成
report("✅ 认证重构完成。文档已更新。");

📁 文件结构

projects/
├── PROJECT_REGISTRY.md      # PM 注册表
├── website-redesign/
│   └── STATE.yaml          # 项目状态
├── api-migration/
│   └── STATE.yaml
└── docs-update/
    └── STATE.yaml

scripts/
└── project-manager.cjs     # 管理脚本

🔧 高级用法

并行子任务

PM 可以生成子子代理:

// PM 子代理
sessions_spawn({
  label: "pm-auth-frontend",
  task: "前端认证组件"
});

sessions_spawn({
  label: "pm-auth-backend", 
  task: "后端 API"
});

任务依赖

tasks:
  - id: task-001
    status: done
  
  - id: task-002
    status: blocked
    blocked_by: task-001  # 等待 task-001 完成

自动解锁

完成任务时自动检查被阻塞的任务:

node project-manager.cjs my-project done task-001

输出:

✅ 任务已完成: task-001

🎯 可以开始的任务:
  - task-002

🎯 最佳实践

1. 保持 STATE.yaml 简洁

  • ✅ 仅记录关键信息
  • ✅ 使用简短但清晰的 notes
  • ❌ 避免存储大量数据

2. 定期提交

# 每次更新后提交
git add projects/*/STATE.yaml
git commit -m "Update project states"

3. 清晰的标签

  • pm-{project}-{scope}
  • ✅ 易于识别和跟踪
  • ❌ 避免模糊的标签

4. 主代理保持轻量

  • ✅ 仅协调和分配
  • ❌ 不要执行具体任务

🔗 相关链接


自主项目管理系统已就绪!开始你的第一个项目吧! 🚀

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs