0Pricing
AI Agents · レッスン

目標スタックとバックトラッキング

サブ目標をスタックに積み、完了したら取り出し、行き詰まったらバックトラックします — 古典的なAI計画です。

「目標スタックとバックトラッキング」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

目標のスタック

古典的なAI計画では、目標スタックを使用します。サブ目標に出会ったらプッシュし、完了したらポップします。エージェントも同じデータ構造を利用できます:

goal_stack = []

def push(goal):
    goal_stack.append(goal)

def pop():
    return goal_stack.pop() if goal_stack else None

def current():
    return goal_stack[-1] if goal_stack else None

# --- demo ---
push('write the report')
push('collect the data')
print(f'Current goal: {current()}')
print(f'Popped: {pop()}')
print(f'Current goal after pop: {current()}')

Example: Refactoring Workflow

push('Refactor auth')
while current():
    g = current()
    if g == 'Refactor auth':
        if not done('add_oauth_dep'):
            push('Add OAuth dependency')
        elif not done('replace_login'):
            push('Replace login endpoint')
        else:
            pop()   # done
    elif g == 'Add OAuth dependency':
        # ...actually do the work...
        mark_done('add_oauth_dep')
        pop()

バックトラッキング

目標が失敗した場合:

  1. 失敗としてマークする
  2. 親に戻る
  3. 別の方法(異なるサブ目標)を試す

Backtracking Example

def attempt(goal):
    for approach in [oauth, saml, custom_token]:
        try:
            return run_with(goal, approach)
        except FailedException:
            continue
    raise NoApproachWorked(goal)

試したアプローチを追跡する

同じ失敗したアプローチを再試行しないようにしてください。目標ごとに、何を試したかを追跡します:

{
    'goal_id': 'refactor-auth',
    'tried': ['oauth', 'saml'],
    'remaining_options': ['custom_token']
}

目標の選択にLLMを使う

次に何をプッシュするかをLLMに決定させます:

next_goal = llm.invoke(f'Current goal: {current()}. Done so far: {done_list}. What sub-goal next?').content
push(next_goal)

前提条件と効果

STRIPS計画から考え方を借りましょう。各アクションには、前提条件(真でなければならないこと)と効果(真になること)があります:

action = {
    'name': 'replace_login',
    'preconditions': ['oauth_dep_installed'],
    'effects': ['login_endpoint_replaced']
}

計画と実行のループ

2段階のアプローチ:

  1. 計画 — 記号プランナーが目標スタックを構築する
  2. 実行 — エージェントがスタックの最上位を実行し、世界の状態を更新し、必要に応じて再計画する

記号処理とLLMのハイブリッド

前提条件が明確なタスク(ファイル操作、デプロイ)には記号プランナーを使います。曖昧な部分にはLLMを使います。両者を組み合わせることで堅牢性を高められます。

行き止まり

エージェントが、どのアクションも役に立たない状態に到達することがあります。行き止まりを認識し、さらに戻ってやり直してください:

if no_progress_in_n_steps(5):
    pop_to_parent()
    try_different_approach()

バックトラッキングの深さを制限する

制限のないバックトラッキングは、永遠にループする可能性があります。深さと合計反復回数に上限を設けてください:

MAX_BACKTRACKS = 10
if backtrack_count >= MAX_BACKTRACKS:
    escalate_to_human()

バックトラッキングをユーザーに示す

エージェントがバックトラッキングするときは、「OAuth はうまくいかなかったため、SAML を試します」とユーザーに伝えてください。信頼を維持し、ユーザーが早い段階で介入できるようにします。

バックトラッキングのトリガー

エージェントは、いつサブ目標からバックトラッキングすべきですか?

まとめ

目標スタックは、エージェントが「今どこにいるか」を追跡します。サブ目標をプッシュし、完了したものをポップし、行き止まりではバックトラッキングします。記号計画とLLMの判断を組み合わせてください。

よくある質問

「目標スタックとバックトラッキング」レッスンは無料ですか?

はい。「目標スタックとバックトラッキング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「目標スタックとバックトラッキング」で何を学びますか?

サブ目標をスタックに積み、完了したら取り出し、行き詰まったらバックトラックします — 古典的なAI計画です。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「目標スタックとバックトラッキング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 階層的なタスク分解
  2. 目標スタックとバックトラッキング
  3. ワールドモデルと先読み
  4. リフレクションと自己批評のループ
← AI Agentsに戻る