<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Long-Running Tasks on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/long-running-tasks/</link>
        <description>Recent content in Long-Running Tasks on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Tue, 26 May 2026 23:44:37 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/long-running-tasks/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Codex Goal 徹底解説：AI Agent を数時間動かし続ける目標駆動ワークフロー</title>
        <link>https://knightli.com/ja/2026/05/26/codex-goal-persistent-goals-ai-agent-long-running-workflow/</link>
        <pubDate>Tue, 26 May 2026 23:44:37 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/26/codex-goal-persistent-goals-ai-agent-long-running-workflow/</guid>
        <description>&lt;p&gt;ブラウザ、ターミナル、IDE の中で動く AI Agent は、ますますコードを書けるようになっています。しかし多くの開発者が本当に困っているのは、「できない」ことではなく、「途中までやって完了したと言ってしまう」ことです。&lt;/p&gt;
&lt;p&gt;小さな ticket は coding agent に向いています。ボタンを直す、エンドポイントを追加する、短い文言を変える、テストを 1 つ追加する。目標が明確で、境界が小さく、検証方法も分かりやすいからです。しかし、大規模な移行、モジュール横断のリファクタリング、テストスイート修正、依存関係アップグレード、prompt eval の最適化になると、Agent はよく次の状態に陥ります。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;それらしい中間状態まで進んだところで、早すぎるタイミングで止まってしまう。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Codex Goal / Persistent Goals が解決しようとしているのは、この「早すぎる終了」問題です。重要なのは Agent に何度もループさせることではありません。明確な目標に向かって作業を続けさせ、検証可能な完了基準を満たすまで進めることです。&lt;/p&gt;
&lt;h2 id=&#34;codex-goal-が扱うのはループではなく停止条件&#34;&gt;Codex Goal が扱うのはループではなく停止条件
&lt;/h2&gt;&lt;p&gt;長時間タスクの自動化は、しばしば次のような粗い指示から始まります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;コードを確認し続け、問題を修正し、エラーがなくなるまで続ける。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;もう少し機械的にすると、こうなります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;10 回ループする：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. テストを実行する
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. モデルに失敗を修正させる
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. もう一度テストを実行する
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;このような rough loop は Agent を長く動かせますが、重大な弱点があります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;いつ本当に止まるべきか分からない。&lt;/li&gt;
&lt;li&gt;「目に見えるエラーがなくなった」ことが「タスク完了」と同じか判断できない。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Codex Goal の要点はループ回数ではなく、goal、state、judge stop condition です。つまり Agent は、今回の作業の目標、現在どこまで進んだか、そして何がタスク完了の証拠になるかを理解する必要があります。&lt;/p&gt;
&lt;p&gt;長時間 Agent の分かれ目は、「多くのステップを実行できるか」ではなく、「自分にまだ何が足りないかを判断できるか」です。&lt;/p&gt;
&lt;h2 id=&#34;goal-と普通の-prompt-の違い&#34;&gt;Goal と普通の prompt の違い
&lt;/h2&gt;&lt;p&gt;普通の prompt は一回限りの命令に近いものです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このプロジェクトのテストを直して。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Goal prompt は、小さなタスク契約に近くなります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;目標：現在のリポジトリで失敗しているテストを修正する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;範囲：src/ と tests/ のみ変更する。ビルドスクリプトは変更しない。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;完了基準：npm test がすべて通り、変更によって lint エラーが増えないこと。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;検証コマンド：npm test &amp;amp;&amp;amp; npm run lint。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;失敗時：3 回試しても修正できない場合、残っている失敗ケース、試した方法、ブロッカーを出力する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;出力：変更ファイル、修正理由、検証結果をまとめる。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最大の違いは、Goal prompt が「完了」を定義している点です。&lt;/p&gt;
&lt;p&gt;definition of done がないと、Agent は「コードを変更した」ことを「タスクを完了した」と誤解しがちです。明確な完了基準があれば、Agent はテスト、ログ、diff、ビルド結果、eval スコアといった外部証拠に基づいて作業を続ける必要があります。&lt;/p&gt;
&lt;h2 id=&#34;llm-judge-stop-condition-が重要な理由&#34;&gt;LLM judge stop condition が重要な理由
&lt;/h2&gt;&lt;p&gt;長いタスクで難しいのは、Agent にコマンドを実行させることではありません。次の判断をさせることです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本当に完了したのか？&lt;/li&gt;
&lt;li&gt;一部のテストが通っただけではないか？&lt;/li&gt;
&lt;li&gt;1 つの問題を直した代わりに別の問題を入れていないか？&lt;/li&gt;
&lt;li&gt;さらに調査し、検証し、ある方針を戻す必要があるか？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここで LLM judge stop condition が重要になります。&lt;/p&gt;
&lt;p&gt;理想的には、Agent は「最後のコマンドの終了コードが 0 だったか」だけを見るべきではありません。次の点も総合的に判断する必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ユーザーが指定した完了基準をすべて満たしているか。&lt;/li&gt;
&lt;li&gt;変更が許可された範囲内に収まっているか。&lt;/li&gt;
&lt;li&gt;test、lint、build、eval を実行したか。&lt;/li&gt;
&lt;li&gt;失敗ログに未解決の項目が残っていないか。&lt;/li&gt;
&lt;li&gt;明らかな副作用やリスクがないか。&lt;/li&gt;
&lt;li&gt;最終出力が人間のレビューに十分な証拠を含んでいるか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり judge は「成功」と宣言するだけではありません。Agent が自分を納得させるだけの終了をしてしまうのを防ぐ役割も持ちます。&lt;/p&gt;
&lt;h2 id=&#34;goal-に向いているタスク&#34;&gt;Goal に向いているタスク
&lt;/h2&gt;&lt;p&gt;Codex Goal / Persistent Goals は、複数回の探索と検証が必要な複雑な coding work に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コード移行：古いフレームワークから新しいフレームワークへ、CommonJS から ESM へ、古い API から新 API へ移行する。&lt;/li&gt;
&lt;li&gt;大規模リファクタリング：モジュール分割、境界整理、重複実装の置き換え、複雑度低減。&lt;/li&gt;
&lt;li&gt;テスト修正：失敗ケースを分析し、原因を特定し、修正後に繰り返し検証する。&lt;/li&gt;
&lt;li&gt;依存関係アップグレード：フレームワーク、SDK、ビルドツールを上げながら breaking changes に対応する。&lt;/li&gt;
&lt;li&gt;Prompt eval 最適化：評価を実行し、失敗サンプルを分析し、prompt や tool call の方針を調整する。&lt;/li&gt;
&lt;li&gt;技術的負債の整理：明確なルールに沿って古い書き方を置き換え、挙動を保つ。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの共通点は、中間状態が多く、失敗原因が一度で見えず、完了判断が検証結果に依存することです。&lt;/p&gt;
&lt;h2 id=&#34;goal-だけに頼るべきではないタスク&#34;&gt;Goal だけに頼るべきではないタスク
&lt;/h2&gt;&lt;p&gt;Goal は万能ではありません。次のようなタスクを 1 つの長い prompt だけで進めるのは危険です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;目標が非常に曖昧。たとえば「プロダクト成長を改善する」。&lt;/li&gt;
&lt;li&gt;期間が長い。たとえば数週間にわたる SEO、GEO、広告運用の最適化。&lt;/li&gt;
&lt;li&gt;コンテンツ、データ、広告、サポート、事業指標をまたぐクロスシステム調整が必要。&lt;/li&gt;
&lt;li&gt;本番リスクがある。たとえばデータベース変更、本番設定、財務操作、アカウント権限変更。&lt;/li&gt;
&lt;li&gt;テスト、指標、ログ、人間の受け入れ基準など、検証手段がない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この種のタスクは Goal ではなく Mission に近いものです。&lt;/p&gt;
&lt;p&gt;Goal は数時間から 1、2 日程度の深い実行に向いています。Mission には状態、履歴、スケジュール、人間の承認、段階的な振り返り、長期指標が必要です。たとえば SEO / GEO / Ads の最適化は、Agent にコンテンツを書かせたりパラメータを調整させたりするだけでは足りません。戦略、実験、データ変化、次のアクションを継続的に記録する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;良い-goal-prompt-のテンプレート&#34;&gt;良い Goal Prompt のテンプレート
&lt;/h2&gt;&lt;p&gt;使いやすい Goal prompt には、少なくとも次の要素を含めるべきです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;目標：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最終的に達成したい結果を一文で書く。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;背景：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;現在の問題、関連ファイル、業務上の制約、これまでの試行を説明する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;範囲：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;変更してよいディレクトリ、ファイル、モジュールと、触ってはいけない場所を書く。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;完了基準：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;検証可能な definition of done を列挙する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;検証コマンド：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;実行すべき test、lint、build、eval、script を明記する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;失敗戦略：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;完了できない場合、原因、試した方法、残るブロッカーを出力させる。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;リスク境界：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;破壊的操作、本番設定、秘密情報、データベース、外部サービスは人間の確認を必須にする。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;提出形式：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;変更点、検証結果、リスク、次の提案をまとめさせる。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;長時間タスクの品質を決めるのは、prompt の美しさではなく、完了基準がどれだけ硬いかです。&lt;/p&gt;
&lt;h2 id=&#34;goal-buddy-の価値&#34;&gt;Goal Buddy の価値
&lt;/h2&gt;&lt;p&gt;長時間タスクが失敗するのは、Agent の能力不足ではなく、人間が最初にタスクを十分に定義していないことが原因の場合も多いです。&lt;/p&gt;
&lt;p&gt;Goal Buddy のような補助ツールの価値は、正式に Agent に任せる前に、目標、境界、完了基準、検証方法を準備することにあります。タスクの事前チェックリストとして、次のように問いかけます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;このタスクの最終的に見える成果は何か？&lt;/li&gt;
&lt;li&gt;どのディレクトリは変更でき、どこは変更してはいけないか？&lt;/li&gt;
&lt;li&gt;成功を証明するコマンドは何か？&lt;/li&gt;
&lt;li&gt;失敗時に続けるべきか、どこまで試すべきか？&lt;/li&gt;
&lt;li&gt;段階的な commit が必要か？&lt;/li&gt;
&lt;li&gt;どの操作は人間の承認が必要か？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このステップは冗長に見えますが、Agent が途中でずれたり、早く止まりすぎたり、レビューしづらい巨大な差分を作ったりする確率を大きく下げます。&lt;/p&gt;
&lt;h2 id=&#34;codexclaude-codeopencode-ユーザーへの実践アドバイス&#34;&gt;Codex、Claude Code、OpenCode ユーザーへの実践アドバイス
&lt;/h2&gt;&lt;p&gt;Codex、Claude Code、OpenCode、OpenClaw、または類似の coding agent を使っているなら、長時間タスクは次のように扱うとよいです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず現在の作業ツリーを commit し、きれいな rollback point を作る。&lt;/li&gt;
&lt;li&gt;依頼を曖昧な一文ではなく Goal として書く。&lt;/li&gt;
&lt;li&gt;変更してよい範囲と禁止範囲を明確にする。&lt;/li&gt;
&lt;li&gt;検証コマンドを与え、できれば各ラウンドで Agent が自分で実行できるようにする。&lt;/li&gt;
&lt;li&gt;完了できない場合は成功を捏造せず、ブロッカーを報告させる。&lt;/li&gt;
&lt;li&gt;ファイル削除、データベース変更、デプロイ設定変更など高リスク操作には人間の確認を置く。&lt;/li&gt;
&lt;li&gt;テスト結果と変更サマリーを含む最終成果だけを受け入れる。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;長時間 Agent の正しい使い方は、「一晩好きにやらせる」ことではありません。明確な目標、堅いガードレール、検証可能な出口を与えることです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Codex Goal / Persistent Goals の意味は、coding agent を「一文の指示を実行する存在」から「目標に向かって作業を続ける存在」へ進めることにあります。&lt;/p&gt;
&lt;p&gt;最も向いているのは、複雑だが境界が明確なエンジニアリングタスクです。移行、リファクタリング、テスト修正、依存関係アップグレード、eval 最適化などです。一方で、曖昧で周期が長く、検証標準がないビジネス系タスクには向きません。それらは Mission システムとして設計する方が自然です。&lt;/p&gt;
&lt;p&gt;これからの AI Agent の競争軸は、モデルがコードを書けるかだけではないかもしれません。目標に向かって継続的に進み、正しい停止タイミングを判断し、人間がレビューできる証拠を残せるかが重要になります。&lt;/p&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1a3LF6fE2D/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Codex Goal 深度解析：让 AI Agent 连续工作数小时，不再提前摆烂&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-the-codex-app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing the Codex app&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
