直接对 WorkBuddy 说「帮我创建一个 XX 专家团」,它用内置 expert-manager 流程问你信息 → 生成文件 → 跑校验 → 注册。你只管补充需求,不用碰命令行。
适合:非技术背景、想快速做出自己的团、只自己用。
自己写 plugin.json + agents/*.md,再用脚本校验、注册。本站「实战七步」就是这条路。
适合:要精确控制每个字段、批量造、做可复用的专家团。
这是最省事的方式。WorkBuddy 自带「专家包管理器」技能,你用自然语言描述需求,它走完 init → 填内容 → 校验 → 注册 全流程,并在「我的专家」里出现。
不用开终端。直接发一句话告诉它你要建什么——类型、领域、成员。下面这段可直接复制改几个字。
帮我创建一个 WorkBuddy 专家团,名称「保险规划顾问团」,领域是家庭保险规划(分类 08-FinanceInvestment)。包含一个主理人和 3 个成员:
- 主理人 顾周全(保障规划总监,负责拆任务、汇总交付)
- 成员 问需明(需求洞察师,测算保障缺口与预算)
- 成员 比优劣(产品对比师,对比主流险种与产品)
- 成员 配周全(方案架构师,输出保障方案与核保提示)
请按 expert-manager 规范生成 plugin.json、agents MD、头像,并跑校验和注册。
WorkBuddy 会逐项确认。提前想好这几样,回答更快:
agent;多角色协作 → team(系统也会按结构自动判断)。生成后 WorkBuddy 会自动校验(0 错误才注册)。注册成功,专家就出现在 WorkBuddy 的专家中心 → 我的专家,可直接召唤。
~/.workbuddy/plugins/marketplaces/my-experts/plugins/,校验规则和文件级完全一样——标签不是 3 个、成员缺主理人照样会被拦下。想完全掌控字段、批量造、或做可分享的市场包,走文件级。核心是写对一个目录 + 两份文件,再用脚本校验注册。下面七步,配合真实保险团的字段值。
my-experts/plugins/insurance-planning-advisor/
├─ .codebuddy-plugin/
│ ├─ plugin.json ← 包的"身份证":类型/名字/标签/成员
│ └─ settings.json ← 仅 team 需要:默认调度模式
├─ agents/
│ ├─ insurance-planning-advisor-team-lead.md ← 主理人
│ ├─ insurance-needs-analyst.md ← 成员
│ ├─ insurance-product-comparator.md
│ └─ insurance-plan-architect.md
├─ avatars/ ← 头像 PNG(团队 N+1 张,512×512)
└─ README.md
单角色选 agent,多角色选 team。categoryId 按主要输出物选(如输出保障方案 → 08-FinanceInvestment),共 12 类,见规范手册。
python3 scripts/init_expert.py insurance-planning-advisor \
--type team \
--path $WORKBUDDY_CONFIG_DIR/plugins/marketplaces/my-experts/plugins
--path 必须是专家目录,别的目录生成的专家 WorkBuddy 检测不到。Windows 默认即 ~/.workbuddy/plugins/marketplaces/my-experts/plugins。初始化后生成的模板长这样,所有位置都是 [TODO] 占位符——把每个占位符换成你的真实内容即可:
{
"name": "[TODO: kebab-case 唯一标识,如 insurance-planning-advisor]",
"version": "1.0.0",
"description": "[TODO: 英文一句话描述]",
"expertType": "[TODO: agent 或 team]",
"agentName": "[TODO: 主 Agent 名,须=agents/ 下 MD 文件名]",
"displayName": { "en": "[TODO]", "zh": "[TODO: 中文花名]" },
"profession": { "en": "[TODO]", "zh": "[TODO: 中文职业头衔]" },
"displayDescription": { "en": "[TODO]", "zh": "[TODO: 中文描述 40-50 字]" },
"avatar": "avatars/[TODO].png",
"categoryId": "[TODO: 如 08-FinanceInvestment]",
"defaultInitPrompt": { "en": "[TODO]", "zh": "[TODO: 首条推荐提示词]" },
"plugin": "[TODO: 同 name]",
"tags": [ {en,zh},{en,zh},{en,zh} ], // 固定 3 个
"quickPrompts": [ {en,zh},{en,zh},{en,zh} ] // 固定 3 个,第1条=defaultInitPrompt
}
下表是保险团填好的关键字段,对照着把上面的 [TODO] 换成真实值:
| 字段 | 保险团真实值 | 规则 |
|---|---|---|
expertType | "team" | 单角色=agent,多角色=team |
displayName / profession | 保险规划顾问团 / 同左 | team 两者须一致 |
displayDescription | 「为家庭测算保障缺口与预算,横向对比主流险种与产品,输出可落地的家庭保障方案、投保与核保提示。」 | 中文 40–50 字 |
categoryId | 08-FinanceInvestment | 按主要输出物选 |
tags | 需求测算 / 产品对比 / 方案设计 | 恰好 3 个 |
quickPrompts | 3 条(首条=开场提问) | 恰好 3 个 |
members | 顾周全(lead)+问需明+比优劣+配周全 | 必含 lead |
每个成员一个 agents/{id}.md。主理人文件名必须带团队前缀(如 insurance-planning-advisor-team-lead.md),正文含「团队成员表 + SOP + 协作铁律」;成员正文含「核心能力 + 工作流程 + 输出规范 + SendMessage 回传」。frontmatter 禁止写 tools。
用 ImageGen 按规范生成(团队 N+1 张,512×512 PNG)。本站三个团用 PIL 离线生成品牌头像,不耗积分,你也可手绘后替换(PNG/JPG ≤500KB)。
python3 scripts/validate_expert.py <expert-dir>
# ✅ Expert package is valid! (0 error 才继续)
python3 scripts/register_expert.py <expert-dir> --session-id $CODEBUDDY_SESSION_ID
name/agentName/目录名/MD 文件名是唯一定位标识,改了等于丢专家,需重建。下面是这个团的配置示例(已精简展示关键部分)。照这个结构抄,你就能做出自己的团。
{
"name": "insurance-planning-advisor",
"expertType": "team",
"agentName": "insurance-planning-advisor-team-lead",
"teamInfo": {
"leadAgent": "insurance-planning-advisor-team-lead",
"memberAgents": ["insurance-needs-analyst",
"insurance-product-comparator",
"insurance-plan-architect"]
},
"displayName": { "zh": "保险规划顾问团" },
"profession": { "zh": "保险规划顾问团" }, // team 须与 displayName 一致
"displayDescription": { "zh": "为家庭测算保障缺口与预算,横向对比主流险种与产品,输出可落地的家庭保障方案、投保与核保提示。" },
"categoryId": "08-FinanceInvestment",
"tags": [ {"zh":"需求测算"}, {"zh":"产品对比"}, {"zh":"方案设计"} ], // 恰好 3 个
"quickPrompts": [
{"zh":"帮我给一家三口做一份保障规划,年收入 30 万,想先覆盖大病和意外。"},
{"zh":"重疾险和医疗险到底有什么差别?我家该优先买哪个?"},
{"zh":"帮我对比三款热门增额终身寿的现金价值和IRR。"}
],
"members": [
{"id":"insurance-planning-advisor-team-lead","displayName":{"zh":"顾周全"},"profession":{"zh":"保障规划总监"},"role":"lead"},
{"id":"insurance-needs-analyst","displayName":{"zh":"问需明"},"profession":{"zh":"需求洞察师"},"role":"member"},
{"id":"insurance-product-comparator","displayName":{"zh":"比优劣"},"profession":{"zh":"产品对比师"},"role":"member"},
{"id":"insurance-plan-architect","displayName":{"zh":"配周全"},"profession":{"zh":"方案架构师"},"role":"member"}
]
}
---
name: insurance-planning-advisor-team-lead
displayName: { zh: 顾周全 }
profession: { zh: 保障规划总监 }
maxTurns: 180
---
# 保险规划顾问团 - 主理人
你是主理人顾周全,负责把复杂需求拆给专家、汇总产出、交付最终方案。只做编排,不替成员写专业内容。
## 团队成员
| 成员 ID | 名字 | 职责 |
|---------|------|------|
| ...-team-lead | 顾周全 | 编排调度、汇总交付 |
| insurance-needs-analyst | 问需明 | 需求洞察师 |
| insurance-product-comparator | 比优劣 | 产品对比师 |
| insurance-plan-architect | 配周全 | 方案架构师 |
## 标准工作流程(SOP)
### Phase 1(并行)
- 问需明 → 测算缺口与预算;比优劣 → 产品对比矩阵;配周全 → 草拟方案骨架
### Phase 2(串行)
- 配周全 → 汇总成完整方案,补核保与投保提示
### 最终报告:结论先行 → 关键依据 → 行动清单 → 风险提示
## 团队协作铁律
- 团队创建只能由主理人执行;成员产出必须回传主理人汇总
- 严禁主理人代写成员专业内容、严禁成员互相直连
---
name: insurance-needs-analyst
displayName: { zh: 问需明 }
profession: { zh: 需求洞察师 }
maxTurns: 50
---
# 需求洞察师 - 问需明
你只做自己领域内的专业产出,不替其他成员发言。
## 核心能力
1. 家庭画像:从收入/负债/抚养比/已有保单抽取变量
2. 缺口测算:倍数法 + 责任法分别测算各险种应保额
3. 预算匹配:在预算内给优先级与分阶段配置建议
## 工作流程
1. 收集家庭结构、收入负债、已有保障
2. 双重测算各险种应保额
3. 对照已有保单找重叠与缺口,输出优先级清单
## 输出规范
- 家庭风险剖面表 / 建议保额区间 / 分阶段路线图
## SendMessage 回传
分析完成后,必须通过 SendMessage 将完整结果回传给主理人。
plugin.json 与 agents/*.md 按这个结构写进你的包目录,跑通校验后就能在 WorkBuddy 专家中心召唤。想看更多行业,去 行业专家团 栏目。多了或少了校验直接报错。满 3 个想加新标签,先删旧的。
主理人要在 members 里且 role:"lead";teamInfo.memberAgents 里不能再写主理人。
team 型两者必须相同,否则校验失败。
任何字段改动都重跑 register;name/目录名/MD 文件名是标识,改了等于重建。