日々の開発において、AIエージェントと交わした会話には再利用したい手順やプロジェクト固有のルールが多く含まれています。しかし、AIがシステム全体の指示書を自動で直接書き換えてしまうと、予期せぬ動作を招く恐れがあります。
そこで本記事では、CodexやClaude Codeを利用し、作業の会話ログから「規約」と「Skill」の候補となる下書きを自動生成する手順を紹介します。自動化するのは安全な候補ファイルの作成までにとどめ、人間が内容を精査して正式な設定として採用するまでの実践的な流れを解説します。記憶の自動抽出と再利用のプロセスを明確に区別し、必要な手順を正確にエージェントへ定着させたい担当者の方はぜひ参考にしてください。
自動生成するのは規約とSkillの下書き

CodexやClaude Codeを用いた作業において、過去の会話から得た知見を次回の作業に再利用するには、まずツールが持つ記憶や拡張機能の役割を区別することが重要です。
AIエージェントには作業中の文脈を保持する自動メモリ機能がありますが、これは新しいルールや作業手順を永続的なファイルとして自動的に採用するものではありません。プロジェクト全体で再利用すべき知識は、大きく常設規約とSkillの2つに分けられます。
- 常設規約 常に伝えて適用したい短い指示のことです。Codexでは
AGENTS.md、Claude CodeではCLAUDE.mdというファイルに記述します。 - Skill 具体的な作業手順や必要なスクリプトのまとまりです。nameやdescriptionなどのYAML frontmatterを持つ
SKILL.mdとして作成します。Codexでは.agents/skills/<name>/SKILL.mdに配置し、$skill-nameや/skillsなどで明示起動したり、説明文から暗黙的に選択させます。Claude Codeの場合は.claude/skills/<name>/SKILL.mdに配置し、/skill-nameでの明示起動や説明文に基づく自動選択を利用します。
今回構築するのは、日々の作業会話から抽出した原文、適用条件、確認方法をもとに、常設規約の案やSKILL.mdの本文案を自動生成する仕組みです。この段階ではあくまで下書きであるため、生成されたファイルは本番のSkillフォルダには直接置かず、learning-candidatesなどの別のフォルダに保存します。最終的に人間が内容を確認して採否を判断し、本番環境へ配置するという流れをとります。
会話を読んで候補ファイルを作る

作業の会話から規約やSkillの候補となるファイルを生成するには、ログイン済みのCodex CLIとPython 3の標準ライブラリを利用します。既存のCLI認証や通常の利用枠を引き継ぐため、新しくAPIキーを設定する必要はありません。
まず、配布されているサンプルのZIPファイルをダウンロードし、手元の環境へlearning-sampleという名前で展開します。ターミナルを開き、以下のコマンドでサンプルスクリプトを実行します。
python3 learning-sample/demo.pyこのdemo.pyは、機密情報を含まない3つの架空の発言と、疑似的なセッション終了のイベントを作成するスクリプトです。内部では、標準入力から受け取った会話の内容をcodex exec --sandbox read-only --output-schema schema.json -o candidate.json -といったコマンドへ渡しています。これにより、非対話モードを利用して指定したスキーマに沿った回答を得ることができます。AIモデルに対して直接コマンドの実行や自動的な採用を指示するのではなく、JSON形式で結果を返させ、その結果をローカルの処理で下書きファイルとして保存する仕組みです。
実行が終わると、learning-sample/demo-project/learning-candidates/<id>/という候補専用のディレクトリが作成されます。この中に元の出力であるcandidate.jsonのほか、抽出された内容に従ってrule-01.mdという規約の下書きや、skill-02/SKILL.mdというSkillの下書きが出力されます。なお、生成処理には180秒の上限があり、自動での再試行は行われません。失敗した場合は、同じディレクトリにerror.jsonが残ります。
自社の検証で同じ架空会話を使って生成処理を1回実行したところ、規約とSkillの候補がそれぞれ1件ずつ生成されました。これはあくまで会話から下書きが生成されることを確認したものであり、実際にCSVのデータ処理を成功させたわけではありません。
生成された規約のファイルには、「取引先コードは数値へ変換せず文字列として扱い、CSVの読み込みから出力まで先頭のゼロを保持する。出力後は元CSVの値と文字列で照合する。」というプロジェクト全体で留意すべきルールが書かれていました。
一方でSkillのファイルには、preserve-customer-code-zerosという名称や概要に加え、対象列の意味確認、文字列の処理、ファイルへの出力、元の値との照合という4つの実行手順が整理されていました。会話の中で一時的に扱ったであろう「test.csv」という個別のファイル名は手順に含まれておらず、次回以降も汎用的に利用できる形として候補が抽出されていることがわかります。
終了フックで受付し、生成処理を外へ分ける

