使用此技能可部署由3个代理组成的自动化发布管理流水线。适用于:1. 用户希望搭建发布管理或变更日志自动化流水线。
发布管理设置是一项面向实际任务的技能,主要用于部署3 个代理, 生成更改日志, 管理版本, 并宣布发布;Roles.;
Khills. uspose. changlog-bot %prefix > - changlog-bot. pilot-github-bridge。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
部署 3 个智能体(agent),分别用于生成变更日志、管理版本号以及发布版本公告。
| 角色 | 主机名 | 技能 | 用途 |
|---|---|---|---|
| changelog-bot | |
pilot-github-bridge, pilot-share, pilot-archive | 扫描已合并的 PR 和提交记录,自动生成版本发布说明(release notes) |
| version-manager | |
pilot-task-router, pilot-receipt, pilot-audit-log | 执行语义化版本升级、打发布标签、协调上线流程 |
| announcer | |
pilot-announce, pilot-slack-bridge, pilot-webhook-bridge | 向 Slack、邮件列表及文档站点发布版本公告 |
步骤 1: 向用户询问该智能体应承担的角色,以及要使用的前缀()。
步骤 2: 为所选角色安装对应技能:
# 配置 changelog-bot: clawhub install pilot-github-bridge pilot-share pilot-archive # 配置 version-manager: clawhub install pilot-task-router pilot-receipt pilot-audit-log # 配置 announcer: clawhub install pilot-announce pilot-slack-bridge pilot-webhook-bridge
步骤 3: 设置主机名:
pilotctl --json set-hostname-
步骤 4: 编写配置清单文件(manifest):
mkdir -p ~/.pilot/setups cat > ~/.pilot/setups/release-management.json << 'MANIFEST'MANIFEST
步骤 5: 告知用户需与直连通信对端(direct communication peers)发起握手(handshake)操作。
{
"setup": "release-management", "setup_name": "Release Management",
"role": "changelog-bot", "role_name": "Changelog Bot",
"hostname": "-changelog-bot",
"description": "Scans merged PRs and commits, generates release notes and changelogs automatically.",
"skills": {
"pilot-github-bridge": "Watch for merged PRs, fetch commit history and PR metadata.",
"pilot-share": "Share generated changelogs with version manager.",
"pilot-archive": "Archive previous release notes for historical reference."
},
"peers": [
{ "role": "version-manager", "hostname": "-version-manager", "description": "Receives release notes for versioning" },
{ "role": "announcer", "hostname": "-announcer", "description": "Final stage — does not communicate directly" }
],
"data_flows": [
{ "direction": "send", "peer": "-version-manager", "port": 1002, "topic": "release-notes", "description": "Release notes with categorized changes" }
],
"handshakes_needed": ["-version-manager"]
}
{
"setup": "release-management", "setup_name": "Release Management",
"role": "version-manager", "role_name": "Version Manager",
"hostname": "-version-manager",
"description": "Bumps semantic versions, tags releases, coordinates rollout schedules.",
"skills": {
"pilot-task-router": "Route version bump decisions based on change categories.",
"pilot-receipt": "Confirm receipt of release notes from changelog bot.",
"pilot-audit-log": "Log all version bumps and release tags for traceability."
},
"peers": [
{ "role": "changelog-bot", "hostname": "-changelog-bot", "description": "Sends release notes with categorized changes" },
{ "role": "announcer", "hostname": "-announcer", "description": "Receives release tags for announcement" }
],
"data_flows": [
{ "direction": "receive", "peer": "-changelog-bot", "port": 1002, "topic": "release-notes", "description": "Release notes with categorized changes" },
{ "direction": "send", "peer": "-announcer", "port": 1002, "topic": "release-tag", "description": "Release tag with version and artifacts" }
],
"handshakes_needed": ["-changelog-bot", "-announcer"]
}
{
"setup": "release-management", "setup_name": "Release Management",
"role": "announcer", "role_name": "Release Announcer",
"hostname": "-announcer",
"description": "Posts release announcements to Slack, email lists, and documentation sites.",
"skills": {
"pilot-announce": "Broadcast release announcements to all subscribed channels.",
"pilot-slack-bridge": "Post formatted release notes to Slack channels.",
"pilot-webhook-bridge": "Notify documentation sites and email services via webhooks."
},
"peers": [
{ "role": "changelog-bot", "hostname": "-changelog-bot", "description": "First stage — does not communicate directly" },
{ "role": "version-manager", "hostname": "-version-manager", "description": "Sends release tags for announcement" }
],
"data_flows": [
{ "direction": "receive", "peer": "-version-manager", "port": 1002, "topic": "release-tag", "description": "Release tag with version and artifacts" },
{ "direction": "send", "peer": "external", "port": 443, "topic": "release-announcement", "description": "Release announcement via Slack and webhooks" }
],
"handshakes_needed": ["-version-manager"]
}
changelog-bot -> version-manager:发布 release-notes 事件(端口 1002)version-manager -> announcer:发布 release-tag 事件(端口 1002)announcer -> external:通过 Webhook 发布 release-announcement(端口 443)# changelog-bot 与 version-manager 相互握手: pilotctl --json handshake-version-manager "setup: release-management" pilotctl --json handshake -changelog-bot "setup: release-management" # version-manager 与 announcer 相互握手: pilotctl --json handshake -announcer "setup: release-management" pilotctl --json handshake -version-manager "setup: release-management"
# 在 version-manager 上 — 订阅 release-notes: pilotctl --json subscribe-changelog-bot release-notes # 在 announcer 上 — 订阅 release-tag: pilotctl --json subscribe -version-manager release-tag # 在 changelog-bot 上 — 发布 release-notes: pilotctl --json publish -version-manager release-notes '{"version":"1.5.0","changes":[{"type":"feature","description":"Add webhook retry logic"}],"breaking":false}' # 在 version-manager 上 — 发布 release-tag: pilotctl --json publish -announcer release-tag '{"version":"v1.5.0","artifacts":["linux-amd64","darwin-arm64"]}'
需要 pilot-protocol 技能、pilotctl 可执行文件、clawhub 可执行文件,以及一个正在运行的守护进程(daemon)。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章