Skip to content

安装核心技能包

代理已运行,现在给它们第一个真实任务。 BALIA OS 内置三个随时可部署的技能。

技能用途
lightpanda快速网页搜索与抓取
summarize自动摘要长文本或网页
clawsec安全监控与新技能隔离

在第4节中,你使用了同一个脚本来安装 Security Guardian(安全守护程序)。 这是第二次运行——它会安装核心技能包(lightpanda / summarize / clawsec)。 (如果你还没有下载它,请返回第4节先下载 install_core_pack.py。)

让代理运行安装程序

将此粘贴到 VS Code 终端中,然后按 Enter 键运行。

什么是 Token?

它是购买后收到的访问链接中 ?token= 之后的字符串。

示例:https://guide.baliaos.com/?token=BALIA-XXXX-XXXX-0001 此情况下,Token 为 BALIA-XXXX-XXXX-0001

如果找不到邮件,请联系客服支持。

openclaw agent --agent security-guardian "请执行以下操作:
python install_core_pack.py --lang zh-CN
(Token 会自动从你的 .env 文件中读取)
完成后向 Discord 汇报。"

代理将自动执行:

  1. 验证令牌
  2. 下载核心技能包(lightpanda / summarize / clawsec)
  3. 部署到 ~/.opengoat/skills/
  4. 更新 _SKILL_INDEX.md
  5. 向 Discord 报告"核心技能包已安装"

收到 Discord 确认后,继续往下阅读。


什么是技能与卡带

你的智能体已上线。它们拥有各自的身份、汇报流程和 Discord 频道。但目前,它们还不知道自己所处的业务领域——不知道自己是在管理一家餐厅、运营一个交易团队,还是在支持法律事务。

技能是你编写并提供给智能体的知识文件。每项技能教会智能体如何完成一项具体任务——如何管理预订、如何生成损益报告、如何起草 SNS 发帖。你给智能体的技能越多,它能做的事情就越多。

卡带是围绕某一主题打包在一起的技能文件夹。 餐厅运营者可能拥有一个 restaurant-ops 卡带,内容创作者可能拥有 youtube 卡带和 social-media 卡带。同一个智能体可以根据当天需要处理的工作使用不同的卡带。

每个卡带默认都是 ON(开启)状态。 一个文件——memory/_SKILL_STATUS.md——列出了每个卡带及其 ON/OFF 状态。没有需要切换的"当前模式"——你的所有卡带同时可用,智能体会根据你下达的任务自动匹配最合适的卡带(该卡带的 SKILL.md 描述了它的用途)。只有在极少数情况下你才需要把卡带设为 OFF 来暂停它——例如两个卡带发生冲突时(见下方"如果两个卡带发生冲突"一节)。

这意味着:

  • marketing-outreachai-meeting-daily 可以同时处于 ON 状态并同时运行
  • 关闭一个卡带不会影响其他卡带
  • 智能体配置永不改变——只有卡带的 STATUS 会改变

卡带文件夹结构

$env:USERPROFILE\.opengoat\
├── memory\
│   └── _SKILL_STATUS.md              ← 所有卡带的 ON/OFF 列表
└── skills\
    ├── youtube\
    │   ├── SKILL.md                  ← 该卡带的用途、工具、规则
    │   └── WORKFLOW.md                ← 分步操作流程
    ├── restaurant-ops\
    │   ├── SKILL.md
    │   └── WORKFLOW.md
    └── trade\
        ├── SKILL.md
        └── WORKFLOW.md

_SKILL_STATUS.md 列出所有卡带及其 STATUS 标志。例如:

| Cassette Name    | STATUS | Description                  |
|------------------|--------|-------------------------------|
| youtube          | ON     | YouTube content pipeline      |
| trade            | ON     | Market analysis and reporting |

当你向智能体下达指令时,它会将你的请求与每个处于 ON 状态的卡带的 SKILL.md 进行匹配,并应用最合适的那一个——你也可以明确指定卡带名称(例如"以 trade 模式工作:……")来更精确地指定。如果某个卡带是 OFF 状态,智能体会完全跳过它,即使任务本来会与它匹配。

