目录

Squad:AI 智能体团队协作框架完全指南

Squad:AI 智能体团队协作框架完全指南

§1 学习目标

学完本文档后,你将能够:

  • 理解 Squad 的核心理念与价值主张
  • 掌握 Squad 的多智能体协作架构
  • 了解 GitHub Copilot Agent 模式的集成方式
  • 学会在不同项目中初始化和配置 Squad 团队
  • 掌握 15 个 CLI 命令的用法
  • 理解团队决策日志和知识积累机制
  • 学会在交互式 Shell 中与智能体团队协作
  • 掌握 SDK-First 模式用 TypeScript 定义团队
  • 了解 Squad 的扩展机制和插件系统

§2 项目概述

2.1 什么是 Squad

Squad(官方仓库:bradygaster/squad)是一个AI 智能体团队协作框架,通过 GitHub Copilot 的 Agent 模式,让你拥有一个完整的 AI 开发团队——包括前端、后端、测试、架构师等多个专业角色。

Squad 的核心理念:一个命令,立即拥有一个与你代码共同成长的 AI 团队。不同于传统 Copilot 的单一助手,Squad 创建的是一支能够跨会话持久化、在项目中积累知识、持续学习和改进的智能体团队。

2.2 核心数据

Stars:     1,532(1.5k)
Forks:     200
贡献者:    11 人
提交:     1,362 次
分支:     36 branches
标签:     38 tags
许可证:   MIT
主要语言: TypeScript 58.5%, JavaScript 34.2%

2.3 版本与发布

版本状态说明
v1.x开发中主分支为 dev,最新功能在 dev
v0.x稳定版可用于生产环境

最新提交:eb69444(2026-03-30)- feat(ci): CI hardening phase 2

2.4 为什么需要 Squad

传统 AI 助手的局限性

单一 AI 助手(如 GitHub Copilot Chat)虽然强大,但存在以下问题:

  • 上下文窗口限制:大型项目无法一次性理解全部上下文
  • 知识无法积累:每次会话都要重新介绍项目背景
  • 专业能力单一:无法同时扮演多个专业角色
  • 跨会话丢失:关闭 IDE 后所有学习和决策都消失

Squad 的解决方案

Squad 通过多智能体团队持久化文件系统解决了这些问题:

传统方式:单一助手 × 无记忆 = 每次重复工作
Squad 方式:专业团队 × 持久化知识 = 持续学习的团队

§3 原理分析

3.1 多智能体协作原理

Squad 的核心是协调式多智能体系统(Coordinated Multi-Agent System)。每个智能体有明确的专业角色,智能体之间通过消息路由决策日志进行协作。

智能体角色分工

角色职责典型任务
Frontend Dev前端开发React 组件、样式、性能优化
Backend Dev后端开发API 设计、数据库、业务逻辑
Tester测试工程单元测试、集成测试、E2E
Architect架构师技术选型、性能规划、安全审查
Lead项目负责人任务分配、进度跟踪、代码审查

智能体间的消息路由

用户消息
    │
    ▼
┌─────────────────┐
│   Coordinator    │  ← 路由智能体
│  (协调者)        │
└────────┬────────┘
         │
    ┌────┴────┬─────────┬─────────┐
    ▼         ▼         ▼         ▼
 Frontend   Backend   Tester   Architect
 (前端)    (后端)    (测试)   (架构)

协调者(Coordinator)接收用户消息,分析任务类型,将任务路由到最合适的智能体,必要时协调多个智能体协作。

3.2 持久化知识机制

Squad 将智能体的"记忆"存储在项目文件中,实现跨会话知识积累:

核心文件结构

.squad/
├── team.md              # 团队配置和成员信息
├── routing.md           # 消息路由规则
├── decisions.md          # 团队决策日志
├── casting/             # 团队角色定义
│   ├── roster.md       # 成员列表
│   └── policy.md       # 协作策略
├── agents/             # 各智能体的上下文
│   ├── frontend/       # 前端智能体的工作区
│   ├── backend/        # 后端智能体的工作区
│   ├── tester/        # 测试智能体的工作区
│   └── architect/      # 架构师的工作区
├── skills/             # 技能/知识积累
│   └── compressed/    # 压缩后的技能知识
├── identity/           # 智能体身份
│   ├── current.md     # 当前焦点
│   └── patterns.md    # 通用模式
└── history/            # 历史会话
    └── sessions/       # 过往会话记录

