私は俗に言うパワポエンジニアだと思います。システム開発の近隣にいましたが実際のコードは趣味でしかやっていません。50代となり、ようやくAI開発の世界に足を踏み入れて、学び直しをしています。
これまでもAI活用について調べていましたが、最近ではClaude Code
やGemini CLI
などの登場によってChat形式 vs CLI形式という関係で語られることが多くなってきています。私も双方使用していますが、現状はChat形式での利用が多いです。実際に各ツールを使い込んでみてようやく使い分けが見えてきた感じです。
私たちが使えるAI活用手法には3つのアプローチがあり、それぞれが全く異なる特性と適用する場面を持っています。 今回は個人の考え方や感想の話にはなりますが、少しまとめてみました。他の人からみるともしかしたら違うなと思われるかもしれません、優しく指摘してください🙇
AI活用の3つのアプローチ
先にもいっていますが、AI活用には3つの手法があります。今後はここにエージェントという考え方が入ってくると思いますが、自分はまだ使えてないので含めていません。
この3つの分類を50代くらいの方が理解しやすい形にするとこんな感じでしょうか。(自分はメインフレームは学生のときにしか触ったことは無いです😊)
こんな感じで考えることで既存の知識の延長として捉えることができるかも🤔?
AI活用の3つのアプローチ
では、この3つのアプローチについて考えてみたいと思いますが先にコンテキストの考え方を説明してみます。
そもそも「コンテキスト」とは?
「コンテキスト」とは「AIが使用するの作業台」のような物、コンピューターでいうメモリと同じですね。
会議資料を作成するとき、デスクの上に参考資料や下書きを広げて作業しますが。 AIも同じように、会話履歴や参照ファイル、作業内容などを「作業台(コンテキスト)」に置いて作業します。
コンテキストの容量制限
重要なのは、この作業台には容量の上限(コンテキストウィンドウ)があることです。 デスクがいっぱいになると、古い資料を片付けて新しい資料のスペースを作る必要があります。AIも同じで、容量がいっぱいになると動作の限界を迎えます。
このコンテキスト管理
のアプローチも、以下でいう3つの手法で大きな違いになっています。
1. Chat形式について
Chat形式は皆さんご存知の通りです。私はCLIツール形式も使いますが、どちらかというとChat形式で開発をすることが多いです。 うまくいくこともありますが、ある程度の規模になってくるとチャット1セッションでは収まらないなという場面にもよく遭遇します。 ただ、言語の仕様を学びながらプログラミングができるという点では、一番使っていて楽しい印象です。
基本
- インターフェース ... ブラウザベースの対話型UI(
ChatGPT
、Claude
、Gemini
等) - コンテキストの状態管理 ... セッション内で自動的にステートフル
- 制御レベル ... 低(UIの機能に依存)
- 学習コスト ... 最小
代表的なChat形式のツール
実用性
Chat形式はシステムが状態を管理してくれるため、ユーザーは対話内容に集中できます。多分これが楽しい理由ですね😊
バックエンドの開発では完了まで1回のChatセッションに収まりますが、フロントエンド開発ではちょっと難しいかな。
2. CLIツール形式について
CLIツール形式は最近登場してきた概念ですね。コマンドラインインターフェース(黒い画面)をつかって、Webインターフェースとは違う形でLLMを使用していきます。
以前にも私のエントリで紹介していますが、コーディングやファイル操作、GitHubなどにも対応できるので開発や管理では今後期待できる形式だと考えています。
現在の代表例はClaude Code
やGemini CLI
になります。リリースしてあまり時間が経っていないこともあり、学習コストはそれなりに必要です。
基本
- インターフェース … CLIベースの開発者向けツール
- コンテキストの状態管理 … セッション内ステートフル + プロジェクト固有情報の永続化(※)
- 制御レベル … 中(ツール固有のコマンドで制御)
- 学習コスト … 中程度
代表的なCLIツール形式のツール
※当初、私はCLIツールは完全にステートレス
だと考えていましたがちょっと様子が違うようです。
Claude Codeの場合
- セッション内では会話履歴を自動保持(ステートフル)
CLAUDE.md
ファイルによるプロジェクト固有の永続的メモリ/clear
、/compact
によるコンテキスト管理- 複数インスタンスの同時実行が可能
Gemini CLIの場合
- 技術的にはステートレスだが、毎回システム全体を再送信(非効率)
GEMINI.md
による階層的なプロジェクトメモリ- 手動による
/save
、/resume
機能
実用性
前述したようにコンテキストをみてくれるので、CLIベースでありながら文脈も理解してくれる賢い奴です。
- 最適な用途
- 実際のコード開発
- コードレビューとリファクタリング
- プロジェクト全体の理解と修正
- 継続的な開発作業
3. API形式について
基本 * インターフェース: プログラマティックな直接呼び出し * 状態管理: 完全にステートレス(開発者が明示的に管理) * 制御レベル: 最高(完全な制御が可能) * 学習コスト: 高
実用性
この手法は「ライブラリを使ったシステム統合」そのものです。コンテキストなどの管理権は使用者にあり、最も柔軟で強力な手法です。
- 最適な用途
- 既存システムへのAI機能組み込み
- バッチ処理での大量データ処理
- カスタムアプリケーションの開発
- 高度な自動化ワークフローの構築
使い分けの指針
新しい技術は結局のところ道具、その本質的な価値はいかに適切に使い分けるかでしょうか?
3つのアプローチの使い分け指針
Claude CodeとGemini CLIのコンテキスト管理機能の比較メモ
あとは自分用のメモです。
Claude Code編
コンテキスト制御コマンド抜粋
コマンド | 機能 | 使用場面 |
---|---|---|
/init | プロジェクトをスキャンし、CLAUDE.md を生成 | 新規・既存プロジェクトでの初回セットアップ |
/clear | 会話履歴とコンテキストをリセット | 関連性のない新しいタスクへの切り替え |
/compact | 会話を要約してトークン数を削減 | 長い対話でのトークン制限回避 |
/memory | CLIから直接CLAUDE.md を編集 | ターミナル内でのエージェント指示 |
/add-dir | 外部ディレクトリをコンテキストに追加 | 複数リポジトリでの作業 |
CLAUDE.mdについて
CLAUDE.md
は、Claude Code
が自動読み込みするプロジェクトの指示ファイルです。階層構造により、グローバル(~/.claude/CLAUDE.md
)からプロジェクトルート、サブディレクトリに配置して、階層毎にコンテキストとして使用できる。簡潔な箇条書きで技術スタック、コーディング標準、プロジェクト構造を記述し、@構文で他のMarkdownファイルをインポートしてモジュール化を行える。
settings.jsonについて
エージェントの低レベルな振る舞いをコントロールするファイル。具体的にはツールパーミッション、フック、MCPサーバー接続を設定します。
優先順位は、【コマンドライン引数 】>【 ローカル設定】 >【共有プロジェクト設定】 >【ユーザー設定 】の順で適用されます。
Gemini CLI編
主要コンテキストコマンド
コマンド | 機能 | 使用場面 |
---|---|---|
/clear | ターミナル画面とチャットコンテキストをクリア | 無関係な新タスクの開始 |
/compress | チャット履歴全体を要約に置き換え | 長い会話でのトークンコスト大幅削減 |
/memory show | 結合されたGEMINI.mdの内容を表示 | コンテキストのデバッグと検証 |
/memory refresh | 全GEMINI.mdファイルを再読み込み | 外部でのファイル変更を反映 |
/chat save <tag> | 会話状態をタグ付けして保存 | 複数タスクの並行作業での状態管理 |
/chat resume <tag> | 保存した会話状態を復元 | 中断した作業の完全復元 |
@<path> | プロンプト内でファイル/ディレクトリを直接参照 | 分析対象の明示的指定 |
GEMINI.mdについて
GEMINI.md
は複数ファイルからコンテキストを作成し、一般的なものから特定のもの(階層の上位から下位に)むけて設定を反映していきます。グローバル(~/.gemini/GEMINI.md
)からプロジェクト、サブディレクトリまでの階層構造を持つことが出来ます。@file.md構文
で他のMarkdownファイルとしてコンテキストをインポートする事ができます。
settings.jsonについて
settings.json
を使用して設定を行うことが出来ます。このファイルではテーマ、ツールサンドボックス、MCPサーバー接続を設定する。
メモまとめ
Claude Code
は、リサーチャーが段階的にコードを調査し、実装作業を行うことに優れています。また、Gemini CLI
は巨大な脳として100万トークン超のコンテキストウィンドウを使用し、分析作業を得意としているように感じます。
おわりに
これまでのAIの経験からこんな感じかなという考え方と感想のようなものをまとめてみました。 使ったことがないよという方でも、まずはChat形式で学んでいくのが学習コストが低く、短時間で成果を上げやすいとは思います。 それで足りなければCLIツール形式を使用するのがいいのかなと思います。
自分は、学びが多い場面ではChat形式から始めます、Claude
で限界がくるようであれば、Gemini
に移行しています。作業の多い場面では最初からCLIツール形式
を使用しています。
各AI(LLM)によってコンテキストのメモリ量や管理が違うので色々つかってみのも楽しいと思います😊
学び直しのプラン
もし今から学び直しの世代がAI活用をマスターするならこんな感じでやるかなという案を考えてみました。
1. Chat形式での基礎理解
- AIの基本的な能力と限界を理解
- プロンプトエンジニアリングの基礎を習得
- 自分の業務領域での活用パターンを探る
2. CLIツール形式での実践
Claude Code
またはGemini CLI
の環境構築- 小規模なプロジェクトでの実践的な活用
- プロジェクトメモリ(
CLAUDE.md
/GEMINI.md
)の効果的な活用法を習得
3. API形式での本格活用(開発まで行うのであれば継続的に)
- API呼び出しによる基本的な自動化
- 既存システムへの段階的な統合
- 高度なワークフローの構築