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
- プロジェクト