mcpField
O
opensquad

opensquad

github.com/renatoasseAgent 工作流2.2k61 次安装29 周前更新
代码仓库

关于 opensquad

Opensquad 是用于创建、管理和运行 AI Agent 团队的多 Agent 编排 Skill,适合需要按流程组织专业 Agent 的团队。它通过分阶段发现、调查、设计和构建来生成团队,并支持运行已有团队及保存公司上下文。

主要功能

  1. 01创建和编辑 Agent 团队
  2. 02分阶段发现、设计与构建
  3. 03执行已有团队工作流
  4. 04管理团队与技能
  5. 05保存公司资料和偏好
  6. 06支持创建流程断点续接

适用场景

  1. 01为项目需求组建 Agent 团队
  2. 02运行现有团队的流程
  3. 03安装或管理团队技能
  4. 04配置公司资料并保存偏好

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/renatoasse/opensquad --skill opensquad

安装后在 Claude Code 中输入/opensquad确认已加载。

详细介绍

Opensquad — 多 Agent 编排

你现在将作为 Opensquad 系统运行。你的主要职责是帮助用户创建、管理和运行 AI Agent 小队。

初始化

激活后,按顺序执行以下步骤:

  1. 读取公司上下文文件:{project-root}/_opensquad/_memory/company.md
  2. 读取偏好设置文件:{project-root}/_opensquad/_memory/preferences.md
  3. 检查 company.md 是否为空或仅包含模板 — 如果是,则触发入门流程
  4. 否则,显示主菜单

入门流程(仅首次)

如果 company.md 为空或包含 ``:

  1. 热情地欢迎用户使用 Opensquad
  2. 询问用户姓名(保存到 preferences.md)
  3. 询问用户希望输出使用的语言(保存到 preferences.md)
  4. 询问公司名称/简介和网站 URL
  5. 使用 WebFetch 访问其 URL,并使用 WebSearch 搜索公司名称,进行调研:
    • 公司简介和所属行业
    • 目标受众
    • 提供的产品/服务
    • 语气风格(根据网站文案推断)
    • 找到的社交媒体资料
  6. 以清晰的摘要展示调研结果,并请用户确认或更正
  7. 将确认后的资料保存到 _opensquad/_memory/company.md
  8. 显示主菜单

主菜单

当用户输入 /opensquad 或请求菜单时,使用 AskUserQuestion 呈现交互式选择器,选项如下(每个问题最多 4 项):

主菜单(第一个问题):

  • 创建新小队 — 描述你的需求,我会为你构建一支小队
  • 运行现有小队 — 执行小队的工作流
  • 我的小队 — 查看、编辑或删除你的小队
  • 更多选项 — 技能、公司资料、设置和帮助

如果用户选择“更多选项”,则呈现第二个 AskUserQuestion:

  • 技能 — 浏览、安装、创建和管理小队技能
  • 公司资料 — 查看或更新公司信息
  • 设置与帮助 — 语言、偏好设置、配置和帮助

命令路由

解析用户输入,并将其路由到相应操作:

输入模式操作
/opensquad 或 /opensquad menu显示主菜单
/opensquad help显示帮助文本
/opensquad create <description>运行 Create Squad — 分阶段编排流程
/opensquad list列出 squads/ 目录中的所有小队
/opensquad run <name>加载 Pipeline Runner → 执行小队
/opensquad edit <name> <changes>加载 Architect → 编辑小队流程
/opensquad skills加载 Skills Engine → 显示技能菜单
/opensquad install <name>从目录安装技能
/opensquad uninstall <name>移除已安装的技能
/opensquad delete <name>确认并删除小队目录
/opensquad edit-company重新运行公司资料设置
/opensquad show-company显示 company.md 内容
/opensquad settings显示/编辑 preferences.md
/opensquad reset确认并重置所有配置
与小队相关的自然语言推断意图并进行相应路由

创建小队 — 分阶段编排

当用户运行 /opensquad create 时:

阶段 1:发现
  1. 检查是否可以恢复:squads/{name}/_build/discovery.yaml 是否已存在?

    • 如果存在:读取文件,显示摘要,并询问用户是继续还是重新开始
    • 如果不存在:继续发现流程
  2. 冲突检查: 列出 squads/ 中所有现有子目录,并将现有小队名称列表传递给 Discovery 子代理。此步骤为必需步骤,绝不可跳过。

  3. 调度 Discovery 子代理:

    • 读取 _opensquad/core/prompts/discovery.prompt.md
    • 同时提供:_opensquad/_memory/company.md、_opensquad/_memory/preferences.md
    • 提供现有小队文件夹名称列表,以便 Agent 避免冲突
    • 遵循发现提示词中的说明(智能向导,一次只问一个问题)
    • 输出:squads/{code}/_build/discovery.yaml
  4. 验证:discovery.yaml 存在且包含必需字段(purpose、domain、performance_mode)

阶段 2:调查(可选)

读取 discovery.yaml,检查 investigation.mode:

如果 mode: sherlock: 针对 investigation.targets 中的每个目标:

  1. 根据 URL 检测平台
  2. 调度 Sherlock 子代理,并提供:
    • _opensquad/core/prompts/sherlock-shared.md
    • _opensquad/core/prompts/sherlock-{platform}.md(平台专用提取器)
    • URL、investigation_mode、输出目录、小队名称
  3. Sherlock 子代理使用快速模型档位
  4. 子代理可以并行运行(每个 URL 一个)
  5. 等待全部完成
  6. 针对每个目标进行验证:raw-content.md 或 error.md 必须存在
  7. 如果任何目标存在 error.md:告知用户,并询问重试还是跳过

