news 2026/9/29 21:29:12

Squad 开源架构深析:SDK+CLI 双包 Monorepo 设计原理与贡献者入门指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Squad 开源架构深析:SDK+CLI 双包 Monorepo 设计原理与贡献者入门指南

Squad 开源架构深析:SDK+CLI 双包 Monorepo 设计原理与贡献者入门指南

【免费下载链接】squadSquad: AI agent teams for any project项目地址: https://gitcode.com/gh_mirrors/squad4/squad

Squad 是一个「人类主导的 AI agent 团队」运行时,通过 npm workspaces 将项目组织为SDK + CLI 双包 Monorepo:@bradygaster/squad-sdk提供多智能体编排核心,@bradygaster/squad-cli提供命令行界面。本文带你读懂这套架构的设计原理,并给出一份可上手的贡献者入门指南,帮你在一个下午内跑通构建、测试与 PR 流程。

上图为 Squad 用 TypeDoc 从 squad-sdk/src/ 源码自动生成的 API 参考文档首页,可见 SDK 对外暴露的类型体系。

什么是 Squad?

Squad 让你在 GitHub Copilot 中获得一支「AI 开发团队」:描述你要构建的东西,它会提议一支由前端、后端、测试、技术负责人等角色组成的团队。

  • 成员即文件—— 每个 agent 以charter.md、history.md等形式存活于仓库中,跨会话持久化;
  • 上下文隔离—— 每个成员只读自己的知识、写回自己学到的内容,全程可审查;
  • 人类掌舵—— 优先级、审批、最终变更始终由人负责。

架构上,Squad 由两大 npm 包组成,外加文档站、测试集与 GitHub 工作流模板,全部放在同一个 Monorepo 里协同演进。

Monorepo 全景:一个仓库,两个独立发布的包

Squad 使用 npm workspaces 管理仓库,根 package.json 中声明:

"workspaces": ["packages/*"]

这意味着一次npm install就会自动把两个本地包链接起来 ——squad-cli可以直接 importsquad-sdk,无需先发布到 npm。整体结构如下:

squad/ ├── packages/squad-sdk/ # 运行时 SDK:@bradygaster/squad-sdk ├── packages/squad-cli/ # 命令行工具:@bradygaster/squad-cli ├── src/ # .NET 预览包 Squad.Agents.AI ├── docs/ # Astro 文档站与功能文档 ├── templates/ # 角色/技能/工作流模板(随包分发) ├── test/ # 200+ 测试文件(Vitest) ├── samples/ # 面向 SDK 消费者的示例项目 └── scripts/ # 构建、CI 校验、健康检查脚本

为什么拆成两个包?

这是典型的「内核 + 外壳」分层设计:

包职责依赖方向
squad-sdk核心运行时、agent 编排、工具注册、配置、遥测零 CLI 依赖,只依赖@github/copilot-sdk
squad-cli命令解析、交互 shell、终端渲染、安装升级单向依赖 squad-sdk

这种单向依赖带来三个直接好处:

  1. SDK 可独立消费—— 第三方可以在自己的应用(如 .NET 项目、Azure Function)中直接引用 SDK,而不必拉进 CLI;仓库中 samples/ 目录提供了十几个真实消费示例;
  2. 独立版本演进—— 两个包使用 changesets 独立发版:改 SDK 只 bump SDK,改 CLI 只 bump CLI;
  3. 边界清晰—— 终端渲染逻辑不会污染运行时,运行时升级也不会破坏命令接口。

上图为 Squad 官方文档站的全文搜索界面(pagefind),贡献者本地可通过npm run docs:dev体验同一套文档站效果。

读懂 SDK:一个包的 30+ 个模块

SDK 的源码组织在 packages/squad-sdk/src/ 下,按能力切分为 20+ 个子目录,核心包括:

  • agent 编排层:coordinator/(协调者路由)、agents/、roles/
  • 运行时层:runtime/ —— 事件总线、流式输出、OpenTelemetry 遥测、跨 squad 通信、调度器
  • 能力扩展层:tools/(工具注册)、skills/(技能加载)、marketplace/(插件市场)、hooks/
  • 持久化层:state/、storage/、memory/

对外 API 通过 package.json 的exports字段精细暴露 —— 从./coordinator、./tools到./runtime/otel共 50 余个子路径,每个能力都可单独按需 import。这种细粒度 exports map 既控制了包体积,也让 CLI 与外部消费者都能只取所需。

而 CLI 侧的 packages/squad-cli/src/cli/ 则按commands/(命令)、shell/(交互式 REPL)、core/(环境探测、squad 目录解析)组织,最终由cli-entry.ts打包为全局squad命令。