决策日志(decisions.md)

每次重要决策都会被记录:

# Squad 决策日志

## 2026-03-30 架构决策

### AD-001: 选择 PostgreSQL 作为主数据库
**日期**: 2026-03-30
**提出者**: Architect
**决策**: 采用 PostgreSQL 而非 MongoDB
**理由**: 
- 交易数据需要 ACID 保证
- 团队对 SQL 更熟悉
**影响**: 后端 API 需要适配 Prisma ORM

3.3 GitHub Copilot Agent 模式

Squad 基于 GitHub Copilot 的 Agent 模式实现。Copilot Agent 允许 AI 模型主动执行多步骤任务,而非简单补全代码。

Agent vs Chat 模式对比

维度Chat 模式Agent 模式
交互方式问答自主执行
任务范围单次操作多步骤任务
工具使用有限完整工具集
Squad 集成不支持原生支持

Copilot Agent 的能力

  • 文件系统操作:读取、创建、修改文件
  • Git 操作:提交、分支、合并
  • Shell 命令:运行测试、构建项目
  • 搜索和导航:理解代码结构

3.4 SDK-First 团队定义模式

Squad 支持用 TypeScript 定义团队,而非纯 Markdown 配置:

// team.ts - Squad 团队定义
import { Squad, Agent, Skill } from '@bradygaster/squad-sdk';

const frontend = new Agent({
  name: 'frontend-dev',
  role: 'Frontend Developer',
  skills: [
    Skill.react(),
    Skill.typescript(),
    Skill.tailwindcss(),
  ],
  instructions: '你专注于创建美观、响应式的 React 组件。'
});

const backend = new Agent({
  name: 'backend-dev',
  role: 'Backend Developer',
  skills: [
    Skill.nodejs(),
    Skill.postgresql(),
    Skill.prisma(),
  ],
  instructions: '你专注于构建高性能、安全的 API。'
});

const team = new Squad({
  name: 'full-stack-team',
  agents: [frontend, backend],
  coordinator: 'auto',  // 自动选择协调者
});

export default team;

§4 架构分析

4.1 系统架构

┌─────────────────────────────────────────────────────────────┐
│                         Squad CLI                           │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐    │
│  │   init   │  │  status  │  │  copilot │  │  shell   │    │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬─────┘    │
└───────┼──────────────┼──────────────┼──────────────┼──────────┘
        │              │              │              │
        ▼              ▼              ▼              ▼
┌─────────────────────────────────────────────────────────────┐
│                    .squad/ (本地文件系统)                   │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐      │
│  │ team.md │  │routing │  │decisions│  │ skills/ │      │
│  │         │  │   .md   │  │   .md   │  │         │      │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘      │
└─────────────────────────────────────────────────────────────┘
        │
        ▼
┌─────────────────────────────────────────────────────────────┐
│                   GitHub Copilot Agent                      │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐      │
│  │Frontend │  │Backend  │  │ Tester  │  │Architect│      │
│  │ Agent   │  │ Agent   │  │  Agent  │  │  Agent  │      │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘      │
└─────────────────────────────────────────────────────────────┘

4.2 核心模块

CLI 模块

模块功能入口命令
init初始化 Squadsquad init
upgrade更新 Squad 文件squad upgrade
status查看团队状态squad status
triage自动分类 Issuessquad triage
copilot管理 Copilot 代理squad copilot add/remove
doctor检查设置squad doctor
link连接远程团队squad link
shell交互式 Shellsquad shell
export/import导入导出squad export/import
plugin插件市场squad plugin marketplace
upstream上游管理squad upstream
nap上下文清理squad nap
aspireAspire 仪表盘squad aspire
scrub-emails清理邮箱squad scrub-emails

文件系统模块

模块功能位置
casting团队角色.squad/casting/
agents智能体上下文.squad/agents/
skills技能压缩.squad/skills/
identity身份管理.squad/identity/
history会话历史.squad/history/

4.3 路由机制