计划任务(如每日健康检查或夜间报告)不受任何卡带影响,无论哪些卡带处于开启状态都会照常执行——它们定义在智能体的 AGENTS.md 中,而不是任何卡带里。


选择你的 AI 引擎

不同的卡带适合不同的 AI 模型。在构建卡带时一次性完成配置即可。

卡带类型推荐引擎原因
加密货币交易 / 市场分析Claude逻辑推理、模式分析、细致判断
编程 / 技术自动化Claude代码质量、调试能力、多步骤逻辑
法律研究 / 合同审查Claude严谨推理、细腻语言表达
财务 / 会计 / 报告Claude结构化分析、精确计算
Google Sheets / Docs / NotebookLM / DriveGemini原生 Google 服务集成
YouTube / 视频内容Gemini直接分析视频;与 YouTube Studio 集成
Gmail / 日历自动化Gemini深度 Google Workspace 集成
销售 / 推广 / 文案撰写GPT-4o自然对话、邮件生成
多语言沟通GPT-4o 或 Gemini强大的多语言表现
电商 / 产品研究Claude 或 GPT-4o研究深度、结构化输出

如果 Claude 满足你的使用需求,你已经准备就绪——它已在第3节中完成配置。

如需使用 Gemini 或 GPT-4o,你需要在 .env 文件中添加对应的 API 密钥。具体操作说明见下方 AI 礼宾助手的第7步。


各行业技能参考

不确定要构建哪些技能?以下是各使用场景的参考起点。

餐饮 / 食品与饮料

  • 预订管理与每日排班
  • 供应商订单追踪与库存预警
  • 客户 SNS 发帖(每日特色菜、活动信息)
  • 评价监控与回复起草
  • 每周营收摘要

电商 / 实体商品

  • 商品详情页生成
  • 竞争对手价格监控
  • 订单状态汇总
  • 客户咨询回复起草
  • 月度销售报告

内容创作 / YouTuber

  • 标题与缩略图创意生成
  • 脚本大纲起草
  • 上传计划管理
  • 表现数据指标汇总
  • 社区评论回复起草

自由职业者 / 顾问

  • 客户沟通邮件起草
  • 项目进度汇报
  • 发票追踪与跟进
  • 合同条款审查(标记异常条款)
  • 工时记录汇总

小型企业 / 通用场景

  • 每日运营摘要
  • 员工沟通内容起草
  • 法律问题初步筛查(标记需要律师处理的事项)
  • 从收据和记录中生成财务摘要
  • 供应商沟通管理

你的行业不在列表中? 没关系——本节的 AI 礼宾助手将帮助你根据团队实际需求,从零开始定义专属技能。


本节使用方式

推荐: 使用下方的 AI 礼宾助手提示词——它会生成你所有的卡带文件,并输出一个能自动创建所有文件的 Python 安装脚本。完成 AI 对话后,前往 第2步 — 运行安装脚本 并运行它。无需手动创建文件。

如果安装脚本失败: AI 礼宾助手也会展示每个文件的完整内容。你可以在 VS Code 中手动创建这些文件作为备用方案。

使用以下 AI 礼宾助手提示词来:

  1. 定义智能体每天应完成的工作
  2. 确定从哪个卡带名称和模式开始
  3. 选择合适的 AI 引擎
  4. 生成你的 SKILL 和 WORKFLOW 文件
  5. 配置 _SKILL_STATUS.md 标志
  6. 验证智能体是否加载了正确的模式

将提示词粘贴到你使用的聊天 AI 中。请附上第2节中的团队设计文档。


▶ 将此粘贴到你的 AI 中以开始

发送前请附上你的团队设计文档。

你正在帮助我为 BALIA OS——一个多智能体 AI 操作系统——
构建技能和卡带。

我已附上团队设计文档。请先阅读它,
了解我的智能体名称、角色和 workspace 结构。

开始前需要理解的概念:

技能是我编写并提供给智能体的知识文件。
每项技能教会智能体如何完成一项具体任务。

卡带是围绕某一主题(模式)打包在一起的技能文件夹。
所有卡带默认都是 ON 状态,可以同时运行——
我的智能体会根据我下达的任务自动匹配合适的卡带。

