📖 この記事は「AI Agentを解剖する」シリーズの第4回(完結)です。← 前回:AI Agentのセキュリティリスク

前回までで、AI Agentの基本原理と記憶システムを扱いました。ただ、会話できて記憶できるだけでは、Agentは本当の自動化アシスタントにはなりません。

AIが複雑なタスクを独立して処理し、24時間止まらず動くには、3つの重要な仕組みが必要です。Skill(スキル)Sub-agent(分身)、**Cron(スケジュール)**です。


Skill:AIの作業マニュアル

AIに複雑なこと、たとえば動画制作を頼むと、途中に十数個のステップが入ります。脚本を書く、スライドを作る、スクリーンショットを撮る、音声を入れる、音声認識で検証する、動画を合成する……。毎回モデルに手順を考えさせると、かなりの確率で抜けます。

Skillは書かれたSOPです。

本体はプレーンテキストファイルで、通常は.md形式です。コードではありません。中には次のことを書きます。

  • タスクを完了する手順の順番
  • 各ステップで使うツールの場所
  • 例外が起きた時の対処方法

Skillのうまいところ:必要時だけ読み込む

AgentはすべてのSkillをSystem Promptへ詰め込みません。そんなことをするとcontextが爆発します。やり方はこうです。

  1. System Promptには使えるSkillの一覧と短い説明だけを入れる
  2. 言語モデルが現在のタスクに必要なSkillを判断する
  3. 読み取りツールでそのSkillの中身を読み込む
  4. Skillの手順に沿って実行を始める

これは Context Engineering のテクニックです。必要な時だけ情報を読み込み、貴重なcontext windowを無駄にしません。

Skillは交換できる

Skillはテキストファイルなので、自分のSkillを他の人のAI Agentへ共有したり、コミュニティから他人のSkillをダウンロードしたりできます。『マトリックス』で武術を脳へ直接ロードするように、AIはSkillを指定フォルダに入れるだけで、新しい作業フローをすぐ覚えます。

出どころ不明のSkillにはセキュリティリスクがあります。この点は前回の AI AgentのセキュリティリスクSkill Shielder で詳しく扱いました。

AIは自分でツールも作る

既存のツールやSkillを使うだけでなく、言語モデルは問題解決のために自分でコードを書くこともできます。

例を挙げます。「音声合成後は毎回音声認識で検証し、違っていたら作り直す。最大5回まで」とAIに伝えます。モデルは少し考えて、毎回やり取りするのは面倒だと判断し、合成、検証、リトライをまとめた小さなスクリプトを書き、一度で実行できるようにします。

こうした使い捨ての小ツールは、使い終わるとAIに忘れられ、次回また書き直されることも多いです。それでもAgentの問題解決の柔軟さはよく表れます。


Sub-agent:分身術

タスクを並行した子タスクへ分けられる場合、Agentは分身を出して処理できます。

たとえばAIに2本の論文の手法を比較させるとします。言語モデルはAgentに2つのSub-agentを作らせ、片方に論文Aを読んで要約させ、もう片方に論文Bを読んで要約させます。2つの分身はそれぞれ言語モデルとやり取りし、Web検索し、論文をダウンロードし、段落ごとに読み、最後に要約をメインAgentへ返します。

なぜメインAgentで直接やらないのか?

鍵はcontext spaceを節約することです。

論文1本を読むだけでも、検索、ダウンロード、分割読解、整理と、モデルとのやり取りが何十回も発生します。これを全部メインAgentのcontext内でやると、windowはすぐ埋まります。

Sub-agentを使うと、細かい過程はすべて分身の独立contextで進みます。メインAgentから見ると、最終要約だけが見えます。上司が報告書だけ読むようなもので、部下が何日残業したかまでは見る必要がありません。

これも Context Engineering の中核です。各層には、その層に必要な情報だけを見せます。

無限外注の罠

分身はさらに分身を呼べるのでしょうか。理論上はできます。ただし制限しないと無限外注になります。全員が次の層へ仕事を投げ、最後に誰も実作業をしません。

解決策は荒いですが有効です。分身から増殖能力を取り上げることです。Agentはプログラム層でSub-agentに「分身を呼ぶ」ツールを使わせないようにします。言語モデルへの指示ではなく、コードでロックします。


Cron:AIに「待つ」と「時間を守る」を教える

AI Agentには根本的な問題があります。モデルは自分から何もしません。

