跳到主要内容

YAML 定义格式

English | 简体中文

本文档详细说明了 Wegent 平台中各个核心概念的 YAML 配置格式。每个定义都遵循 Kubernetes 风格的声明式 API 设计。

目录


👻 Ghost

Ghost 定义了智能体的"灵魂",包括个性、能力和行为模式。

完整配置示例

apiVersion: agent.wecode.io/v1
kind: Ghost
metadata:
name: developer-ghost
namespace: default
spec:
systemPrompt: |
You are a senior software engineer, proficient in Git, GitHub MCP, branch management, and code submission workflows. You will use the specified programming language to generate executable code and complete the branch submission and MR (Merge Request) process.
mcpServers:
github:
env:
GITHUB_PERSONAL_ACCESS_TOKEN: ghp_xxxxx
args:
- run
- -i
- --rm
- -e
- GITHUB_PERSONAL_ACCESS_TOKEN
- -e
- GITHUB_TOOLSETS
- -e
- GITHUB_READ_ONLY
- ghcr.io/github/github-mcp-server
command: docker

字段说明

字段类型必填说明
metadata.namestringGhost 的唯一标识符
metadata.namespacestring命名空间,通常为 default
spec.systemPromptstring定义智能体个性和能力的系统提示词
spec.mcpServersobjectMCP 服务器配置,定义智能体的工具能力
spec.skillsarray关联的 Skill 名称列表,例如 ["skill-1", "skill-2"]

✨ Skill

Skill 是 Claude Code 的能力扩展包,包含可执行代码和配置。Skills 以 ZIP 包形式上传,任务启动时自动部署到 ~/.claude/skills/ 目录。

完整配置示例

apiVersion: agent.wecode.io/v1
kind: Skill
metadata:
name: python-debugger
namespace: default
spec:
description: "Python 调试工具,支持断点和变量检查"
version: "1.0.0"
author: "WeCode Team"
tags: ["python", "debugging", "development"]
status:
state: "Available"
fileSize: 2048576
fileHash: "abc123def456..."

字段说明

字段类型必填说明
metadata.namestringSkill 的唯一标识符(用于 Ghost 的 spec.skills 字段)
metadata.namespacestring命名空间,通常为 default
spec.descriptionstringSkill 功能描述(从 SKILL.md frontmatter 提取)
spec.versionstring版本号(建议使用语义化版本)
spec.authorstring作者名称或组织
spec.tagsarray分类标签,例如 ["python", "debugging"]
status.statestringSkill 状态: AvailableUnavailable
status.fileSizeintegerZIP 包大小(字节)
status.fileHashstringZIP 包的 SHA256 哈希值

ZIP 包要求

Skills 必须以 ZIP 包形式上传,包含:

  1. SKILL.md(必需): Skill 文档,包含 YAML frontmatter
  2. 其他文件: 脚本、配置、资源等

SKILL.md 格式:

---
description: "您的 Skill 描述"
version: "1.0.0"
author: "您的名字"
tags: ["标签1", "标签2"]
---

# Skill 文档

详细说明这个 Skill 的功能...

在 Ghost 中使用 Skills

通过在 spec.skills 数组中添加 Skill 名称来关联:

apiVersion: agent.wecode.io/v1
kind: Ghost
metadata:
name: developer-ghost
namespace: default
spec:
systemPrompt: "你是一位资深开发工程师..."
mcpServers: {...}
skills:
- python-debugger
- code-formatter

当使用此 Ghost 启动任务时,Executor 会自动下载并部署这些 Skills 到 ~/.claude/skills/ 目录。

🧠 Model

Model 定义了 AI 模型的配置,包括环境变量和模型参数。

定义 ClaudeCode Model 完整配置示例

apiVersion: agent.wecode.io/v1
kind: Model
metadata:
name: ClaudeSonnet4
namespace: default
spec:
modelConfig:
env:
ANTHROPIC_MODEL: "openrouter,anthropic/claude-sonnet-4"
ANTHROPIC_BASE_URL: "http://xxxxx"
ANTHROPIC_AUTH_TOKEN: "sk-xxxxxx"
ANTHROPIC_DEFAULT_HAIKU_MODEL: "openrouter,anthropic/claude-haiku-4.5"

字段说明

字段类型必填说明
metadata.namestringModel 的唯一标识符
metadata.namespacestring命名空间,通常为 default
spec.modelConfigobject模型配置对象
spec.modelConfig.envobject环境变量配置

ClaudeCode常用环境变量

变量名说明示例值
ANTHROPIC_MODEL主要模型配置openrouter,anthropic/claude-sonnet-4
ANTHROPIC_BASE_URLAPI 基础 URLhttp://xxxxx
ANTHROPIC_AUTH_TOKEN认证令牌sk-xxxxxx
ANTHROPIC_DEFAULT_HAIKU_MODEL快速模型配置openrouter,anthropic/claude-haiku-4.5

🐚 Shell

Shell 定义了智能体的运行环境,指定了运行时类型、基础镜像和支持的模型。

完整配置示例

apiVersion: agent.wecode.io/v1
kind: Shell
metadata:
name: ClaudeCode
namespace: default
labels:
type: local_engine
spec:
shellType: ClaudeCode
supportModel: []
baseImage: ghcr.io/wecode-ai/wegent-base-python3.12:1.0.1
status:
state: Available

字段说明