一个文件——memory/_SKILL_STATUS.md——列出了每个卡带及其
ON/OFF 状态。它是"哪些卡带可用"的唯一权威来源。
这不是"当前模式"——可以同时有多行处于 ON 状态。

文件夹结构:
$env:USERPROFILE/.opengoat/
  memory/
    _SKILL_STATUS.md            ← ON/OFF 列表,每个卡带一行
  skills/
    [cassette-name]/
      SKILL.md                  ← 该卡带的用途、工具、规则
      WORKFLOW.md                ← 该卡带的分步操作流程

当我向智能体下达指令时:
1. 智能体检查 memory/_SKILL_STATUS.md 中哪些卡带处于 ON 状态
2. 它将我的指令与每个处于 ON 状态的卡带的 SKILL.md 进行匹配
   (我也可以明确指定卡带名称,例如"以 trade 模式工作:……")
3. 它应用匹配到的卡带的 SKILL.md 和 WORKFLOW.md

计划任务无论哪些卡带处于 ON 状态都会照常执行——它们定义在 AGENTS.md 中。

请逐步引导我。每次只问一个问题。
等待我回答后再继续。

STEP 1 — 我希望团队做什么
请询问:"请描述你希望 AI 团队每天为你完成的工作。
不需要考虑具体怎么做——只需描述你想要的产出
以及你想完成的工作。"

帮我把答案整理成至少5项具体的、周期性的任务。
持续追问,直到我们得到具有明确计划(每天、每周、按需)
的具体任务。

STEP 2 — 将任务映射给智能体
阅读我的团队设计文档。
根据每个智能体的角色,将每项任务分配给最合适的智能体。
向我展示映射结果:"任务 → 智能体"
询问:"这样感觉对吗?有什么想调整的吗?"

STEP 3 — 命名卡带(模式)
根据这些任务,提议一个卡带名称——模式名称
(简短、小写、连字符分隔,例如 restaurant-ops、youtube、trade)。
这将成为文件夹名称,并在 memory/_SKILL_STATUS.md 中新增一行。
请我确认,或提议一个不同的名称。

STEP 4 — 选择 AI 引擎
针对每个被分配了任务的智能体,推荐最合适的引擎:

- Claude:逻辑推理、分析、编程、法律、财务、加密货币
- Gemini:Google 服务(表格、文档、Drive、Gmail、
  日历、YouTube Studio、NotebookLM)——Google 生态系统中的一切
- GPT-4o:销售邮件、外联、文案撰写、自然对话

用一句话解释每个智能体的推荐理由。
如果所有任务都适合用 Claude,确认无需额外的 API 密钥。
如果需要 Gemini 或 GPT-4o,请注明——我们会在第7步处理密钥。

请我确认后再继续。

STEP 5 — 生成 SKILL.md
使用以下结构生成技能文件:

---
# SKILL.md — [cassette-name]
版本:1.0
最后更新:[今天的日期]
主智能体:[智能体名称]
AI 引擎:[引擎]

## 此卡带的作用
[2-3 句话:涵盖什么领域,产出什么]

## 何时使用此卡带
[1-2 句话描述哪些指令应当触发此卡带——
这是智能体用来匹配你请求的依据]

## 此卡带中的技能
[具体技能的列表——智能体知道如何做的事情]

## 可用工具
[列出此卡带中可用的工具:网络搜索、文件读写、
Discord 报告、API 调用、Google 服务等]

## 运营规则
1. 运行前,确认 memory/_SKILL_STATUS.md 中该卡带的一行
   已设置为 ON。如果是 OFF,直接跳过——无需 Discord 报告。
2. [此领域特定的重要规则]
3. [此领域特定的重要规则]
4. 在会话结束前向 Discord 报告所有已完成的任务。
5. 未经指挥官批准,不得在此卡带范围之外行动。
6. 将所有输出保存到 skills/[cassette-name]/outputs/

## 此卡带不负责的事项
[具体边界——此卡带范围之外的内容]

## 输出格式
[智能体产出的内容:报告、文件、Discord 消息等]
---

完整展示出来。询问是否需要调整。