Squad 的消息路由由 routing.md 定义:

# Squad 路由规则

## 任务类型 → 智能体映射

### 代码修改任务
- **前端组件** → Frontend Dev
- **API 实现** → Backend Dev
- **数据库修改** → Backend Dev
- **测试用例** → Tester

### 架构任务
- **技术选型** → Architect
- **性能审查** → Architect
- **安全审查** → Architect

### 协作任务
- **代码审查** → Lead + 相关智能体
- **任务分配** → Lead
- **进度报告** → Lead

4.4 协作策略

Squad 的协作策略由 casting/policy.md 定义:

# 协作策略

## 决策机制
- **日常决策**: 各智能体自主决定
- **重要决策**: 需要 Lead 批准并记录到 decisions.md
- **冲突解决**: Architect 作为最终仲裁者

## 并行执行
- 独立任务应并行执行以提高效率
- 需要共享资源的任务应串行执行

## 知识共享
- 每次会话结束后更新 skills/
- 重要发现记录到 decisions.md
- 通用模式记录到 identity/patterns.md

§5 功能详解

5.1 初始化与配置

快速开始

# 1. 创建项目目录
mkdir my-project && cd my-project
git init

# 2. 安装 Squad CLI
npm install -g @bradygaster/squad-cli squad

# 3. GitHub 认证
gh auth login

# 4. 初始化 Squad 团队
squad init

# 5. 启动 Copilot Agent
copilot --agent squad --yolo

squad init 做了什么

$ squad init

✓ 创建 .squad/ 目录结构
✓ 初始化 team.md
✓ 设置默认路由规则
✓ 配置 casting/roster.md
✓ 初始化 decisions.md
✓ 完成!运行 'squad status' 查看团队

5.2 交互式 Shell

squad shell 启动交互式 Shell,支持以下命令:

命令功能
/status显示团队状态
/history查看会话历史
/agents列出所有智能体
/sessions查看会话列表
/resume恢复历史会话
/version显示版本
/clear清除当前会话
/help显示帮助
/quit退出 Shell

使用示例

$ squad shell

🤖 Squad Shell v1.0.0
📁 项目: my-project
👥 团队: 4 名成员 (Frontend, Backend, Tester, Lead)

squad > /status
┌─────────────────────────────┐
│  团队状态                     │
├─────────────────────────────┤
│  Frontend: ✅ 就绪            │
│  Backend:  ✅ 就绪            │
│  Tester:   ✅ 就绪            │
│  Lead:     ✅ 就绪            │
└─────────────────────────────┘

squad > 实现一个用户登录 API
✓ 已路由到 Backend Dev
✓ Backend Dev 正在实现...
✓ 完成!决策已记录到 decisions.md

5.3 自动 Issue 分类

squad triage 监听 GitHub Issues,自动分类和分配:

# 启动自动分类
squad triage --watch

# 手动分类
squad triage classify --issue 123

分类规则

# .squad/triage-rules.yaml
rules:
  - pattern: "前端|UI|组件|样式"
    assignee: frontend-dev
    priority: medium
    
  - pattern: "后端|API|数据库"
    assignee: backend-dev
    priority: high
    
  - pattern: "测试|覆盖|bug"
    assignee: tester
    priority: high
    
  - pattern: "架构|性能|安全"
    assignee: architect
    priority: medium

5.4 Copilot 代理管理

添加前端开发代理

squad copilot add frontend \
  --name "frontend-dev" \
  --role "React/TypeScript 专家" \
  --instructions "你专注于 React 组件、样式优化和用户体验改进"

查看当前代理

$ squad status

👥 Squad 团队配置

┌────────────────┬──────────────────┬────────────┐
│ 智能体          │ 角色              │ 状态       │
├────────────────┼──────────────────┼────────────┤
│ frontend-dev   │ Frontend Dev     │ ✅ 活跃    │
│ backend-dev    │ Backend Dev      │ ✅ 活跃    │
│ tester         │ Tester           │ ✅ 活跃    │
│ architect      │ Architect        │ ✅ 活跃    │
└────────────────┴──────────────────┴────────────┘

5.5 知识管理

技能压缩

Squad 会定期将智能体的学习压缩到 skills/compressed/