字段类型必填说明
metadata.namestringShell 的唯一标识符
metadata.namespacestring命名空间,通常为 default
metadata.labelsobject分类标签,如 type: local_enginetype: external_api
spec.shellTypestringShell 类型,如 ClaudeCodeAgnoDify
spec.supportModelarray支持的模型类型列表
spec.baseImagestring本地引擎 Shell 的 Docker 基础镜像(local_engine 类型必填)
status.statestringShell 状态:AvailableUnavailable

Shell 类型

类型标签说明
ClaudeCodelocal_engineClaude Code 运行时,需要 baseImage
Agnolocal_engineAgno 运行时,需要 baseImage
Difyexternal_apiDify 外部 API 运行时,不需要 baseImage

标签说明

标签可选值说明
typelocal_engine, external_api表示 Shell 是本地运行还是连接外部 API

🤖 Bot

Bot 是完整的智能体实例,结合了 Ghost、Shell 和 Model。

完整配置示例

apiVersion: agent.wecode.io/v1
kind: Bot
metadata:
name: developer-bot
namespace: default
spec:
ghostRef:
name: developer-ghost
namespace: default
shellRef:
name: ClaudeCode
namespace: default
modelRef:
name: ClaudeSonnet4
namespace: default

字段说明

字段类型必填说明
metadata.namestringBot 的唯一标识符
metadata.namespacestring命名空间,通常为 default
spec.ghostRefobjectGhost 引用
spec.shellRefobjectShell 引用
spec.modelRefobjectModel 引用

引用格式

所有引用都遵循相同的格式:

name: "resource-name"
namespace: "default"

👥 Team

Team 定义了多个 Bot 的协作团队,指定了成员角色和协作模式。

完整配置示例

apiVersion: agent.wecode.io/v1
kind: Team
metadata:
name: dev-team
namespace: default
spec:
members:
- role: "leader"
botRef:
name: developer-bot
namespace: default
prompt: ""
collaborationModel: "pipeline"

字段说明

字段类型必填说明
metadata.namestringTeam 的唯一标识符
metadata.namespacestring命名空间,通常为 default
spec.membersarray团队成员列表
spec.collaborationModelstring协作模式

成员配置

字段类型必填说明
rolestring成员角色,如 leader
botRefobjectBot 引用
promptstring成员特定的提示词

协作模式

模式说明
pipeline流水线模式,按顺序执行
route路由模式,根据条件路由
coordinate协调模式,成员间协调
collaborate并发模式,成员间同时执行

🤝 Collaboration

Collaboration 定义了团队中 Bot 之间的交互模式和工作流程。

完整配置示例

apiVersion: agent.wecode.io/v1
kind: Collaboration
metadata:
name: workflow-collaboration
namespace: default
spec:
type: "workflow"
config:
steps:
- name: "planning"
participants:
- "planner-bot"
- name: "development"
participants:
- "developer-bot"
- name: "review"
participants:
- "reviewer-bot"

字段说明

字段类型必填说明
metadata.namestringCollaboration 的唯一标识符
metadata.namespacestring命名空间,通常为 default
spec.typestring协作类型
spec.configobject协作配置

工作流程配置

字段类型说明
stepsarray工作步骤列表
steps.namestring步骤名称
steps.participantsarray参与者列表

💼 Workspace

Workspace 定义了团队的工作环境,包括代码仓库和分支信息。

完整配置示例

apiVersion: agent.wecode.io/v1
kind: Workspace
metadata:
name: project-workspace
namespace: default
spec:
repository:
gitUrl: "https://github.com/user/repo.git"
gitRepo: "{user}/{repo}"
branchName: "main"
gitDomain: "github.com"

字段说明

字段类型必填说明
metadata.namestringWorkspace 的唯一标识符
metadata.namespacestring命名空间,通常为 default
spec.repositoryobject仓库配置

仓库配置

字段类型必填说明
gitUrlstringGit 仓库 URL
gitRepostring仓库路径格式
branchNamestring默认分支名
gitDomainstringGit 域名

🎯 Task

Task 定义了要执行的任务,关联了 Team 和 Workspace。

完整配置示例

apiVersion: agent.wecode.io/v1
kind: Task
metadata:
name: implement-feature
namespace: default
spec:
title: "Implement new feature"
prompt: "Task description"
teamRef:
name: dev-team
namespace: default
workspaceRef:
name: project-workspace
namespace: default

字段说明

字段类型必填说明
metadata.namestringTask 的唯一标识符
metadata.namespacestring命名空间,通常为 default
spec.titlestring任务标题
spec.promptstring任务描述
spec.teamRefobjectTeam 引用
spec.workspaceRefobjectWorkspace 引用

任务状态

状态说明
PENDING等待执行
RUNNING正在执行
COMPLETED已完成
FAILED执行失败
CANCELLED已取消
DELETE已删除

最佳实践

1. 命名规范

  • 使用小写字母、数字和中划线
  • 避免特殊字符和空格
  • 名称应具有描述性

2. 命名空间

  • 默认使用 default 命名空间
  • 在多租户环境中使用不同的命名空间

3. 引用管理

  • 确保被引用的资源已存在
  • 使用相同的命名空间
  • 避免循环引用

4. 状态管理

  • 定期检查资源状态
  • 及时处理不可用的资源
  • 监控任务执行进度

5. 配置校验

  • 使用 YAML 语法校验工具
  • 检查必填字段
  • 校验引用关系

相关文档