STEP 6 — 生成 WORKFLOW.md
使用以下结构生成工作流文件:

---
# WORKFLOW.md — [cassette-name]
版本:1.0
最后更新:[今天的日期]

## 开始前
1. 确认 memory/_SKILL_STATUS.md 中该卡带的一行为 ON
2. 加载同一文件夹中的 SKILL.md

## 任务流程

### [任务1名称] — [计划]
触发条件:[启动此任务的条件]
步骤:
1. [具体操作]
2. [具体操作]
3. [具体操作]
输出:[产生的内容]
保存至:skills/[cassette-name]/outputs/
出错时:[出现问题时的处理方式]

### [任务2名称] — [计划]
[相同结构]

[对所有任务重复]

## 会话结束(每次会话,必须执行)
向 Discord 发送会话结束报告:
"✅ [cassette-name] 会话完成。
已完成任务:[列表]
输出:skills/[cassette-name]/outputs/
问题:[任何错误]"

## 错误处理
如果任何步骤失败:
1. 记录准确的错误内容
2. 如有可能,继续执行剩余任务
3. 在会话结束的 Discord 报告中包含所有错误
4. 未经指挥官批准,不得重试破坏性操作

## 计划任务
这些任务按各自的计划运行,无论其他卡带处于何种状态——
它们独立于其他卡带是 ON 还是 OFF。
---

完整展示出来。询问是否需要调整。

STEP 7 — 设置 API 密钥(如需要)
仅当第4步中推荐了 Gemini 或 GPT-4o 时执行:

GEMINI 的情况:
"Gemini 最适合 Google 服务集成。
获取 API 密钥的方法:"
1. 访问 https://console.cloud.google.com/
2. 使用 Google 账户登录
3. 如果出现提示,你可能有资格获得 $300 的免费额度——
   如果提供了,点击"免费试用"
4. 在顶部搜索栏输入"Gemini API"并选择它
5. 如果尚未启用,点击"启用"
6. 在左侧菜单进入"凭据" → "创建凭据"
   → "API 密钥"
7. 复制密钥
8. 添加到 .env 文件:
   GOOGLE_API_KEY=你的密钥
确认:"已添加 Gemini API 密钥。"

GPT-4o(OpenAI)的情况:
1. 访问 platform.openai.com
2. 登录或创建账户
3. 点击个人资料 → "API keys" → "Create new secret key"
4. 命名为"balia-os"
5. 复制密钥(以 sk- 开头)
6. 添加到 .env 文件:
   OPENAI_API_KEY=你的密钥
确认:"已添加 OpenAI API 密钥。"

如果只使用 Claude:完全跳过此步骤。

STEP 8 — 创建卡带文件夹结构
引导我在 VS Code 终端中创建文件夹:

Windows:
  cd $env:USERPROFILE\.opengoat\skills
  mkdir [mode-name]
  mkdir [mode-name]\outputs

Mac:
  mkdir -p ~/.opengoat/skills/[mode-name]/outputs

然后引导我将以下文件保存到卡带文件夹中:
- SKILL.md
- WORKFLOW.md

然后引导我将此卡带添加到 memory/_SKILL_STATUS.md:
"在 VS Code 中打开 memory/_SKILL_STATUS.md。如果该文件尚不存在,
使用以下表头创建它:

# SKILL CASSETTE STATUS
# ON/OFF 仅在此文件中管理。

| Cassette Name | STATUS | Description |
|---|---|---|

添加新的一行:| [mode-name] | ON | [一句话描述] |
保存。"

所有文件确定后,生成一个完整的 Python 安装脚本,
自动创建所有内容。脚本必须:
- 在 Windows 和 Mac 上都能运行(使用 os.path.expanduser 展开 ~)
- 使用 os.makedirs(exist_ok=True) 创建所有文件夹
- 以 UTF-8 编码写入 SKILL.md 和 WORKFLOW.md
- 在 memory/_SKILL_STATUS.md 中添加(或更新)该卡带的一行,
  如果文件不存在,则用上面的表头创建它
- 每创建一个文件就打印 ✅ [filename]
- 最后打印"Setup complete."