# 手动压缩
squad skills compress

# 查看技能列表
squad skills list

上下文清理(nap)

# 查看上下文使用情况
squad nap --stats

# 清理不必要的上下文
squad nap --aggressive

5.6 团队协作

连接远程团队

# 连接到远程团队
squad link https://github.com/org/remote-squad

# 同步知识
squad link --sync

导出/导入团队配置

# 导出
squad export --output team-config.zip

# 导入
squad import team-config.zip

§6 使用说明

6.1 环境要求

  • Node.js 18+
  • Git 2.30+
  • GitHub CLI (gh) 已认证
  • GitHub Copilot 订阅
  • npmyarn

6.2 安装步骤

方式一:npm 全局安装(推荐)

npm install -g @bradygaster/squad-cli squad

# 验证安装
squad --version
# Squad CLI v1.0.0

方式二:使用 npx

# 初始化项目
npx @bradygaster/squad-cli init my-project
cd my-project

# 启动 shell
npx squad shell

方式三:Docker 运行

# 拉取镜像
docker pull bradygaster/squad:latest

# 运行
docker run -it --rm \
  -v $(pwd):/workspace \
  -w /workspace \
  bradygaster/squad:latest squad shell

6.3 GitHub 认证

# 交互式登录
gh auth login

# 验证登录状态
gh auth status
# ✓ Authenticated as Brady Gaster
#   Token scope: repo, copilot, read:org

6.4 团队配置

手动编辑 team.md

# .squad/team.md

## 团队信息
name: my-team
version: 1.0.0
created: 2026-03-30

## 成员列表
members:
  - name: frontend-dev
    role: Frontend Developer
    agent: copilot
    skills:
      - React
      - TypeScript
      - TailwindCSS
    status: active

  - name: backend-dev
    role: Backend Developer
    agent: copilot
    skills:
      - Node.js
      - PostgreSQL
      - Prisma
    status: active

6.5 常用工作流

日常开发

# 1. 启动团队
cd my-project
squad shell

# 2. 分配任务
squad > 帮我实现用户注册功能

# 3. 查看状态
squad > /status

# 4. 退出
squad > /quit

处理 Issue

# 1. 启动 Issue 分类
squad triage --watch

# 2. 查看分配的任务
squad status --issues

# 3. 解决 Issue
squad shell
squad > 修复 #123 登录问题

§7 开发扩展

7.1 创建自定义智能体

创建 .squad/agents/custom-agent/ 目录并添加配置文件:

# .squad/agents/custom-agent/agent.md

## 智能体信息
name: custom-agent
role: Custom Developer
created: 2026-03-30

## 专业领域
- Go 语言开发
- Kubernetes 运维
- DevOps 自动化

## 工作目录
/squad/agents/custom-agent/workspace

## 历史贡献
### 2026-03-30
- 初始创建
- 定义专业领域为 Go + K8s

7.2 插件开发

Squad 支持插件扩展。创建插件:

// plugins/my-plugin/index.ts
import { SquadPlugin } from '@bradygaster/squad-sdk';

export default class MyPlugin implements SquadPlugin {
  name = 'my-plugin';
  version = '1.0.0';

  onInit(squad: Squad) {
    // 注册自定义命令
    squad.registerCommand('my-command', this.handleMyCommand);
  }

  async handleMyCommand(args: string[]) {
    console.log('My custom command:', args);
  }
}

发布插件

# 在 plugins 目录创建插件
mkdir -p .squad/plugins/my-plugin
cd .squad/plugins/my-plugin
npm init -y
# 添加插件代码...

7.3 自定义路由规则

修改 .squad/routing.md 添加自定义路由:

## 自定义路由规则

### Go 相关任务
当任务描述包含以下关键词时:
- "golang"
- "go 服务"
- "grpc"

路由到: custom-agent (Go 专家)

### K8s 相关任务
当任务描述包含以下关键词时:
- "kubernetes"
- "k8s"
- "部署"

路由到: custom-agent (K8s 专家)

7.4 与 GitHub Actions 集成

创建 .github/workflows/squad.yml

name: Squad CI

on:
  push:
    branches: [main, dev]
  pull_request:
    branches: [main]

