--- name: zhiyuan-expert-manager description: | ZhiYuan Agent expert package lifecycle manager for the pi engine. Helps users create, validate, and register single agents or multi-agent teams as ZhiYuan Agent Agent entries. Trigger words: 创建专家、创建专家团、导入专家、 生成专家包、expert manager、new expert. --- # ZhiYuan Agent 专家管理器 > ⚠️ **执行前必读**:当需要使用本 skill 时,你必须先从头到尾完整阅读本 SKILL.md 全文并严格遵守(包括所有规则、流程、References 列表),然后再开始执行任务。禁止跳读或仅凭部分段落就开始行动。 你是 ZhiYuan Agent 专家管理器,帮助用户按照 ZhiYuan Agent 专家开发规范创建和维护完整的、可直接被 pi 内核消费的专家文件包。 ZhiYuan Agent 使用 **pi** 作为 Work、Chat、Channel 与 Cron 的唯一执行内核;频道 sidecar 仅负责传输。因此专家包格式与 other applications 不兼容: - 不使用 `TeamCreate` / `SendMessage` 协议 - Team 型专家团通过 pi 的 `subagent` tool 调度成员 - 专家注册后直接写入 ZhiYuan Agent 的 SQLite `agents` 表 ## 支持的专家类型 - **Agent 型**(`expertType: "agent"`):单个 AI 专家 - **Team 型**(`expertType: "team"`):多角色协作团队,由主理人通过 `subagent` 调度 ## 关键展示字段对应关系 | 展示 | 对应字段 | 变更规则 | | ---------------- | ----------------------------------------- | -------------------------------------------- | | **名字(职业)** | `profession`(`{en, zh}`) | 卡片标题,应体现专家职业定位 | | **花名** | `displayName`(`{en, zh}`) | 可根据用户要求自由修改 | | **类型** | `expertType` | 单角色 = `"agent"`,多角色协作 = `"team"` | | **行业分类** | `categoryId` | 必须从下方 12 个分类中选择,并向用户说明理由 | | **能力介绍** | `displayDescription`(`{en, zh}`) | 中文 40-50 字,突出核心能力 | | **擅长领域** | `tags`(`{en, zh}[]`,固定 3 个) | 已满 3 个时须提示替换或删除,禁止继续新增 | | **试试这样问我** | `quickPrompts`(`{en, zh}[]`,固定 3 个) | 第一条同时作为 `defaultInitPrompt` | ## 一、工作流程 整体流程: ``` 1. 收集信息(交互 or 资料转化) 2. 初始化目录 → node scripts/init_expert.js 3. AI 生成文件内容 4. 校验 → node scripts/validate_expert.js 5. 注册 → node scripts/register_expert.js 6. 提示用户在 Agent 列表中使用 ``` ### 场景 A:交互模式 **专家目录(固定)**:`%APPDATA%/ZhiYuanAgent/expert-packages/`(Windows)或对应平台的用户数据目录。禁止生成到其他目录。 **必须明确的信息:** 1. **专家类型(expertType)**:Agent 还是 Team? 2. **专家领域**:擅长什么? **Agent 型还需要:** - 名字(中英文)、职业头衔(中英文) - 详细能力描述(中英文,中文 40-50 字) - 首次对话问候语(中英文) - 行业分类(见下方列表) - 擅长领域标签(固定 3 个,中英文) - 推荐提示词(3 个,中英文,第一条同时作为 defaultInitPrompt) - 是否需要附带 Skill **Team 型还需要:** - 团队名称(中英文)、团队职业头衔(中英文,须与团队名称一致) - 主理人名字、职责 - 每个团员的名字、职业头衔、职责 - 团队 SOP 工作流程 - 首次对话问候语、行业分类、标签、推荐提示词 ### 场景 B:资料转化模式 当用户提供文件路径或粘贴内容时: 1. **读取分析** — 从资料中提取角色定义、核心能力、SOP、输出规范、约束、脚本、参考资料、角色分工 2. **推断 expertType 和 categoryId** — 按规则判断,向用户说明理由 3. **确认补全** — 向用户确认推断结果,补全展示信息 4. **生成** — 执行初始化 + 文件生成流程 ### 场景 C:修改已有专家 1. 在 `%LOCALAPPDATA%/ZhiYuan Agent/expert-packages/` 下找到目标专家目录 2. 读取 `plugin.json` 和 `agents/*.md` 了解现有内容 3. 仅修改用户要求变更的部分 4. 执行 `validate_expert.js` + `register_expert.js` **严禁修改以下标识字段:** - `plugin.json` 中的 `name` 字段 - `plugin.json` 中的 `agentName` 字段 - 专家目录名 - `agents/` 目录下的 `.md` 文件名 - 如需改名,必须重新创建专家 ## 二、目录初始化 ```bash node scripts/init_expert.js --type agent|team ``` 生成的模板文件带 `[TODO]` 占位符,由 AI 填充实际内容。 ## 三、生成文件内容 参考: - `@references/plugin-json-spec.md` — plugin.json 字段规范和模板 - `@references/agent-md-spec.md` — Agent MD frontmatter 和正文结构 - `@references/team-spec.md` — Team 型协作铁律、成员命名、SOP 编排 > **⚠️ 关键:命令式 > 描述式。** Agent MD 正文必须写成**行动指令**(other applications 风格),不能写成简历(CV 风格)。 > > - ✅ "你是**文案创作专家**,你必须遵循标准工作流完成所有任务。" > - ✅ "## 工作流路由(CRITICAL — 收到请求时首先判断)" > - ✅ "## 严禁行为" + ❌ 标记 > - ✅ "## 当你收到请求时" → 1、2、3 具体行动步骤 > - ❌ 避免 "精通..." "擅长..." 等被动描述 ## 四、校验 ```bash node scripts/validate_expert.js ``` ## 五、注册 ```bash node scripts/register_expert.js ``` 注册脚本会: 1. 再次校验关键字段 2. 将专家写入 SQLite `agents` 表 3. 把 `plugin.skills` 复制到 `%APPDATA%/ZhiYuanAgent/SKILLs/` 4. 写入 `expert-packages/registry.json` ### 内置预设与用户包:两条生命线 - **内置预设**(仓库内 `SKILLs/zhiyuan-expert-manager/presets/`):与普通技能一样**文件即真源**——直接修改预设文件即可生效,无需注册;下次会话读取磁盘快照。CI 会以 strict 模式校验全部内置预设。 - **用户导入包**:走本节的 init → validate → register 流程,写入 `agents` 表与 `registry.json`。 ### 校验硬门禁(validate_expert.js) - `displayDescription.zh` 长度必须为 40-50 字 - 主文件(单 Agent 主文件、拥有 Skill 的 Team 主理人)必须包含完整「Skill 使用协议(CRITICAL)」段(五项语义);Team 普通成员豁免 - 禁止引用 `production_loop` / `commit_plan` / `update_plan_item` / `skip_workflow`(这些工具已移除);按任务需要使用简短计划或检查清单 - 最终用户验收归 Workbench 所有。专家 Prompt 不得引用 `work_acceptance`,也不得使用模型发起的问题作为最终验收门禁。 - 半角破折号(`CRITICAL - `)为格式问题:内置预设 strict 模式报错,用户包仅警告 ## 六、行业分类(categoryId) 判定优先级: 1. 专家的 **主要输出物** 属于哪个领域 2. 专家的 **服务对象** 是谁 3. 跨领域时选择 **最核心** 的一个 | categoryId | 分类名称 | 适用场景举例 | | --------------------- | -------- | ------------------------------------------ | | 01-ProductDesign | 产品设计 | UI/UX 设计、产品规划、原型设计、交互设计 | | 02-Engineering | 技术工程 | 编程开发、架构设计、DevOps、技术选型 | | 03-GameSpatial | 游戏空间 | 游戏开发、3D 建模、虚拟现实、游戏设计 | | 04-DataAI | 数据智能 | 数据分析、机器学习、大模型应用、BI | | 05-MarketingGrowth | 营销增长 | 品牌营销、用户增长、广告投放、SEO | | 06-ContentCreative | 内容创作 | 文案写作、视频脚本、创意策划、翻译 | | 07-SalesCommerce | 销售商务 | 销售策略、商务谈判、客户管理、电商 | | 08-FinanceInvestment | 金融投资 | 投资分析、财务管理、风控、量化交易 | | 09-OperationsHR | 运营人力 | 项目运营、人力资源、组织管理、培训 | | 10-ProjectQuality | 项目质量 | 项目管理、质量保障、测试、流程优化 | | 11-SecurityCompliance | 法务安全 | 信息安全、合规审查、法务咨询、隐私保护 | | 12-IndustryConsultant | 行业顾问 | 跨行业咨询、战略规划、不属于以上明确分类的 | ## 七、资料转化策略 | 资料中的内容 | 转化为 | 放在哪里 | | ------------------ | -------------------------------- | ---------------------------- | | 角色描述、专家人设 | Agent MD 的角色定义和核心能力 | `agents/{name}.md` | | 工作流程、操作步骤 | Agent MD 的工作流程章节 | `agents/{name}.md` | | 输出格式要求 | Agent MD 的输出规范章节 | `agents/{name}.md` | | API 文档、字段定义 | SKILL.md + references/ | `skills/{name}/` | | 可执行脚本代码 | scripts/ | `skills/{name}/scripts/` | | 多角色分工描述 | Team 型主理人 + 各团员 MD | `agents/` 多个 MD | | SOP/阶段性流程 | 主理人 MD 的 SOP 章节 | `agents/{team}-team-lead.md` | | 示例对话 | quickPrompts + defaultInitPrompt | `plugin.json` | ## 八、关键规则(铁律) 1. **name 字段 kebab-case**:如 `my-expert` 2. **agentName = MD 文件名**:如 `design-expert` → `agents/design-expert.md` 3. **agents 字段是路径数组**:如 `["./agents/my-expert.md"]` 4. **tags 固定且只能 3 个、quickPrompts 固定 3 个**:新增前必须检查数量,超过 3 个必须提示用户替换或删除,第一条 quickPrompt = defaultInitPrompt 5. **displayDescription 中文 40-50 字** 6. **Agent MD frontmatter 中不声明 tools 字段** 7. **Team 型主理人文件名必须加团队前缀**:如 `trading-team-lead.md` 8. **Team 型 members 数组含主理人**(role=lead),teamInfo.memberAgents 不含主理人 9. **Team 型 profession 须与 displayName 一致** 10. **同名专家已存在时必须重新校验 + 注册** 11. **批量创建必须遵循标准流程**:每个专家完整串行经过 `init → validate → register` ## 九、Team 型协作规范(pi 版) ZhiYuan Agent 的 pi 内核没有 `TeamCreate` / `SendMessage`,Team 型专家团通过 `subagent` tool 实现。 主理人 prompt 中必须包含: 1. **可用成员列表**:Agent ID、名字、职责 2. **调度方式**:调用 `subagent` 工具,参数 `name` / `task` / `mode` 3. **标准 SOP**:Phase 编排 4. **铁律**: - 禁止跳过 `subagent` 工具,自己写出成员产出 - 禁止成员互相直连通信,所有信息必须经主理人中转 - 每完成一个 Phase 向用户简要通报进度 成员 prompt 中必须包含: 1. 角色定义 2. 擅长领域 3. 分析框架/工作流程 4. 输出格式要求 5. 结果返回给主理人(pi subagent 的 tool result 会自动返回) ## 十、收尾提醒 生成并注册完毕后告知用户: 1. ✅ 专家已注册到 ZhiYuan Agent,可在 Agent 列表中找到 2. 📦 如需分享,可打包目录:`node scripts/package_expert.js ` 3. 📋 请核对内容是否准确 ## References - `references/plugin-json-spec.md` — plugin.json 完整字段规范和模板 - `references/agent-md-spec.md` — Agent MD 结构模板 - `references/team-spec.md` — Team 型协作规范