脚本中已包含所有文件路径和内容——
用户只需在 VS Code 终端中运行:
  python setup_cassette.py

告诉我:"复制这个脚本,将其保存为 setup_cassette.py,
放在你的 .opengoat 文件夹中,然后在 VS Code 终端中运行它。
你会看到每个创建的文件旁出现 ✅。"

STEP 9 — 测试卡带
引导我发送一条测试指令,明确指定卡带名称:

openclaw agent --agent ceo "以 [mode-name] 模式工作:请执行以下操作:
1. 确认 memory/_SKILL_STATUS.md 显示 [mode-name] 为 ON。
2. 加载此卡带的 SKILL.md 和 WORKFLOW.md。
3. 确认你理解此卡带下的任务。
4. 向你的 Discord 频道发布准备就绪报告。"

询问我:"智能体回复了什么?
你在 Discord 上看到准备就绪报告了吗?"
如果是:卡带安装确认完成。
如果否:帮我排查问题。

最终输出
确认完成后,展示以下摘要:

---
卡带安装完成
卡带名称:[mode-name]
主智能体:[智能体名称]
已创建文件:
  memory/_SKILL_STATUS.md ✅(已添加一行:[mode-name] — ON)
  skills/[mode-name]/SKILL.md ✅
  skills/[mode-name]/WORKFLOW.md ✅
  skills/[mode-name]/outputs/ ✅
AI 引擎:[引擎]
额外的 API 密钥:[已添加 / 不需要]
状态:ON——智能体已确认准备就绪
---

已准备好进入第7节。

现在开始。请先问我第一个问题。

第2步 — 运行安装脚本

当 AI 礼宾助手完成生成你的卡带文件后,它还会生成一个 Python 安装脚本,其中所有文件路径和内容均已填好。

