Bob Shell でスキルを作成および使用する
Bob Shell に再現可能な changelog エントリのワークフローを教える再利用可能なスキルを作成し、明示的に呼び出したり、Bob に自動的にアクティブ化させたりします。
IBM Bob Shell スキルは、SKILL.md ファイルに保存された再利用可能な指示セットであり、Bob に再現可能なワークフローを教えます。このチュートリアルでは、Keep a Changelog 形式のエントリを CHANGELOG.md に追加する changelog-entry スキルを作成し、$changelog-entry で明示的に実行した後、プロンプトがスキルの説明と一致したときに Bob が自動的にアクティブ化する様子を確認します。
スキルを使用すると、毎回のプロンプトで同じフォーマットルールやチェックリストを再入力する手間が省けます。ワークフローを一度定義すれば、そのスキルが該当するときに Bob が常にそれに従います。
前提条件
- まだお持ちでない場合は、Galaxium Travels デモコードをクローンします。
git clone https://github.com/IBM/galaxium-travels - 必須ではありませんが、先に /init と AGENTS.md によるプロジェクトの開始 および Bob Shell 向けの効果的なプロンプトを書く を完了しておくことをお勧めします。
changelog-entry スキルを作成する
Bob Shell は SKILL.md ファイルを含むフォルダからスキルを読み込みます。プロジェクトスキルはプロジェクトルートの .bob/skills/ に配置されるため、Git でコードベースと一緒に追跡し、チームで共有して使用できます。グローバルスキルは ~/.bob/skills/ に配置され、すべてのプロジェクトに適用されます。
スキルフォルダを作成する
Galaxium Travels のルートディレクトリに移動し、スキル用のフォルダを作成します:
cd galaxium-travels
mkdir -p .bob/skills/changelog-entrySKILL.md ファイルを作成する
以下の内容で .bob/skills/changelog-entry/SKILL.md を作成します。任意のテキストエディタを使用するか、記載されているコマンドを実行します:
cat > .bob/skills/changelog-entry/SKILL.md <<EOF
---
name: changelog-entry
description: Adds an entry to CHANGELOG.md using the Keep a Changelog format, creating the file if it does not exist, so change history stays consistent and release-ready.
---
Add an entry to CHANGELOG.md using the Keep a Changelog format (https://keepachangelog.com/).
- If CHANGELOG.md does not exist, create it at the project root with this structure before adding an entry:
# Changelog
All notable changes to this project are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased]
- Add new entries under the `## [Unreleased]` section, under one of these subheadings: `### Added`, `### Changed`, `### Fixed`, `### Removed`. Create the subheading if it is not already present under `## [Unreleased]`.
- Write each entry as a single bullet point in the imperative mood ("Add", not "Added"), starting with a capital letter, with no trailing period.
- Base the entry on the actual diff, not on the wording of the request. Run `git diff` to review what changed before writing the entry.
- Only edit CHANGELOG.md. Do not stage or commit the change.
EOFフロントマターには 2 つの必須フィールドを定義します:
name: スキル名。Bob Shell は$changelog-entryのようにフォルダ名を使用してスキルを参照するため、フォルダ名と一致させてください。description: スキルを名前で直接参照しない場合に、リクエストにそのスキルが適用されるかどうかを判断するために Bob が読み取る内容です。省略した場合、Bob は代わりに指示の最初の行を使用するため、常に明確な説明を記述してください。
閉じ --- より下のすべてが、スキルがアクティブ化されたときに Bob が従う指示のセットになります。
Bob Shell を起動する
Galaxium Travels のルートディレクトリから Agent モード で対話型セッションを開始します:
bob chat --mode agentAgent モードにより、Bob にスキルのアクティブ化やファイルの編集に必要なツールアクセス権が付与されます。Bob Shell からフォルダを信頼するかどうか尋ねられたら、Bob がプロジェクトのスキルを読み込めるようにフォルダを信頼してください。
スキルを直接呼び出す
Bob が従う指示を確認できるように、名前でスキルを参照します。
README.md を編集する
記録する変更を作るために、小さく低リスクな編集を Bob に依頼します:
Add a one-line note to the end of the README.md that says "Powered by IBM Bob."Bob は提案された変更を diff として表示します。Approve を選択して編集を適用します。
スキルを使って変更を記録する
$ を入力してスキルピッカーを開き、changelog-entry を選択します。Bob Shell がプロンプトにスキル参照を挿入します:
$changelog-entry Add a changelog entry for this change.Bob はスキルの使用とファイルの編集の許可を求めます。各リクエストを承認してください。プロジェクトにはまだ CHANGELOG.md が存在しないため、Bob は changelog-entry スキルを読み込んで CHANGELOG.md を作成します。その後、Bob は以下のようなエントリを追加します:
## [Unreleased]
### Added
- Add "Powered by IBM Bob." note to the end of README.md最初の changelog エントリを確認する
Bob に changelog を表示するよう依頼します:
Show me @CHANGELOG.mdエントリは、スキルを使って変更を記録する で Bob が生成した changelog エントリと一致します。
Bob にスキルを自動的にアクティブ化させる
2 回目の変更を行い、スキルの名前を明示せずに Bob に変更を記録するよう依頼します。Bob はスキルの説明からそれが適用可能であることを認識し、自身でアクティブ化できます。
README.md に 2 つ目の編集を加える
Bob に 2 つ目の編集を依頼します:
Add a one-line comment above the main heading in README.md that says "Galaxium Travels".プロンプトが表示されたら編集を承認します。
スキル名を指定せずに変更を記録する
スキル名を指定せずに変更を記録するよう Bob に依頼します:
Add an entry to CHANGELOG.md in Keep a Changelog format.Bob はリクエストが changelog-entry スキルの説明と一致することを認識し、$changelog-entry の参照がなくてもアクティブ化します。求められたら、スキルとファイル編集のリクエストを承認します。Bob は同じ形式で別のエントリを追加します。
両方の changelog エントリを確認する
Bob に changelog を表示するよう依頼します:
Show me @CHANGELOG.mdchangelog には、以下のように ## [Unreleased] の下に 2 つのエントリが含まれるようになります:
## [Unreleased]
### Added
- Add "Powered by IBM Bob." note to the end of README.md
- Add "Galaxium Travels" comment above the main heading in README.mdスキルを管理する
各スキルはディスク上のフォルダであるため、通常のファイルツールで管理できます:
- スキルを一覧表示する: プロジェクトスキルは
.bob/skills/を、グローバルスキルは~/.bob/skills/を確認します。両方の場所に同じ名前のスキルが存在する場合、プロジェクトスキルが優先されます。 - スキルを編集する: その
SKILL.mdファイルを編集します。テンプレートやチェックリストなどのサポートファイルをスキルフォルダに追加することもできます。 - スキルを参照する: Bob Shell で
$を入力するか/skillsを入力して、プロンプトにスキル参照を挿入します。
トラブルシューティング
スキルが $ ピッカーに表示されない
ファイルパスが .bob/skills/changelog-entry/SKILL.md であること、フロントマターに name と description が含まれていること、およびフォルダが信頼されていることを確認してください。詳細については、信頼できるフォルダを参照してください。スキルフォルダ名は、changelog-entry のように小文字のケバブケースにする必要があります。Bob は無効な名前のフォルダをエラーを表示せずにスキップします。スキルを追加した後は Bob Shell を再起動してください。
Bob がスキルを自動的にアクティブ化しない
Bob はリクエストをスキルの description と照合します。説明の単語を使用するようにプロンプトを言い換えるか、$changelog-entry でスキルを直接参照してください。
次のステップ
このチュートリアルでは、スキルを使用してワークフローを一度定義し、Bob に一貫して適用させる方法を学びました。$<skill-name> でスキルを明示的に参照することも、説明に基づいて Bob に自動的にアクティブ化させることもできます。
スキルにテンプレートやサポートファイルを追加する方法については、スキルを参照してください。
独自の役割、指示、ツールアクセス権を持つ専用のペルソナを構築するには、カスタムモードを参照してください。