jobs:
  squad-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          
      - name: Install Squad
        run: npm install -g @bradygaster/squad-cli
        
      - name: Run Squad Tests
        run: |
          squad doctor
          squad copilot add tester --name "ci-tester"
          copilot --agent squad -- non-interactive-test

§8 最佳实践

8.1 团队配置最佳实践

智能体数量控制

  • 建议: 3-5 个核心智能体
  • 原因: 过多智能体会增加协调成本
  • 示例: Frontend + Backend + Tester + Architect(可选) + Lead(可选)

技能清晰定义

## Good Example
skills:
  - React 18 (5年经验)
  - TypeScript (strict mode)
  - TailwindCSS 3.x
  - GraphQL

## Bad Example  
skills:
  - 前端
  - 会写代码

8.2 决策日志记录

应记录的决策

  • 技术选型(数据库、框架、语言)
  • 架构变更
  • API 设计决策
  • 安全相关决策
  • 性能优化方案

不应记录的决策

  • 日常任务分配
  • 个人偏好(除非影响团队)
  • 临时性实验

8.3 知识压缩策略

# 每周压缩一次
squad skills compress --weekly

# 保留最近 10 次会话的完整记录
squad skills prune --keep 10

# 查看压缩率
squad skills stats

8.4 故障排查

Copilot Agent 无响应

# 1. 检查认证状态
gh auth status

# 2. 检查 Squad 设置
squad doctor

# 3. 重启 Shell
squad shell --fresh

路由不准确

# 查看当前路由规则
cat .squad/routing.md

# 测试路由
squad debug route "实现一个登录功能"

§9 常见问题

Q1:Squad 和 GitHub Copilot Chat 有什么区别?

维度Copilot ChatSquad
智能体数量单一多团队
跨会话记忆有(文件系统)
决策日志
专业分工有(角色分工)
适用场景快速问答复杂项目

Q2:需要多少 GitHub Copilot 订阅?

Squad 本身免费,但需要 GitHub Copilot 订阅才能使用 Agent 模式。Copilot Agent 功能通常包含在 Copilot Business 或 Copilot Enterprise 订阅中。

Q3:可以离线使用 Squad 吗?

部分功能可以离线使用:

  • ✅ 读取本地 .squad/ 文件
  • ✅ 查看决策日志
  • ❌ Copilot Agent(需要网络)
  • ❌ GitHub Issues 同步

Q4:如何贡献插件?

  1. Fork squad
  2. plugins/ 目录创建插件
  3. 添加 package.json 和入口文件
  4. 提交 Pull Request

Q5:支持哪些 IDE?

Squad CLI 跨平台,Copilot Agent 支持:

  • ✅ VS Code (原生)
  • ✅ Visual Studio
  • ✅ JetBrains IDEs (通过 Copilot 插件)
  • ✅ Neovim (通过 Copilot.vim)
  • ✅ 命令行 (copilot CLI)

Q6:团队知识是否安全?

是的,Squad 的知识存储在本地 .squad/ 目录:

  • 默认: 仅本地存储
  • 可选: 通过 squad link 连接到远程团队
  • 敏感信息: 建议添加到 .gitignore

§10 总结

Squad 是 AI 开发协作的范式转变——从"一个人与 AI 对话"到"AI 团队与项目共同成长"。

核心价值

  • 多智能体协作: Frontend + Backend + Tester + Architect 专业分工
  • 持久化知识: .squad/ 文件系统积累项目知识
  • 决策可追溯: decisions.md 记录所有重要决策
  • GitHub 原生: 基于 Copilot Agent 模式
  • 可扩展: 支持自定义智能体、插件、路由规则

适用场景

  • 中大型项目(需要多角色分工)
  • 长期维护项目(知识积累价值大)
  • 需要代码审查和架构决策的项目
  • 团队成员需要 AI 辅助的项目

链接资源

  • GitHub 仓库:https://github.com/bradygaster/squad
  • 官方文档:https://github.com/bradygaster/squad#readme
  • 插件市场:squad plugin marketplace
  • 讨论区:https://github.com/bradygaster/squad/discussions

🦞 文档版本 1.0 | 撰写日期:2026-03-31 | 基于仓库 commit eb69444 (2026-03-30)