ShenSeanChen/waku-agent

Waku Waku! Waku Agent is a local-first AI agent harness you actually own, including loop, memory, eval, all in code built to stay legible as it grows.

何を解決するか

Waku は、現代のエージェントがどのように機能するかを読みやすく透明性のあるブループリントとして設計されたローカルファーストの個人用AIアシスタントです。複雑で「ブラックボックス」なエージェントフレームワークの代わりに、ユーザーが完全に所有し、理解できるシンプルで読みやすいコードベースを提供し、エージェントループ、メモリシステム、評価ハーネス全体を把握できます。

動作方法

エージェントループ

コアとなるのは、約95行のシンプルなPythonループで、理由づけ-行動-観察のサイクルを繰り返します。LLMがリクエストについて推論し、必要に応じてツールを呼び出し、結果を観察して、最終的な返答が生成されるまで繰り返します。

メモリの柱

メモリはローカルのSQLiteデータベース(state.db)に保存され、人間が読みやすい MEMORY.md ファイルにもミラーリングされます。以下の3種類のメモリで構成されています:

  • 意味的(Semantic):永続的な事実やユーザーのプロフィール。
  • エピソード的(Episodic):日付付きの出来事や過去の会話。
  • 手順的(Procedural):スキルや「どうやってするか」の手順。

リトリーバルゲート

不要なメモリが回答を歪めたり、遅延を引き起こしたりするのを防ぐために、「リトリーバルゲート」(小さな安価なモデル)が、実際にメモリの取得が必要かどうかを判断してからデータベースにアクセスします。

グラフワークフロー

特定の構造が必要なタスクには、Wakuはグラフワークフローを使用します。これにより並列実行と決定論的なルーティングが可能になります(例:単純な「ありがとう」メッセージは小さなモデルに、複雑なタスクはフルエージェントループにルーティング)。

LLM-Opsと評価

システムには、決定論的テスト(正しいツールが起動したか?)とLLMによる判断テスト(返答が役立ったか?)を分離した組み込み評価ハーネスが含まれます。すべてのターンはJSONLファイルにトレースされ、デバッグに利用できます。

対象ユーザー

  • 重いフレームワークに頼らずに、個人用AIアシスタントを構築または理解したい開発者。
  • ローカルファーストのメモリやエージェントループの設計に興味があるAIエンジニア。
  • 自分のツール(カレンダー、メール、Telegramなど)と統合できるプライベートでローカルファーストのアシスタントを希望するユーザー。

特徴

  • ローカルファースト:メモリはユーザーが所有する単一のSQLiteファイルです。
  • 視覚的ダッシュボード:リアルタイムでエージェントの推論、ツール呼び出し、メモリの更新を監視できるローカルWebコックピット。
  • マルチプロバイダ対応:シンプルなアダプタにより、Anthropic、OpenAI、Gemini、DeepSeekなどと互換性があります。
  • 透明なアーキテクチャ:システムのすべてのコンポーネントがコード内の読みやすいファイルに直接対応しています。
  • 統合された評価:決定論的評価と判断評価を用いた組み込みリリースゲートがあります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト