【AIエージェント構築メモ】

■ 背景と目的
・会話型UI(SillyTavern)を通して、日常的に使えるAI的な存在を育てたい
・単なる応答ではなく、時間経過や状況に応じて「自分から動く」存在を目指す
・最初はシンプルなタイマー機能から入り、徐々に機能を拡張する
・最終的には、会話・記憶・行動が連動した“常駐する存在”に近づける

■ 現在の環境
・OS:Windows 10 Pro
・Python:3.10.06
・UI:SillyTavern(uvicorn経由)
・LLM:LM Studio(ローカル)
・FastAPI:会話ログに対して記憶(テキスト検索)を挿入する仕組みあり

■ 現状の構成理解
・SillyTavernは「会話の入口」であり、ユーザー発話をトリガーに動く
・FastAPIは「処理の中継点」であり、リクエスト時のみ動作する
・LM Studioは「思考エンジン(LLM)」として応答生成を担う
・現在はすべて「ユーザーの発話が起点」になっている

■ 問題意識
・時間経過などによる「自律的な行動」ができない
・記憶はあるが、手動トリガー前提で自動性がない
・会話外での動作(タイマー・通知など)が存在しない
・“存在としての継続性”がまだ弱い

■ 新たに導入する概念
・常駐エージェント(裏プロセス)を追加する
・これはFastAPIとは別に動く、常時稼働のPythonプロセス
・while Trueループで時間や状態を監視する

■ 新しい全体構成
・SillyTavern(会話UI)

・FastAPI(既存の中継・記憶処理)

・LM Studio(ローカルLLM)

+追加
・常駐エージェント(Python)
・時間トリガー
・記憶参照
・必要に応じてFastAPIへリクエスト送信

■ データと通信の流れ
・通常会話
・ユーザー → SillyTavern → FastAPI → LLM → 応答

・自発的発話
・常駐エージェント → FastAPI(新規エンドポイント)→ SillyTavernに反映

■ 自発性の正体
・「自律的な意思」ではなく、以下の組み合わせ
・トリガー(時間・状態)
・判断(必要かどうか)
・行動(発話・処理)

■ 最初の実装目標
・10分ごと(可変)に話しかけてくる機能
・内容は固定でもよい(まずは動作確認)
・FastAPIに /agent_message エンドポイントを追加
・常駐エージェントからHTTPでPOST

■ 次の段階
・発話内容をLLMで生成する
・直近の会話や状態をプロンプトに含める
・「状況に応じた発話」に進化させる

■ 記憶システムの現状
・テキストログベース
・キーワードのAND検索
・手動トリガー

■ 記憶の発展方向
・① 現行強化
・スコアリング
・類義語対応
・簡易自動化

・② ベクトル検索導入
・意味ベース検索
・曖昧一致対応

・③ ハイブリッド化
・キーワード+ベクトル+LLM選別

■ 自発性の発展方向
・時間ベース(定期発話)
・会話間隔ベース(無会話時間検知)
・記憶ベース(最近触れていない話題)
・状態推定(ユーザーの傾向分析)

■ UIと常駐の関係
・SillyTavernは「対話窓」
・常駐エージェントは「裏で動く本体」
・両者は分離されているが、FastAPIで接続される

■ 方針(重要)
・既存環境を活かし、追加で拡張する
・大規模フレームワークには依存しすぎない
・小さく作り、動かしながら調整する
・“存在感”を優先し、完璧さは後回し

■ 今後のステップ
・Step1
・常駐エージェントの雛形作成
・10分タイマー実装

・Step2
・FastAPIに受信口追加
・SillyTavernへの反映確認

・Step3
・LLMによる発話生成導入

・Step4
・記憶との連動

・Step5
・自発トリガーの多様化

■ 最終イメージ
・ユーザーが何もしなくても動いている
・会話の流れや履歴を踏まえて発話する
・必要なときだけ自然に話しかけてくる
・ツールではなく「同じ場所にいる存在」に近づく

■ 補足
・今回の構成は完全自作寄りだが、その分制御性が高い
・既存フレームワークは部分的に参考にする程度でよい
・重要なのは構造理解と、小さな成功の積み重ね

以上

コメント