操作步骤:

  1. 复制 AI 生成的 Python 脚本
  2. 打开 VS Code 终端(Windows:Ctrl+ ,Mac:Cmd+
  3. 在你的 .opengoat 文件夹中新建一个名为 setup_cassette.py 的文件
  4. 粘贴脚本并保存
  5. 运行它:
    python setup_cassette.py

你会看到每个创建文件旁出现 ✅。就这样——无需手动创建文件,也不会有路径混淆。

脚本自动执行的操作:

  • 创建所有文件夹结构
  • 以正确内容写入 SKILL.md 和 WORKFLOW.md
  • 创建 outputs/ 文件夹
  • 在 memory/_SKILL_STATUS.md 中添加该卡带的一行(STATUS:ON)

如果输出中出现任何 ❌,请复制错误信息并请你的 AI 礼宾助手修复它。


使用卡带

所有卡带默认都是 ON 状态——没有"切换"这一步。只需在指令开头告诉任意智能体使用哪个卡带:

openclaw agent --agent ceo "Work in trade mode: give me today's summary."

智能体会将"trade mode"与 memory/_SKILL_STATUS.md 中处于 ON 状态的卡带进行匹配,加载该卡带的 SKILL.mdWORKFLOW.md,并将其应用于你的请求。你也可以不指定卡带名称,直接描述任务——智能体会自动将它与每个处于 ON 状态的卡带的 SKILL.md 进行匹配。

暂停一个卡带: 打开 memory/_SKILL_STATUS.md,将该卡带的 STATUS 设为 OFF。智能体会跳过它,直到你把它重新设为 ON


之后添加更多卡带

随着业务增长,添加更多卡带文件夹:

skills/
├── youtube/
├── trade/
├── restaurant-ops/
└── legal-research/      ← 随时可添加

以相同方式构建每个新卡带:通过 AI 礼宾助手生成 SKILL.md 和 WORKFLOW.md,运行安装脚本。它会自动以 ON 状态添加到 memory/_SKILL_STATUS.md 中——无需切换,只需告诉智能体使用它即可。


BALIA 技能市场 — 即将于2026年Q4开放

市场开放后,两件事将成为可能:

购买卡带 — BALIA 开发的卡带(Crypto Trade、YouTube、E-Commerce、Polymarket BOT)以及经审核批准的社区构建卡带。像其他模式一样,将它们安装到你的卡带文件夹中。

出售卡带 — 如果你构建了一个好用的卡带,可以提交它。每次提交都会经过安全审计和有效性审查。获批后,它会在市场上架,每次有人安装都会为你带来收益。

市场开放时,详情请见 X 上的 @BALIA_OS。


技能卡带系统 — ON/OFF 控制

你的卡带通过一个文件统一管理:memory/_SKILL_STATUS.md。新增的卡带默认为 ON

| Cassette Name       | STATUS | Description                        |
|---------------------|--------|-------------------------------------|
| marketing-outreach  | ON     | SNS / email / YouTube outreach     |
| ai-meeting-sales    | ON     | Sales team AI meeting (Leo)        |
| ai-meeting-daily    | ON     | Daily operations meeting           |
| research-market     | ON     | Market research automation         |

暂停一个卡带: 在该文件中把 ON 改为 OFF。就这么简单。

当一个卡带处于 ON 状态时:

  • 任何任务与之匹配的智能体都会加载该卡带
  • 执行任务
  • 向 Discord 报告:"✅ [cassette-name] executed successfully."

当一个卡带处于 OFF 状态时:

  • 智能体会跳过它,即使任务本来会与它匹配
  • 仍会向 Discord 报告:"⏭️ [cassette-name] skipped — STATUS: OFF"

无论是否执行,每次都会有报告。你随时掌握发生了什么。


如果两个卡带发生冲突

由于每个卡带默认都是 ON 状态,两个卡带之间可能会产生重叠——例如,两个卡带都向同一个 Discord 频道发布消息,或者两个卡带在同一时间都想让同一个智能体去执行相互冲突的任务。

目前没有自动冲突检测。 如果你发现两个卡带互相干扰,打开 memory/_SKILL_STATUS.md,自行将其中一个设为 OFF。这会立即解决冲突——智能体会跳过任何标记为 OFF 的卡带。

由 Security Guardian 提供的自动冲突检测及建议解决方案,计划在未来的更新中推出。


卡带定时执行 — 计划任务

有些卡带需要在固定时间运行——每日会议、早间报告、 周报。请将这些注册到你的操作系统的计划任务程序中。

计划任务触发该卡带,智能体检查 _SKILL_STATUS.md。 如果是 ON → 执行 + Discord 报告。如果是 OFF → 跳过 + Discord 报告。

⚠️ 计划任务卡带的两条规则

  • 必须在注册命令本身中明确指定卡带/模式名称——计划任务程序没有其他方式知道要运行哪个卡带,因此触发动作必须明确写出(参见下方示例中的 [cassette-name])。
  • 不要为同一时间段注册两个计划任务卡带。 同时运行两个卡带可能导致它们争抢同一个智能体或同一个 Discord 频道。请至少间隔几分钟错开执行。

Windows — 任务计划程序

  1. 打开任务计划程序 → 创建基本任务
  2. 名称:BALIA_[CassetteName]
  3. 触发器:每天 → 设置你的时间(例如 21:00)
  4. 操作:启动程序
    • 程序:openclaw
    • 参数:agent --agent [agentid] "Work in [cassette-name] mode: run today's scheduled task."
    • 起始于:C:\Users\%USERNAME%\.opengoat
  5. 完成

无需修改计划任务即可暂停某个计划中的卡带: → 在 _SKILL_STATUS.md 中将 STATUS 设为 OFF。计划任务仍会触发, 智能体会检查 STATUS、跳过并报告。无需修改计划任务本身。


Mac — launchd

创建 ~/Library/LaunchAgents/com.balia.[cassette-name].plist

xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.balia.[cassette-name]</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/openclaw</string>
    <string>agent</string>
    <string>--agent</string>
    <string>[agentid]</string>
    <string>Work in [cassette-name] mode: run today's scheduled task.</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>21</integer>
    <key>Minute</key>
    <integer>0</integer>
  </dict>
</dict>
</plist>

加载它:

launchctl load ~/Library/LaunchAgents/com.balia.[cassette-name].plist

暂停:在 _SKILL_STATUS.md 中将 STATUS 设为 OFF。与 Windows 行为相同。