日々の開発作業において、AIエージェントの会話が終了したタイミングを自動で検知するにはフックという機能を使います。Codexには、開いた会話のアーカイブや削除、通常終了、あるいはすべての接続クライアントで会話を開かず30分間待機した際などに発生するSessionEndというイベントがあります。タブの切り替えや、1回ごとの応答終了(Stopイベント)とは異なり、各製品が定めるセッション終了の条件に応じて実行されます。
しかし、この終了フックの呼び出しはエージェント本体の処理を一時的に止めて行われる同期処理であり、実行時間には厳格な制限があります。Codexの場合は既定で1秒、設定で延長しても最大3秒でタイムアウトし、Claude Codeの場合も共有で既定1.5秒に制限されています。この短い時間内にAIによる下書き生成の完了を前提にしないため、終了フックの中に生成処理を直列で接続するのではなく、「処理の受付」だけを行い、実際の生成処理は完全に外へ分ける構成をとります。
まず、受付処理を有効にするために、機密を含まないテスト用のプロジェクトルートへサンプルのスクリプト一式を配置し、ALLOW_LEARNINGという空ファイルを作成して対象であることを明示します。
touch /absolute/project/ALLOW_LEARNING次に、エージェントの設定ファイルに受付スクリプト(enqueue.py)を登録します。Codexの場合は.codex/hooks.jsonを編集し、絶対パスを使って以下のようにコマンドを追加します。登録後はエージェント内で/hooksコマンドを実行し、定義の内容をレビューして信頼(trust)する手順が必要です。
{
"hooks": {
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "python3 /absolute/project/learning-sample/enqueue.py /absolute/project",
"timeout": 3
}
]
}
]
}
}Claude Codeを使用する場合は、同様の短い受付コマンドを.claude/settings.jsonのhooks.SessionEndに追加します。このとき、既存の設定全体を誤って上書きしないよう注意して追記します。
この受付スクリプトは、AIによる生成処理を一切呼び出しません。対象のプロジェクトディレクトリが一致し、かつALLOW_LEARNINGファイルが存在する場合にのみ動作し、受け取ったセッションIDやログのパスをJSONファイルとして記録します。同一の会話が重複して登録されないように制御されており、後段のワーカーは未知のログ形式や大きすぎる入力を検知した場合は、黙って切り詰めることなく安全に停止します。
受付の準備ができたら、次に実際の生成処理を待ち受けるためのスクリプトを別のターミナルで起動します。
python3 /absolute/project/learning-sample/watch_queue.py /absolute/projectこのウォッチャーはジョブの追加を待機し、元のターミナルでエージェントの会話が終了して受付スクリプトが動くと、登録されたジョブを見つけてワーカーへ引き渡します。ワーカーはcodex execなどを呼び出して抽出処理を1回だけ実行し、ウォッチャー自体も生成が1回終わると終了します。常駐して無制限にAIを呼び出し続けるわけではないため、まずこの一回待機の構成で確認を行います。すでに完了、エラー、実行中の状態になっているジョブは無視されます。
なお、ワーカーが非対話モードで動作する際もエージェントの機能が利用されますが、その子プロセスにはAGENT_LEARNING_WORKER=1という環境変数が渡されています。同梱の受付スクリプトはこの変数を検知すると自身の終了通知を無視するため、処理が終わったことで再び生成処理が始まってしまう再帰ループを防止できます。これは自分自身の終了通知のみを無視するものであり、他の独自のフックまで無効にするわけではありません。
下書きを採用し、新しい会話で確かめる

