はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Gemini Cli】Gemini CliでAgent SkillsとSubagentsが一応使えるようになった

はじめに

巷で話題のAgent SkillsSubagentsですが、どうやらGemini Cliでも動かすこと自体はできるフェーズに入っていることに気づきました。

code.claude.com

code.claude.com

具体的にいつから入ったや使い方を書き残しておきたいと思います。

概要

Agent SkillsSubagentsもGemini CliのIssueにて進捗情報を知ることができます。

github.com
github.com

どちらもまだ道半ばですが、

で必要最低限動作していることを確認しました。

> /skills list

Available Agent Skills:

  - code-reviewer
      Expertise in reviewing code for style, security, and performance. Use when the user asks for "feedback," a
      "review," or to "check" their changes.
> "今日の天気は晴れです。"を英語にしてください。

╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓  Delegate to Agent Delegating to agent 'text_translator'                                                           │
│                                                                                                                      │
│                                                                                                                      │
│ Subagent text_translator Finished                                                                                    │
│                                                                                                                      │
│ Termination Reason:                                                                                                  │
│  GOAL                                                                                                                │
│                                                                                                                      │
│ Result:                                                                                                              │
│ Today's weather is sunny.                                                                                            │
│                                                                                                                      │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ 今日の天気は晴れです。の英語訳は「Today's weather is sunny.」です。

使い方

Agent Skills

experimental.skillstrueに設定してあげます。

"experimental" : {
    "skills" : true
}

.gemini/skills/にディレクトリを作成し、SKILL.mdを作成します。ここら辺は本筋からずれるのでgemini-cliのドキュメントを参照してみてください。
geminicli.com

.                                                                                                                    
└── .gemini                                                                                                                                                                                                
   └── skills                                                                                                       
       └── code-reviewer                                                                                            
           └── SKILL.md

Subagents

experimental.enableAgentstrueに設定してあげます。

"experimental" : {
    "enableAgents" : true
}

加えてsettings.jsontools.coredelegate_to_agentを定義してあげます。

"tools" : {
    "core": [
        "delegate_to_agent"
    ]
},

gemini-cli/docs/hooks/index.md at 93b57b82c10c05a6de779f7be5dfbd4da34b8f85 · google-gemini/gemini-cli · GitHub
gemini-cli/packages/core/src/tools/tool-names.ts at 93b57b82c10c05a6de779f7be5dfbd4da34b8f85 · google-gemini/gemini-cli · GitHub


後は.gemini/agents/agent-name.tomlを配置してあげればOKです。

.                                                                                                                    
└── .gemini                                                                                                          
   └── agents                                                                                                       
       └── text_translator.toml                                                                                         
# エージェントの一意な名前。`delegate_to_agent`で呼び出す際に使用します。
name = "text_translator"

# エージェントの機能に関する人間が読める形式の簡単な説明。
description = "指定されたテキストを、指定されたターゲット言語に翻訳します。"

# プロンプトテンプレートを定義します。
[prompts]
# システムプロンプトは、エージェントの役割、ペルソナ、および高レベルの指示を定義します。
system_prompt = """
あなたは、テキストを翻訳するエキスパートです。
ユーザーから提供されたテキストと翻訳先の言語を受け取り、翻訳結果を返します。
翻訳が完了したら、必ず `complete_task(result=<翻訳結果の文字列>)` を呼び出してタスクを終了してください。
"""
 
# クエリテンプレートは、ユーザーの入力をエージェントへの最終的なプロンプトにどのようにフォーマットするかを定義します
# ${query} ような変数は、`delegate_to_agent`呼び出し時に渡される引数に置き換えられます。(Available inputs: query, cliVersion, activeModel, today)
query = """
query = "${query}"
"""

気をつける点として、${query}のように記述するとそこにユーザーのメッセージが展開されるようです。

気をつけてほしいこと

2026/1/12時点ではまだexperimentalですが、いずれは外れると思います。その場合はsettings.jsonの書き方も変わると思うのでご注意ください。