Expert
Expert Marketplace
Placement
Experts are shown in the WorkBuddy client. Users click Experts · Skills · Connectors in the left menu to open the secondary menu, choose Experts to enter the Expert Marketplace, then click the horizontal secondary tab Expert Teams to switch to the Expert Team Marketplace.
Users click an expert or expert team to open the details panel and learn more.
Users click Summon Expert to jump to a conversation and invoke the expert.
Expert creation tools
Click My Experts in the upper-right corner of the marketplace, then Create Expert / Create Expert Team.
You are taken into a conversation. Complete the prompt for creating an expert, then start creation.
Why parsing fails on the Open Platform
If zip parsing fails while you are creating a skill on the Open Platform, use Basic structure and Configuration file below to locate the issue. If you still cannot resolve it, email operations at openworkbuddy@tencent.com, or scan the QR code at the bottom of the Open Platform home page to join the developer group.
Basic structure
my-expert/
├── .codebuddy-plugin/
│ └── plugin.json
├── avatars/
│ └── expert.png
├── agents/
│ └── my-expert.md
└── README.md
Configuration file
plugin.json is the expert’s core configuration file. It includes runtime configuration and marketplace display information.
Example
{
"name": "design-experts",
"version": "1.0.0",
"description": "Creates structured DESIGN.md design system documents for projects",
"author": {
"name": "Your Name",
"email": "you@example.com"
},
"agents": ["./agents/design-md-architect.md"],
"expertType": "agent",
"agentName": "design-md-architect",
"displayName": {
"en": "Diana",
"zh": "Diana"
},
"profession": {
"en": "Design System Document Architect",
"zh": "设计系统文档架构师"
},
"displayDescription": {
"en": "Based on the awesome-design-md DESIGN.md standard, creates structured design system documents for projects. Specializes in translating visual design intent into AI-readable Markdown specifications covering 9 standard sections: visual theme, color palette, typography, component styles, layout, depth & elevation, cautions, responsive behavior, and agent prompt guide",
"zh": "基于 awesome-design-md 的 DESIGN.md 规范,为项目生成结构化的设计系统文档。擅长将视觉设计意图转化为 AI 可读的 Markdown 设计规范,涵盖视觉主题、调色板、排版、组件样式、布局、深度与层级、注意事项、响应式行为和代理提示指南 9 大标准章节"
},
"avatar": "avatars/expert.png",
"categoryId": "01-ProductDesign",
"defaultInitPrompt": {
"zh": "帮我生成一份 DESIGN.md 设计系统文档",
"en": "Generate a DESIGN.md design system document for me"
},
"plugin": "design-experts",
"tags": [
{ "en": "Design System", "zh": "设计系统" },
{ "en": "Doc Architect", "zh": "文档架构" },
{ "en": "Token", "zh": "设计令牌" }
],
"quickPrompts": [
{ "en": "Build a design system document", "zh": "搭建设计系统文档" },
{ "en": "Design a token-based system", "zh": "设计令牌化设计体系" },
{ "en": "Create a component spec document", "zh": "创建组件规范文档" }
]
}
Field descriptions
Basic fields
| Field | Required | Type | Description |
| name | ✅ | string | Unique expert ID (lowercase letters and hyphens, e.g. "design-experts") |
| expertType | ✅ | string | Set to "agent" |
| version | ✅ | string | Version number (semantic version, e.g. "1.0.0") |
| description | ✅ | string | Short description in English |
| author | ✅ | object | {name, email} author information |
| agents | ✅ | string[] | List of Agent definition file paths (e.g. ["./agents/my-expert.md"]) |
| agentName | ✅ | string | Agent name (matches the MD file name under agents/, without .md) |
| skills | No | string[] | List of skill directory paths (e.g. ["./skills/my-skill"]) |
| homepage | No | string | Project homepage URL |
| license | No | string | License |
| keywords | No | string[] | Search tags |
Type fields
| Field | Required | Type | Description |
| expertType | ✅ | string | "agent" or "team" |
| agentName | ✅ | string | Name of the primary Agent (matches the MD file name under agents/, without .md) |
| teamInfo | When team | object | See below |
teamInfo structure:
{
"leadAgent": "主理人 Agent 名称",
"memberAgents": ["成员A名称", "成员B名称", "..."]
}
Display fields
| Field | Required | Type | Description |
| displayName | ✅ | {en, zh} | Marketplace display name |
| profession | ✅ | {en, zh} | Professional title |
| displayDescription | ✅ | {en, zh} | Marketplace description. Chinese length must be 40–50 characters and highlight the core capabilities of the expert or expert team |
| avatar | ✅ | string | Avatar path (relative path, e.g. "avatars/expert.png") |
| categoryId | ✅ | string | Industry category (see Industry categories) |
| defaultInitPrompt | ✅ | {en, zh} | Default prompt for the user’s first conversation. Must match the first item in quickPrompts |
| plugin | ✅ | string | Associated Plugin name (same value as the name field) |
| tags | ✅ | {en, zh}[] | Domain tags the expert is good at (exactly 3), used for search and marketplace display |
| quickPrompts | ✅ | {en, zh}[] | Suggested prompts (exactly 3), shown on the expert card to help users ask quickly |
Agent definition file
Agent definition files live under the agents/ directory in Markdown. YAML frontmatter at the top of the file declares configuration; the body is the Agent’s system prompt.
Example
agents/design-md-architect.md:
---
name: design-md-architect
description: Design system document architect based on awesome-design-md standard
displayName:
en: "Diana"
zh: "黛安娜"
profession:
en: "Design System Architect"
zh: "设计系统文档架构师"
maxTurns: 100
---
# 设计系统文档架构师 - Diana
你是一位设计系统文档架构师,基于 awesome-design-md 的 DESIGN.md 规范工作。
## 核心能力
1. **生成 DESIGN.md**:将视觉设计意图转化为结构化的 Markdown 设计规范
2. **9 大标准章节**:视觉主题、调色板、排版、组件样式、布局、深度与层级、注意事项、响应式行为、代理提示指南
3. **AI 可读**:生成的文档格式化为 AI 可直接消费的格式
## 工作流程
1. 了解项目的设计风格和品牌需求
2. 收集现有设计资产(截图、Figma 链接、色值等)
3. 按照 9 大章节结构生成 DESIGN.md
4. 确保文档中的代码示例可直接使用
## 输出规范
- 使用标准 Markdown 格式
- 色值使用 HEX 和 CSS 变量双格式
- 组件样式提供 CSS/Tailwind 示例
- 响应式断点明确标注
Frontmatter field descriptions
| Field | Required | Description |
| name | ✅ | Agent ID (same as the file name, without .md) |
| description | ✅ | Agent capability description (English; used by the AI to decide when to activate) |
| displayName | ✅ | Display name, with en and zh subfields (e.g. {en: "Diana", zh: "黛安娜"}) |
| profession | ✅ | Professional title, with en and zh subfields (e.g. {en: "Design System Architect", zh: "设计系统文档架构师"}) |
| maxTurns | No | Maximum conversation turns (default 50) |
| skills | No | List of preloaded skill names |
About tools
Developers must not add tools themselves: all tool permissions are assigned by the system.
Built-in tools (for reference only; assigned automatically by the system):
| Tool | Description |
| Read | Read files |
| Write | Write files |
| Grep | Search file contents |
| Glob | Find files by pattern |
| Bash | Run command-line commands |
| WebSearch | Search the internet |
| WebFetch | Fetch web page content |
| AgentTool | Call other Agents (available to the lead) |
| SendMessage | Send messages (available to the lead) |
Built-in MCP and connector dependencies (optional)
An expert can declare the MCP services or existing WorkBuddy connectors it depends on at runtime. After declaration, WorkBuddy shows inline guidance cards before the user summons the expert (or expert team), walking the user through each connection; the conversation starts only after connections are complete. Built-in MCP for the expert is managed under Connectors → Custom Connectors after connection.
Simple experts do not need dependency declarations. Declare dependencies only when the expert must call external MCP tools or enterprise connectors to work.
How to declare
Declare dependencies in the dependencies field of plugin.json, or in a .mcp.json file at the plugin root.
Method 1: declare in plugin.json (recommended)
{
"dependencies": {
"mcpServers": "./.mcp.json",
"connectors": ["tencent-docs", "feishu"]
}
}
| Field | Type | Description |
| dependencies.mcpServers | string | string[] | object | Built-in MCP declaration. Can be: a relative path string (pointing to an MCP config file), an array of paths, or an inline { "服务名": {...} } object |
| dependencies.connectors | string[] | List of existing WorkBuddy connector IDs this expert depends on (e.g. "tencent-docs") |
Method 2: .mcp.json at the plugin root
When plugin.json does not declare dependencies.mcpServers, the system automatically reads .mcp.json at the plugin root as a fallback. The file format matches standard MCP configuration. Each server can include x-workbuddy metadata (see 6.3):
{
"mcpServers": {
"huijin-workflow": {
"url": "https://huijin-workflow.mcp.example.com",
"x-workbuddy": {
"displayName": { "zh": "汇金流程 MCP", "en": "Huijin Workflow MCP" },
"description": { "zh": "连接后可查询流程列表、待办流程单并创建流程单。", "en": "..." },
"icon": "./avatars/huijin.svg",
"auth": { "type": "oauth" }
}
}
}
}
MCP server configuration
Basic fields under each server in mcpServers follow the standard MCP protocol:
| Field | Description |
| url | Remote MCP (SSE / Streamable HTTP) service URL |
| type | Transport type, e.g. "http"; can be omitted for remote SSE |
| headers | Request headers. For Token auth, use ${VAR} placeholders here (see 6.4), e.g. { "Authorization": "Bearer ${SIYUAN_TOKEN}" } |
| x-workbuddy | WorkBuddy-private display and auth metadata (see 6.3); not written into the user’s final connector configuration |
x-workbuddy metadata
x-workbuddy describes how this MCP is shown on the guidance card and how it authenticates. All copy fields support Chinese and English.
| Field | Type | Description |
| displayName | LocalizedString | Card title. Falls back to the server name if omitted |
| description | LocalizedString | Card description. Falls back to url if omitted |
| icon | string | Card icon. Supports a network URL (https://), a data: URL, or a local path relative to the plugin root (e.g. "./avatars/xxx.svg"; recommended under avatars/). When icon is set, the avatar background is transparent; if omitted, a placeholder is generated from the first character of the display name plus a hashed background color |
| auth.type | string | Auth method: "oauth" / "token" / "none" |
| auth.tokenSchema | object | When auth.type is "token", describes the credential form the user must fill in (see 6.4) |
LocalizedString convention: all copy fields can be a plain string or a { zh, en } bilingual object. With a bilingual object, WorkBuddy displays the user’s current UI language and falls back zh → en if a language is missing; a plain string is shown the same in both Chinese and English. This convention matches expert displayName / profession.
Token authentication
When the MCP needs the user to provide an API Token / Key to connect, declare a form with auth.type: "token" plus tokenSchema. When the user clicks Connect, a unified Token authorization dialog appears. After the user fills it in, the system substitutes the values into ${VAR} placeholders in headers and completes the connection.
{
"mcpServers": {
"siyuan": {
"type": "http",
"url": "http://127.0.0.1:36796/mcp",
"headers": {
"Authorization": "Bearer ${SIYUAN_TOKEN}"
},
"x-workbuddy": {
"displayName": { "zh": "思源笔记 MCP", "en": "SiYuan Note MCP" },
"description": { "zh": "连接后可读取和操作本地思源笔记内容。", "en": "..." },
"auth": {
"type": "token",
"tokenSchema": {
"title": { "zh": "配置思源访问 Token", "en": "Configure SiYuan Token" },
"description": { "zh": "请输入思源笔记 API Token。", "en": "..." },
"docUrl": "https://example.com/guide",
"docLabel": { "zh": "如何获取 Token?", "en": "How to get a token?" },
"fields": [
{
"key": "SIYUAN_TOKEN",
"label": { "zh": "思源 Token", "en": "SiYuan Token" },
"placeholder": { "zh": "请输入 API Token", "en": "Enter API token" },
"type": "password",
"required": true,
"description": { "zh": "将写入 Authorization Header", "en": "..." }
}
]
}
}
}
}
}
}
tokenSchema fields:
| Field | Type | Description |
| title | LocalizedString | Dialog title |
| description | LocalizedString | Dialog description copy |
| docUrl | string | “How to obtain” help-doc URL (not copy; not localized) |
| docLabel | LocalizedString | Display copy for the help link |
| fields | array | Form field list; see below |
Each item in fields:
| Field | Type | Description |
| key | string | Field ID, corresponding to the ${key} placeholder in headers (not copy) |
| label | LocalizedString | Field label |
| placeholder | LocalizedString | Input placeholder |
| type | string | "text" or "password" (use password for sensitive credentials) |
| required | boolean | Whether the field is required |
| description | LocalizedString | Extra description below the field |
Connector dependencies
If the expert depends on a connector already listed in WorkBuddy (rather than a bundled MCP), list the connector IDs in dependencies.connectors. The guidance card’s name, description, and icon come from the connector itself; you do not need to declare them again in the expert package.
{
"dependencies": {
"connectors": ["tencent-docs"]
}
}
Notes
- x-workbuddy is a WorkBuddy-private field. It is stripped when the configuration is written to the user’s Custom Connectors after connection, so it does not pollute the user’s local mcp.json
- Already-connected dependencies are not prompted again when the user summons an expert with the same name
- Tokens are stored locally by the user after they are entered. Never hard-code any real Token / secret in the expert package
- Relative icon paths are resolved from the directory of the MCP declaration file; in a plugin-root .mcp.json, ./avatars/xxx.svg points to avatars/ at the plugin root
Avatar guidelines
| Item | Requirement |
| Format | PNG (recommended) or JPG |
| Size | 512×512 px (square) |
| File size | No more than 500KB per image |
| Style | Consistent comic/illustration style, professional and natural |
| Content | Matches the role; no prohibited content |
Storage location
Store all avatars under the avatars/ directory and reference them with relative paths in plugin.json:
avatars/
└── expert.png # 专家头像
Industry categories
Choose the best-matching categoryId and put it in plugin.json:
| categoryId | Category name | Description |
| 01-ProductDesign | Product design | Product management, UI/UX, brand design, requirements analysis |
| 02-Engineering | Engineering | Frontend/backend development, architecture, DevOps, security |
| 03-GameSpatial | Games & spatial | Game design and development, VR/AR/MR, spatial computing |
| 04-DataAI | Data & AI | Data analysis, machine learning, knowledge management, AI applications |
| 05-MarketingGrowth | Marketing & growth | Ad placement, SEO/SEM, growth hacking, content marketing |
| 06-ContentCreative | Content & creative | Copywriting, video production, design creativity, multimedia |
| 07-SalesCommerce | Sales & commerce | Lead generation, sales strategy, e-commerce operations, BD |
| 08-FinanceInvestment | Finance & investment | Investment analysis, risk management, quantitative trading, finance |
| 09-OperationsHR | Operations & HR | Operations strategy, human resources, administration, training |
| 10-ProjectQuality | Project & quality | Project management, quality assurance, testing, process optimization |
| 11-SecurityCompliance | Legal & security | Information security, compliance audit, legal consulting, risk control |
| 12-IndustryConsultant | Industry consulting | Industry consulting, strategic planning, professional services, supply chain |
| 13-TencentZone | Tencent experts | Experts provided by Tencent internal teams, covering Tencent Cloud, WeChat Mini Programs, WeCom, and other Tencent tech stacks |
| 14-WorldWise | Global development | International business, cross-border trade, global market insights, overseas expansion |
| 15-Education | Education & learning | Education and training, online learning, course design, academic research, knowledge sharing |
Template files
Download file: design-experts.zip
Download link: https://codebuddy-platform-1258344699.cos.ap-beijing.myqcloud.com/open/static/files/design-experts.zip