自動生成された候補は、安全のため学習用の出力フォルダにのみ保存され、エージェントが参照する本番の設定ファイルへ直接追記されることはありません。採用する前には必ず人間が下書きを確認し、プロジェクトへ導入するべきかを判断します。
確認作業では、単に抽出処理がエラーなく終了したことだけを合格条件とするのではなく、候補ファイルが実際に存在するか、出力されたJSONの構造や根拠となった引用、下書きの本文に問題がないかを読み解きます。その際、元となった発言の意図、作業の前提条件、今回限りの一時的な指示が混入していないかを精査します。同時に、既存の規約と衝突していないか、機密情報が含まれていないかもチェックします。特定のキーワードが含まれているか、以前の作業で訂正が何回発生したかといった機械的な基準だけで自動採用することは避けてください。
内容が適切であると判断できた場合、短い規約であればプロジェクトの指示ファイルであるCodexのAGENTS.mdや、Claude CodeのCLAUDE.mdへ手動で追記して採用します。複数の手順をまとめたSkillの場合は、出力された下書きを各製品のローカルにあるSkill用フォルダへ移動して本番配置とします。
配置が完了したら、新しい会話を開始して動作を確かめます。Skillはファイル内で定義された名前(name)と説明文(description)を持っています。初めのテストでは、エージェントに対してSkillの名前を直接指定して明示的に起動を依頼し、ファイルが正しく認識され、想定通りの手順が実行されるかを確認します。
明示的な起動が成功した後は、さらに別の会話を新しく開き、今度はSkillの名前を言わずに作業の目的だけを依頼します。Skillに記載された説明文は、エージェントがどの機能を使うべきかを暗黙的に選択する際の条件として働きます。そのため、名前を伏せた状態でも意図したSkillが正しく選ばれるかを確かめることが重要です。
たとえば今回のサンプルで抽出したような処理であれば、新しい会話で架空のCSVファイルを与えてデータ処理を依頼します。このとき、人間の側から「先頭のゼロを保持してほしい」と改めて指示し直さなくても、エージェントが自ら元値と比較を行い、「00042」といった文字列としての値が欠落せずに処理されるかを確かめます。この検証は本番環境へ採用した後に実施する確認の手順であり、候補を生成した今回のサンプル処理によってすでに検証が済んだ結果ではないことに留意してください。人間が確認とテストのサイクルを回すことで、初めて実践的で再利用可能なルールとスキルが構築されていきます。
CodexとClaude Codeのメモリはどう違う?保存・読み込み・設定の仕組み
よくある質問
自動生成された規約やSkillの候補は直接設定へ適用されますか?
自動生成された候補は、安全のために学習用の出力フォルダへ保存されます。AIエージェントが参照する既存の指示ファイルや本番のSkill用フォルダを直接書き換えることはありません。採用前に人間が内容を確認し、問題がないと判断してから手動で本番環境へ配置してください。
会話の終了フックがタイムアウトしてしまうのはなぜですか?
CodexのSessionEndは既定1秒・最大3秒、Claude CodeのSessionEndは既定の共有予算が1.5秒です。そのため、フックの中で直接AIを呼び出すような重い処理を実行するとタイムアウトする場合があります。フックの役割は、セッションIDなどをジョブとして短い時間でファイルへ保存するだけにとどめ、実際の抽出処理は裏側で動作するワーカープログラムに任せるように設計してください。
採用したSkillが新しい会話で自動的に選ばれない場合はどうすればよいですか?
エージェントは、Skill内に記述された説明文を読んでどの機能を使うべきかを暗黙的に判断しています。意図したタイミングで選ばれない場合は、説明文による条件が十分に伝わっていない可能性があります。まずはSkillの名前を直接指定して明示的に起動できるか確認し、その後に説明文を見直して、作業の目的だけで正しく選択されるように調整を行ってください。
AIを組み込む仕事の流れづくりをご支援します
Deskrexでは、AIを使って調査・制作・分析などの仕事を進めるために、工程と役割分担を設計し、実装する支援を行っています。AIに渡す資料や指示、使えるツール、人が確認する箇所を整理し、一連の仕事として動く仕組みをつくります。

まず、届けたい成果物と現在の作業手順を確認し、実際の仕事をAIで試します。品質、処理量、時間、費用を見ながら、今すぐ任せられる作業と、追加の設計や開発が必要な作業を確かめます。
その結果をもとに、工程の統合や並列化、ツール連携、結果の検証と修正の手順を組み込みます。実行回数や費用の上限、人の判断を待つ条件、途中の状態を保存して再開する方法も含めて設計し、実務で動作を確かめます。
業務へのAI導入やワークフロー作成のご相談は、AIワークフロー作成支援のご案内からお問い合わせください。任せたい仕事と、現在使っているツールを伺い、取り組む範囲を一緒に整理します。
市場調査やデスクリサーチの生成AIエージェントを作っています 仲間探し中 / Founder of AI Desk Research Agent @deskrex , https://deskrex.ai


コメント