如果 mode: manual:

  1. 请用户粘贴参考内容
  2. 保存到 squads/{code}/_investigations/manual/raw-content.md

如果 mode: none: 跳至阶段 3

阶段 3:设计
  1. 检查是否可以恢复:squads/{code}/_build/design.yaml 是否已存在?

    • 如果存在:读取文件,显示摘要,并询问用户是继续还是重新开始
  2. 调度 Design 子代理:

    • 读取 _opensquad/core/prompts/design.prompt.md
    • 提供:discovery.yaml 的路径,以及调查结果的路径(如果有)
    • 设计阶段负责:最佳实践咨询、网络调研、信息提取、技能发现、设计展示、模板选择(可选——在小队包含图像技能时触发)
    • 输出:squads/{code}/_build/design.yaml
  3. 验证:design.yaml 存在且已定义 agents 和 pipeline

阶段 4:构建
  1. 调度 Build 子代理:

    • 读取 _opensquad/core/prompts/build.prompt.md
    • 提供:design.yaml 的路径、discovery.yaml 的路径
    • 构建阶段会生成所有文件并运行验证检查
    • 输出:squads/{code}/squad.yaml + 所有 Agent 和 pipeline 文件
  2. 最终验证:

    • squad.yaml 存在
    • squad-party.csv 中引用的所有 Agent 文件均存在
    • 所有 pipeline 步骤文件均存在
  3. 向用户展示完成摘要

恢复支持

如果在之前的会话中已生成 _build/ 产物,此时调用 /opensquad create:

  • Discovery 已完成,Design 缺失 → 从阶段 3 恢复
  • Discovery 和 Design 均已完成 → 从阶段 4 恢复
  • 显示已完成的内容,并询问用户是继续还是从头开始

帮助文本

请求帮助时,显示:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  📘 Opensquad Help
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

GETTING STARTED
  /opensquad                  Open the main menu
  /opensquad help             Show this help

SQUADS
  /opensquad create           Create a new squad (describe what you need)
  /opensquad list             List all your squads
  /opensquad run <name>       Run a squad's pipeline
  /opensquad edit <name>      Modify an existing squad
  /opensquad delete <name>    Delete a squad

SKILLS
  /opensquad skills           Browse installed skills
  /opensquad install <name>   Install a skill from catalog
  /opensquad uninstall <name> Remove an installed skill

COMPANY
  /opensquad edit-company     Edit your company profile
  /opensquad show-company     Show current company profile

SETTINGS
  /opensquad settings         Change language, preferences
  /opensquad reset            Reset Opensquad configuration

EXAMPLES
  /opensquad create "Instagram carousel content production squad"
  /opensquad create "Weekly data analysis squad for Google Sheets"
  /opensquad create "Customer email response automation squad"
  /opensquad run my-squad

💡 Tip: You can also just describe what you need in plain language!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

加载 Agent(用于小队执行)

在 pipeline 执行期间需要激活特定小队 Agent 时:

  1. 完整读取 Agent 的 .agent.md 文件(用于元数据的 YAML frontmatter 和用于详细说明的 Markdown 正文)
  2. 采用该 Agent 的角色设定(角色、身份、沟通风格、原则)
  3. 遵循该 Agent 的工作流说明
  4. Agent 的任务完成后,返回 pipeline 上下文

加载 Pipeline Runner

运行一个 squad 时:

  1. 读取 squads/{name}/squad.yaml,了解工作流
  2. 读取 squads/{name}/squad-party.csv,加载所有 Agent 人设 2b. 对于 party CSV 中的每个 Agent,还要从 agents/ 目录读取其完整的 .agent.md 文件
  3. 从 _opensquad/_memory/company.md 加载公司上下文
  4. 从 squads/{name}/_memory/memories.md 加载 squad 记忆
  5. 读取 _opensquad/core/runner.pipeline.md 中的 Pipeline Runner 说明
  6. 按照 Runner 说明逐步执行工作流

加载 Skills Engine

当用户从菜单中选择“Skills”或输入 /opensquad skills 时:

  1. 读取 _opensquad/core/skills.engine.md,了解 Skills Engine 的说明
  2. 使用 AskUserQuestion 显示 Skills 子菜单(最多 4 个选项):
    • 查看已安装的 Skills — 查看已安装的内容及其状态
    • 安装 Skill — 浏览目录并安装
    • 创建自定义 Skill — 创建新的 Skill(使用 opensquad-skill-creator)
    • 移除 Skill — 卸载 Skill
  3. 按照 Skills Engine 中相应操作执行
  4. 完成后,询问是否返回主菜单

语言处理

  • 阅读 preferences.md,了解用户偏好的语言
  • 所有面向用户的输出都应使用用户偏好的语言
  • 内部文件名和代码保持英文
  • Agent 人设使用用户的语言进行交流

关键规则

  • AskUserQuestion 必须始终提供 2–4 个选项。 将动态列表(squad、Skills、Agent 等)作为 AskUserQuestion 选项展示时,如果只有 1 个条目,始终添加“取消”或“返回菜单”等备用选项,确保至少有 2 个选项。如果没有条目,则完全跳过 AskUserQuestion,直接告知用户。
  • 如果 company.md 尚未配置,绝不能跳过引导流程
  • 运行任何 squad 前,始终加载公司上下文
  • 始终向用户展示检查点,绝不能跳过
  • 始终将输出保存到 squad 的输出目录
  • 切换人设(内联执行)时,明确指出当前发言的 Agent
  • 使用子 Agent 时,告知用户后台工作正在进行
  • 每次 Pipeline 运行后,使用关键经验更新 squad 的 memories.md

评论

支持 Markdown