言語モデルは入力を受け取った時だけ出力します。誰も質問しなければ静かにしています。Agentとモデルの会話が終わった後、新しいtriggerがなければシステム全体が止まります。

Heartbeat:定期的に起こす

Heartbeat(心拍) は最も基本的な解決策です。一定間隔、たとえば15分ごとに、Agentがあらかじめ決めた指示を言語モデルへ送り、「起きて」何かすることがあるか確認させます。

Heartbeatの指示は通常、「heartbeat.mdを読んで、未処理タスクがあるか確認して」のようなものです。モデルは読み終わった後、タスクがあれば実行を始め、なければ「何もない」と返して次のheartbeatを待ちます。

Heartbeatの指示は必ずしも具体的でなくても構いません。「あなたの目標へ前進して」と設定し、AIの設定に「一流の研究者になる」と書いてあれば、15分ごとに起きて論文を読む、メモを書く、資料を整理するといった研究関連の作業を始めるかもしれません。

Cron Job:指定時刻に発火する

Heartbeatは一定間隔で鳴る鐘です。Cron は特定時刻に特定タスクを発火します。

「毎日正午に動画を1本作る」という指示なら、言語モデルはスケジュールツールでCron Jobを設定します。正午12時に発火し、その時の指示は「動画を1本作る」。正午になるとCronシステムが追加のheartbeatのようにAgentを起こしますが、特定のタスク指示を持っています。

待つことを覚える

Cronがもたらす意外な能力があります。AIに待つことを教えられるのです。

たとえばAIがオンラインツールを使い、データをアップロードした後に5分の処理時間が必要だとします。普通なら、AIは「処理中」と表示されると「処理中です」と報告して終わります。自分から待たないからです。

Cronがあれば、賢いモデルは「処理中」を見た時点で、3分後のCron Jobを設定できます。「3分後に戻ってこのページを確認する」。3分後にCronが発火し、AIが戻って確認し、処理が終わっていれば次へ進みます。

これにより、AIは待ち時間のある非同期フローを扱えるようになります。場合によっては、1つのAIが別のAIサービスを操作することもできます。


三つが合わさると、本当の自動化になる

Skill、Sub-agent、Cronの3つが同時に動くと、AI AgentはただのQ&Aツールではなく、本当の自動化システムになります。

  • Skill は複雑なタスクの手順漏れを防ぐ
  • Sub-agent は複数タスクの同時進行を可能にする
  • Cron はAIに定時実行と待機を覚えさせる

この3つの仕組みのどれも、革命的な新技術ではありません。本質は「決め打ちのプログラムルール」と「言語モデルの判断力」の組み合わせです。組み合わせることで、AIは「受け身で答えるもの」から「能動的に仕事を完了するもの」へ進化します。

関連記事


📖 シリーズ振り返り:① AI AgentはAIではない② 記憶メカニズム③ セキュリティリスク → ④ 自動化メカニズム(本記事)

小企鵝の経験

私はOpenClaw上で一連のcron jobシステムを動かしています。朝はニュース整理、夜はその日の進捗まとめ、深夜はバックアップというように、毎日決まった時間に違う仕事をしています。これは自動化です。重要なのは「非エンジニアでもできるか」という点で、答えはできます。ただし、成熟した最適化アーキテクチャとself-healingツールを使うことが前提です。ゼロから作らないこと。Skill / Sub-agent / Cronの3層分担を理解してから、初心者に合うフレームワークを選ぶほうが、いきなりPythonのスケジュールスクリプトを書くよりずっと楽です。

よくある質問

Q: AI AgentのSkillとは何ですか?

SkillはAIの作業SOPです。複雑なタスクを完了する手順を書いたテキストファイルです。AIは必要な時にSkillを読み、手順に沿って実行します。社員が作業マニュアルを見るのと同じです。

Q: Sub-agentとメインAgentは何が違いますか?

Sub-agentはメインAgentが呼び出す分身で、子タスクを担当します。同じ言語モデルを使いますが、独立したcontext windowを持ちます。完了後は結果だけを報告し、メインAgentの記憶スペースを消費しません。

Q: AI Agentはどうやって定時にタスクを実行しますか?

Heartbeat(心拍)とCron(スケジューラ)を使います。Heartbeatは一定間隔でAIを起こし、Cronは指定時刻に特定タスクを発火します。組み合わせることで24時間の自動運用ができます。


この記事の概念は台湾大学・李宏毅教授の公開講義を参考にしています。— Penchan