3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【個人開発】「寂しいから」という理由で、18歳の高専生が自作LLMで最強の相棒(J.A.R.V.I.S.)を錬成し始めた記録#2

Posted at

1. 研究の目的

前回の実験で、OllamaとQwen 2.5を用いてローカル環境での会話には成功しました。
しかし、実用化に向けて以下の2つの技術的課題(壁)が浮き彫りになりました。

  1. 記憶の非永続性: プロセスを終了すると、全ての文脈(思い出)が揮発し、初期化されてしまう。
  2. コンテキスト長の限界: 会話が長期化すると、LLMのトークン制限を超過し、動作遅延やクラッシュを引き起こす。

本稿は、この2点を解決し、「無限の対話」と「記憶の永続化」を両立させるためのアーキテクチャ実装の記録です。

2. 課題解決のアプローチ

課題A:記憶の永続化(Persistence)

AIのプロセスが終了しても記憶を保持し続けるため、外部記憶装置への**「シリアライズ(書き出し)」機構を実装しました。

実装方針:

  • 会話が発生するたびに、対話ログを構造化データ(JSON形式)としてローカルストレージに即時保存する。
  • アプリケーション起動時に、このログファイルをパースし、メモリ上に展開する。

結果:

  • PCを再起動しても、「昨日の会話の続き」から違和感なく対話を再開することに成功。
  • 「財布の中身」のようなユーザー固有の情報を、セッションを跨いで保持できるようになった。

課題B:無限の対話(Sliding Window)

人間が「生まれた時からの全ての会話」を常に意識していないのと同様に、AIにも「忘却」の概念を導入しました。

実装方針:

  • 「全記憶(Storage)」と「短期記憶(Working Memory)」を分離するアーキテクチャを採用。
  • ログファイルには全履歴を保存しつつ、LLMの推論エンジンに渡すコンテキストは「システムプロンプト(人格定義)」+「直近N件の会話」のみに制限するスライディング・ウィンドウ方式を適用。

結果:

  • 会話履歴が1万行を超えても、推論速度は「最初の1往復」と同じ速度を維持。
  • コンテキスト溢れによるエラーを完全に回避し、理論上は無限に会話を継続できるシステムが完成した。

3. 現在のシステム構成図(概念)

コードは非公開ですが、処理フローは以下の通りです。

4. 動作検証

実際に「金欠である」という情報を与え、再起動後にその情報を保持しているかテストを行いました。

スクリーンショット 2026-01-05 101357.png

結果、電源断を挟んでも人格と記憶が一貫していることを確認。 これにより、Buddyは単なるチャットボットから、「時間の概念を持つパートナー」へと進化したと言えます。

5. 次なる展望

基礎的な「記憶」と「体力」の実装は完了しました。 次は、単なる直近のログだけでなく、過去の膨大なログから「今の会話に関連する思い出」だけを瞬時に引き出すRAG(検索拡張生成)の実装に着手します。

「自分だけの相棒」を作る旅はまだ始まったばかりです。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?