会話セッションと対話モード(lait chat)
REPL と --session による会話の保存・再開。
lait chat(インタラクティブなマルチターン会話)
lait chat は会話履歴を保持したままターンを重ねられる REPL(対話モード)を起動します。
応答は既定でストリーミング表示されます。
lait chat --model "モデル ID"
引数もプロンプトも与えずに lait を実行した場合も、標準入力が端末(TTY)であれば同じ REPL が
起動します。標準入力がパイプで内容が空の場合は、スクリプトからの誤用を検知するためエラーになります。
REPL 内のメタコマンド:
| コマンド | 説明 |
|---|---|
/exit |
REPL を終了する(標準入力の終端(Ctrl-D)でも終了します) |
/clear |
インメモリの会話履歴をクリアする(--session のファイルへの追記には影響しません) |
/model <name> |
このターン以降に使うモデルを切り替える |
/system <text> |
システムプロンプトを差し替える |
/undo |
直前のやり取り(ユーザーメッセージとモデルの応答)をインメモリの会話履歴から取り除く(--session のファイルには影響しません) |
/retry |
直前のユーザーメッセージを送り直す。成功していたターンは応答を置き換え、失敗していたターンはそのまま再試行します |
/usage |
この REPL でこれまでに記録されたトークン使用量を表示する |
/help |
メタコマンドの一覧を表示する |
""" だけの行を入力すると複数行入力モードになり、次に """ だけの行を入力するまでの
内容を改行を保ったまま1つのメッセージとして送信します。複数行入力の中では、/ で始まる行も
メタコマンドとしては扱わずメッセージの一部として送ります。
> """
... 次のコードをレビューしてください:
... fn main() {}
... """
/usage は、サーバーが報告した使用量だけを集計します。ストリーミング時は --show-usage を
付けない限りサーバーに使用量の報告を要求しないため、何も表示されないことがあります。
Ctrl-C は実行中の要求・ツール処理を中断し、接続などの後始末を行ってから REPL 全体を
終了します。終了コードは 130 です。入力待ちの間も Ctrl-C で終了できます。
ツールやセッションを使う場合の動作は次のとおりです。
--mcp/--subagentを指定してもストリーミング表示は続きます。モデルがツールを呼び出すと、 そのラウンドのテキスト(あれば)を表示してからツールを実行し、次のラウンドに進みます。--sessionを指定すると、REPL の各ターンが同じセッションファイルに記録されます。/retryで 送り直したターンも、成功すれば新しいターンとして追記されます(元のターンは残ります)。--show-usageを指定すると、ターンごとにそのセッション開始からの累積トークン使用量が表示されます。
--session(会話の保存と再開)
--session <NAME> を指定すると、単発の lait 呼び出しでも会話履歴を引き継げます。
lait --model "モデル ID" --session demo "1+1は?"
lait --model "モデル ID" --session demo "それに2を足すと?"
保存と読み込み
- 保存先はプロジェクトローカルの
.lait/sessions/<NAME>.jsonlです。1行につき1メッセージを 保存する JSON Lines 形式です。 - リクエスト送信前に、保存済みの全ターンを読み込みます。履歴はシステムプロンプトの直後、 今回のプロンプトの直前に挿入されます。
- リクエストが成功した場合だけ、今回のユーザーメッセージとモデルの応答を追記します。 失敗したターンは記録されません。
制限と注意
--streamと併用できます。ストリーミング中に表示された内容全体が、その回のモデル応答として 記録されます。- システムプロンプト(
--system/--system-file/default.system)はセッションファイルに 保存されません。次回も必要な場合は、オプションまたは設定ファイルで指定してください。 - セッション名に使えるのは英数字・
_・-のみです。
lait sessions(セッションの一覧・確認・削除)
lait sessions list # 保存されている全セッションとターン数を表示
lait sessions show demo # demo セッションの全ターンを表示
lait sessions delete demo # demo セッションを削除