贡献者入门:从克隆到 PR 的五步流程

Squad 对新人非常友好 —— 完整的贡献规范写在 CONTRIBUTING.md 中。以下是精简后的核心路径。

第一步:环境准备与克隆

  • Node.js ≥ 20(推荐 ≥ 22.5,与engines字段一致)
  • npm ≥ 10(workspaces 支持)
git clone https://gitcode.com/gh_mirrors/squad4/squad cd squad npm install

npm install完成后,workspaces 已自动链接两个本地包,这是 Monorepo 开发体验的第一层红利。

第二步:构建与本地调试

npm run build # 先编译 SDK,再编译 CLI(顺序有依赖) npm test # Vitest 全量测试 npm run lint # tsc 严格模式类型检查

想让squad命令直接指向本地构建,只需一条 link 命令,改代码后重建即可自动生效,无需重装:

npm run dev:link

验证是否生效:squad version应显示-preview版本标签。

第三步:分支与提交规范

  • 分支命名:用户名/issue号-短描述(如bradygaster/217-readme-help-update);
  • 提交前必须三关全过:编译 → 测试 → 类型检查;
  • 代码风格严格:strict: true、禁止@ts-ignore、ESM-only、结构化错误处理。

第四步:Changeset 与 PR 流程

这是 Monorepo 独立版本管理的落地机制:只要改动触及packages/squad-(sdk|cli)/src/或受管模板路径,PR 就必须附带一个 changeset:

npx changeset add

PR 建议先以 Draft 创建,CI 全绿后再转「Ready for review」。仓库有一个自动 PR 就绪检查(见 scripts/pr-readiness.mjs),会自动核对:单提交、非草稿、已 rebase 到dev、changeset 存在、无冲突、CI 通过。

第五步:理解测试体系

测试分布在三层,也是新功能该在哪里写测试的参考:

  • test/ —— 根级集成/单元/旅程测试(test/journey-*.test.ts模拟真实用户旅程);
  • test/cli/ —— CLI 命令行为测试(init、cast、watch、upgrade 等 40+ 文件);
  • test/acceptance/ —— 基于 Gherkin feature 文件的验收测试。

改动 CLI 命令对应去test/cli/,改动运行时行为对应去根级test/,这是最稳的贡献路径。

架构速记:记住这三句话

  1. SDK 是内核,CLI 是外壳—— 依赖永远单向流动,SDK 保持纯净可嵌入;
  2. changesets 驱动独立发版—— 两个包版本解耦,PR 附 changeset 是硬性流程;
  3. agent 即文件—— 团队状态、角色宪章、历史学习全部落盘为 Markdown,架构的「持久化」靠文件而非黑盒数据库。

想深入了解某个子系统,建议从对应源码目录与 docs/proposals/ 下的设计文档入手 —— 重要变更在写代码前都必须先有提案,这也是读懂 Squad 架构演进的最好材料。

【免费下载链接】squadSquad: AI agent teams for any project项目地址: https://gitcode.com/gh_mirrors/squad4/squad

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 21:28:16

HEVC(H.265) 相关网站资源汇总:TaoToken 统一 Key 接入 AI 工具配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 21:28:15

qwen3.8:27b 配 TaoToken:settings.json 骨架与报错排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 21:25:35

OpenHarmony+Flutter实现运动分析应用:从传感器采集到数据可视化

1. 项目是怎么立项的:为什么要做运动分析1.1 痛点与场景事情的起因其实挺朴素。我自己一直在用一款健康类App记录每日步数和运动情况,但用了一段时间后发现,绝大多数方案的记录都停留在“计步”层面:告诉你今天走了八千步&#xf…

作者头像 李华
网站建设 2026/9/29 21:25:31

可操控电脑的开源 AI 工具 OpenClaw 3.1.0,可视化部署完整实操

🔹 工具简述 OpenClaw 是一款备受开发者与办公人群青睐的开源本地智能工具,凭借离线本地运行、可视化图形面板、全流程自主任务处理三大核心特点,积累了众多忠实用户。与普通对话类 AI 产品不同,它能够直接调用电脑的软硬件操作权…

作者头像 李华
网站建设 2026/9/29 21:25:31

国内大学生常用的AI论文写作工具有哪些?

国内高校学生常用的 AI 论文写作工具,以本土化全流程工具为主,结合通用大模型与专项功能模块,覆盖选题、文献综述、大纲搭建、初稿撰写、语言润色、降重修改、查重检测及格式排版等关键环节,以下是主流工具详解与对比:…

作者头像 李华