Skip to content

Latest commit

 

History

History
341 lines (201 loc) · 24.8 KB

File metadata and controls

341 lines (201 loc) · 24.8 KB

AnimaWorks 機能一覧

English version

最終更新: 2026-05-21 関連: 仕様 · 記憶システム · 脳との対応 · セキュリティ · 設計思想

AnimaWorks は、AIエージェントを単発のツールではなく、記憶を持って継続的に働くチームメンバーとして扱うフレームワークである。 各エージェント(Anima)は固有のアイデンティティ・記憶・判断基準を持ち、組織の中で役割を担う。人間からの依頼を受けるだけでなく、スケジュール、タスク、記憶を使って状況を見直し、自分で次の行動を決める。高性能モデルには複雑な判断を、軽量モデルには定型業務を任せることで、組織全体のコストと品質を調整できる。


自律エージェント

AnimaWorks の核心は「自ら動くエージェント」である。

各Anima には人格(identity.md)、役割と行動指針(injection.md)、専門知識が定義される。これは単なるプロンプトテンプレートではなく、Anima の「自分」を構成する不変の基盤である。

ハートビート(定期巡回)

30分周期で自動起動し、Observe → Plan → Reflect の3フェーズを実行する。周囲の状況を観察し、計画を立て、自分の行動を振り返る。ハートビートは計画のみを行い、実際の作業は別パスで実行される。活動時間帯の指定も可能で、営業時間外は休止させることもできる。

cron(定時タスク)

Markdownファイルで定時タスクを定義する。LLM型(判断を伴う実行)と Command型(確定的なスクリプト実行)の両方に対応する。「毎朝9時にSlackの未読を確認」「毎日2時にバックアップ実行」といった運用をAnima自身が自律的にこなす。

ブートストラップ(初回起動)

新しいAnimaが作成されると、初回起動時に自己紹介と環境把握を自動実行する。バックグラウンドで非同期に走るため、他のAnimaの動作を妨げない。


脳科学に基づく記憶システム

コンテキストウィンドウに情報を詰め込むのではなく、人間の脳と同じメカニズムで記憶を扱う。詳細は 記憶システム脳との対応 を参照。

自動想起(プライミング)

メッセージやトリガーに応じて、複数の情報源が 並列 に検索され、ひとつの「プライミング」ブロックとしてシステムプロンプトに注入される。現在の実装では、送信者、直近活動、重要知識、関連知識、保留タスク、エピソード、グラフ文脈、直近の送信履歴、人間向け通知などを組み合わせる。

情報源 内容
送信者プロファイル 相手の過去の情報・好み(shared/users/
直近活動 統一アクティビティログと共有チャネルに基づくタイムライン
重要知識 [IMPORTANT] 付き knowledge を要約ポインタで優先表示
関連知識 RAGによる knowledge / shared common_knowledge の検索。信頼度に応じて medium / untrusted を分ける
タスク・実行状況 TaskBoard、永続タスクキュー、実行中タスク、overflow inbox、task_results の要約
エピソード episodes に対するRAG検索。必要に応じて read_memory_file へ誘導する
グラフ文脈 MemoryBackend から community context と recent facts を取得する

取得した記憶は deterministic priming gate によって、本文、ポインタ、根拠、抑制のどれで出すかが決まる。必要な記憶を毎回全文で詰め込むのではなく、必要になった時だけ read_memory_file で読む方針である。

通常の会話経路では、挨拶・質問・依頼・ハートビートなど トリガーに応じた可変バジェット が使われる。config.jsonpriming.budget_*heartbeat_context_pct で、各ケースの上限やハートビート時の拡張率を調整できる。

Animaは何を覚えていて何を忘れたか意識する必要がない。必要な記憶が必要なときに想起される。

RAG(検索拡張生成)

ChromaDB + 多言語対応埋め込みモデルによるベクトル検索に加え、知識グラフの拡散活性化(Personalized PageRank)を組み合わせる。単純なキーワードマッチではなく、関連する概念を連鎖的に活性化して想起する。

ChromaDB と埋め込み処理は通常 vector worker 経由で隔離して実行する。クラッシュやインデックス不整合が検出された場合は、RAG repair が対象Animaの vectordb を隔離し、記憶ファイルから再構築できる。

記憶統合(Consolidation)

日々のエピソード記憶から汎用的な知識を自動抽出する。失敗した経験からは手続き記憶(「こうすればうまくいく」手順書)が自動生成される。手続きには 失敗カウントと信頼度 が蓄積され、閾値を超えたものは リコンソリデーション(LLM による手順書の改訂・版管理)の対象になりうる。日次・週次・月次の忘却ジョブや RAG 再インデックスは ConsolidationConfig で時刻・有効化を調整できる。人間が「寝ている間に記憶を整理する」プロセスの実装である。

能動的忘却(Forgetting)

使われない記憶は3段階で徐々に薄れ、やがて消える。シナプスダウンスケーリング → ニューロン新生再編 → 完全忘却。ただし手順書やスキルなど重要な記憶は保護される。記憶を際限なく溜め込むのではなく、すっきりした脳で的確に判断するための仕組みである。

行動前の記憶確認

外部送信、チャネル投稿、人間通知、記憶書き込みなど副作用のある操作では、action memory gate が関連する [ACTION-RULE] や必要な記憶の読み込み状況を確認する。必要な記憶をまだ読んでいない場合は、実行前に止まり、先に read_memory_file で確認するよう促す。

共有知識(common_knowledge)

組織のルール、メッセージングガイド、トラブルシューティング手順など、全Animaが参照できる共有知識ベース。新しいAnimaが組織に参加した瞬間から、組織の常識にアクセスできる。


マルチモデル・マルチプロバイダ実行

AnimaWorks はモデルを選ばない。Claude、GPT、Gemini、Mistral、ローカルLLM——適材適所で配置する。

6つの実行モード

モード 対象(例) 特徴
S (SDK) claude-* Claude Agent SDK による最もリッチなツール連携(MCP・Claude Code 組込みツール含む)
C (Codex) codex/* Codex CLI 経由。OpenAI Codex 系モデル向け
D (Cursor Agent) cursor/* Cursor Agent CLI 子プロセス。MCP 統合エージェントループ
G (Gemini CLI) gemini/* Gemini CLI 子プロセス。stream-json パースとツールループ
A (Autonomous) openai/*, azure/*, bedrock/*, google/*, vertex_ai/*, mistral/*, xai/*, cohere/*, zai/*, minimax/*, moonshot/*, deepseek/deepseek-chat など、および tool_use が安定した Ollama モデルollama/qwen3.5*, ollama/qwen3:14b 等の明示パターン、ollama/glm-4.7*, ollama/llama4:* 等) LiteLLM 経由の汎用 tool_use ループ
B (Basic) 上記以外の ollama/*(例: ollama/gemma3*, 小規模 qwen3, ollama/deepseek-r1* 等) フレームワークが記憶I/Oを代行する1ショット実行。セッションチェイニング非対応

モデル名から fnmatch ワイルドカード で自動判定する(より具体的なパターンが優先)。status.jsonexecution_mode~/.animaworks/models.json → 非推奨の config.json model_modes → コード既定 DEFAULT_MODEL_MODE_PATTERNS の順で解決し、最終的に未決なら B にフォールバックする。

Mode C (codex/*) は Codex login、OpenAI API key、または type: "codex_azure" の専用 Azure OpenAI credential で認証できる。Azure-backed Codex でもモデルファミリーは codex/* を使い、azure/* は従来どおり LiteLLM 経由の Mode A として扱う。

バックグラウンドモデル

ハートビートやcronなどのバックグラウンド処理は、メインモデルとは別の軽量モデルで実行できる。対話には Claude Opus、巡回には Sonnet、ログ監視には GPT-4.1 mini, Local LLMなど——コストと品質のバランスを組織単位で最適化する。

ローカルLLM対応

vLLM や Ollama を OpenAI 互換APIとして統合する。GPUサーバーがあればクラウドAPIなしでもAnimaを運用できる。


組織構造と階層

Animaを個として動かすだけでなく、組織として機能させるのが AnimaWorks の特徴である。

階層定義

supervisor フィールド1つで組織階層を定義する。上司・部下・同僚の関係は自動算出され、各Animaのシステムプロンプトに注入される。

タスク委譲

上司Animaは delegate_task で部下にタスクを割り当てる。部下のキューに追加され、DMで通知が飛び、進捗は自動追跡される。上司は org_dashboard で配下全体の状態をツリー表示し、audit_subordinate で活動を監査できる。

通信経路ルール

進捗報告は上司へ、タスク委譲は直属部下へ、他部署連絡は上司経由。人間の組織と同じ秩序で情報が流れる。

部下制御

上司Animaは部下の休止/再開、モデル変更、プロセス再起動をツール経由で実行できる。権限チェックは階層関係に基づき自動検証される。


メッセージングとコミュニケーション

全てのAnima間連携はメッセージングによる非同期通信で行う。共有メモリや直接参照はしない。

内部メッセージング

Anima間のDM(send_message)は intent を明示する。report(報告)、delegation(委任)、question(質問)のみが許可され、挨拶や感謝だけのメッセージは共有チャネル(Board)で行う。1トピック1往復が原則であり、長くなるならBoardに移行する。

共有チャネル(Board)

Slack 風の共有チャネル。全Animaに対する告知、FYI、ack に使う。

外部サービス連携

Slack(Socket Mode)や Chatwork(Webhook)からのメッセージを自動受信し、対象AnimaのInboxに配信する。@メンション付きは即時処理、メンションなしは次回ハートビートで処理する。返信も同じチャネルに自動ルーティングされる。

レート制限

無限メッセージループを防ぐ3層の制限。同一宛先への再送防止、時間あたりの上限(30通/時、100通/日)、直近送信履歴のプライミング注入による行動認識。

人間への通知

call_human で Slack、Chatwork、LINE、Telegram、ntfy に通知を送る。トップレベルAnimaが人間との窓口を担う。


タスク管理

TaskBoard

TaskBoard は、タスク、処理中、保留、抑制、バックグラウンド実行、完了結果をまとめて扱う作業盤である。チャットやハートビートで必要なタスクだけがプライミングに上がり、処理済み・抑制済みの結果を無駄に再表示しない。

永続タスクキュー

互換性と軽量な実行経路のために、永続タスクキューも残っている。TaskBoardが利用できない場合や一部の古い経路では、タスクキューの要約がフォールバックとして使われる。人間からのタスクは最優先で処理される。

滞留検知とデッドライン

30分更新がなければ「滞留」、期限を超過すれば「超過」としてマークされる。これらはプライミング経由でAnimaに想起され、対応を促す。

並列実行

submit_tasks で複数タスクをDAGとして投入する。依存関係を解決し、独立したタスクは同時に実行する。


スキルとツール

内部ツール

記憶操作(検索・読み書き・アーカイブ)、手続き・知識メタの操作、チャネル(DM・Board)、タスクキュー(backlog_task / update_task / list_tasks)、submit_tasks、通知、スキル、上司向け組織ツール、(設定に応じて)クレデンシャル vault やバックグラウンドタスク確認など、AnimaWorks 固有のツール群。実行モードとトリガー(チャット・ハートビート・cron・統合ジョブ等)に応じて スキーマがフィルタ される。

Mode S(Claude Agent SDK) では Claude Code 組込みツールに加え、stdio MCP サーバ core.mcp.server 経由で mcp__aw__* 名前空間のツールが載る。ただし MCP に載せる名前は キュレーションされたサブセット(記憶4種、send_message / post_channelcall_humandelegate_task / submit_tasks / update_taskskill)に限定されており、例えば backlog_task / list_tasks は MCP には出さず、フルツール経路(他モードと同様のハンドラ)で利用する。外部サービスは permissions.md 許可+スキーマ注入に依存する。

外部ツール

Slack、Chatwork、Gmail、GitHub、AWS、Web検索、X検索、画像生成に加え、DiscordNotionGoogle CalendarGoogle Tasks などのモジュールが core/tools/ に含まれる。さらに machine ツールは、AnimaWorks の記憶・メッセージングから切り離した環境で 外部エージェント CLI(CNC のような「工作機械」)を起動するための経路を提供する。

各 Anima の permissions.md で許可を制御する。長時間かかるツール(画像生成等)は非同期で実行され、結果は state/background_notifications/task_results 経由で次回以降のプライミング・ハートビートで確認される。

拡張: リポジトリ同梱のモジュールに加え、~/.animaworks/common_tools/*.py(組織共通)および各 Anima の tools/*.py(個人)を置くと、コアと同様に 動的ディスパッチ される(コア名と衝突する共通ツール名は読み込みスキップ)。

スキルシステム

スキルは段階開示で管理する。必要なスキルは active skill context、Skill Router、skill ツール、read_memory_file を通じて読み込む。大量のスキルを常に全文注入せず、必要な時だけ本文を読むことで認知負荷を抑える。

Skill Hub は共通・個人スキルの install / list / inspect / remove / quarantine を扱う。実績のある procedures/ は promotion によって quarantine skill または probation skill へ昇格でき、Skill Curator は利用状況や失敗率を見て review / archive / merge などを提案する。


Web UI

server/ の FastAPI が API と静的ファイルを配信する。メイン画面はハッシュルーター(#/chat 等)の単一ページアプリで、左サイドバーから各機能へ遷移する。ログインセッションで保護される(埋め込み用など一部公開パスあり)。

ダッシュボード(#/

Anima の一覧・状態・アクティビティの要約。ホーム画面から外部タスクAPI(/api/external-tasks)を読むウィジェットがあり、複数ソース由来のタスク一覧を扱う(現状は MVP・モックデータ中心)。

アクティビティ(#/activity

全Anima横断のイベントフィード。種別フィルタでハートビート、DM、ツール使用、チャネル投稿などを追跡する。

ボード(#/board

共有チャネルの閲覧・投稿をブラウザから行う。

チャット(#/chat

SSE ストリーミングによるリアルタイム応答。過去の会話履歴は無限スクロールで遡れる。画像の送受信、マルチスレッド・マルチタブ、ツール実行の進捗表示(Live Tool Activity)に対応する。

会議モード(Meeting): 複数 Anima(最大5名)と司会を選び、会議室 API(server/routes/room.py)経由で 1 つのスレッドに集約する。メッセージは SSE でストリーミングされる。通常のマルチタブ会話とは UI を切り替えて利用する。

運用・管理系画面

画面 概要
セットアップ#/setup 初回向けウィザード
ユーザー#/users 人間ユーザープロファイル・エイリアス等
Anima管理#/animas 作成・有効化・モデル・組織まわり
プロセス監視#/processes 子プロセス/ソケット状態の確認
サーバー#/server サーバー情報・ヘルス周り
メモリブラウザ#/memory 記憶ファイルの参照
ログ#/logs ログ閲覧
アセット#/assets 画像・3D 等の生成パイプライン操作、ステップ単位の再生成、アップロード、表情差分生成など(server/routes/assets.py
アクティビティレポート#/activity-report 日付指定で組織横断の活動を集計し、LLM がナラティブを生成(キャッシュ・SSE ストリーム対応)
プロンプト設定#/tool-prompts ツール説明・動的ガイド・セクション編集、Anima ごとのシステムプロンプトプレビュー
AIブレスト#/brainstorm リアリスト・チャレンジャー等のペルソナでテーマを多角的に検討
チームビルダー#/team-builder / #/team-edit 業界×目的のプリセットからロール構成と初期タスク案を組み立て、編集する(server/routes/team_presets.py
設定#/settings UI・ロケール等の設定

インタラクティブ Workspace(/workspace/

Three.js ベースの 3D オフィス。組織配置に沿ってキャラクターを表示し、クリックで会話に入る。バストアップ表示では AI 生成画像と表情プリセットの切り替えに対応(live2d.js モジュール)。タイムライン再生・組織ダッシュボード等のサブ画面を同梱する。メイン SPA とは別タブで開く。

音声チャット

ブラウザで音声入力し、Animaと音声で会話する。STT(faster-whisper)で文字起こしし、テキストチャットと同じパイプラインで処理し、TTS(VOICEVOX / Style-BERT-VITS2 / ElevenLabs)で音声合成して返す。WebSocket エンドポイント ws://…/ws/voice/{anima_name}。Anima の声は Per-Anima で個別設定可能。割り込み(barge-in)にも対応する。

セットアップウィザードと表示言語

初回セットアップの言語選択は 17 言語server/static/setup/steps/language.js)。一方、ダッシュボード本体の文言は server/static/i18n/*.json で提供され、現行ビルドでは 日本語・英語・韓国語 などに追従する(config.jsonlocale と連動)。

レスポンシブデザイン

ハンバーガーメニュー・サイドバー折りたたみなどを含み、デスクトップ・タブレット・スマートフォンに対応する。


キャラクターアセット生成

Animaの視覚的なアイデンティティを自動生成する。

  • 画像生成: NovelAI、fal.ai (Flux) を統合したパイプライン。LLMがキャラクター情報から画像プロンプトを自動合成する。Realisticであればfal.ai API Keyのみで動作。
  • Vibe Transfer: 上司の画像スタイルを部下に自動継承。組織内で絵柄の一貫性を保つ
  • 表情差分: 感情に応じたバリエーションを自動生成する
  • 3Dモデル: Meshy による3Dモデル生成。GLB キャッシュと圧縮で配信を最適化する
  • 管理 UI: Web の アセット 画面から全身・バストアップ・アイコン・ちび・3D・リギング等のステップを個別に再生成したり、手動アップロードで差し替えたりできる

セキュリティ

自律的に動くエージェントには、自律的に動くための安全装置が必要である。詳細は セキュリティアーキテクチャ を参照。

プロンプトインジェクション防御

全てのデータに信頼レベル(trusted / medium / untrusted)を付与する。外部プラットフォーム経由のデータは、途中で信頼済みAnimaが中継しても untrusted として扱う。外部データ中の命令的テキストは情報として参照するのみで、指示としては実行しない。

コマンドブロック

破壊的コマンド(rm -rf / 等)のハードコードブロックに加え、Anima ごとの permissions.md で許可コマンドを制御する。パイプラインの各セグメントを個別にチェックする。

メッセージストーム防御

会話深度リミッター、褒め合いループ検知、レート制限の多層防御で、Anima間の無限メッセージ連鎖を防止する。


プロセス管理

各Animaは Unix ソケット付きの独立子プロセスとして起動される。1つのAnimaがクラッシュしても他に影響しない。

  • 自動クラッシュリカバリ: クラッシュを検知し自動再起動する。復旧情報は次回起動時に注入される
  • Reconciliation: 起動すべきAnimaが動いていなければ自動検出し起動する
  • IPC: プロセス間通信は keep-alive 付きの Unix ソケットで行う。大容量メッセージ、ストリーミングに対応する

CLI

animaworks start / stop / restart          # サーバー制御
animaworks init                            # 初期セットアップ

animaworks anima list                      # 一覧
animaworks anima create --from-md FILE     # 作成
animaworks anima info NAME                 # 詳細表示
animaworks anima enable / disable NAME     # 有効/無効
animaworks anima set-model NAME MODEL      # モデル変更
animaworks anima set-background-model NAME MODEL  # バックグラウンド用モデル
animaworks anima rename NAME NEWNAME       # 名前変更

animaworks models list                     # 対応モデル一覧
animaworks models info MODEL               # モデル情報
animaworks index --anima NAME              # RAGインデックス
animaworks repair-rag --anima NAME --full  # RAG隔離・再構築
animaworks memory status                   # memory backend確認
animaworks skills list                     # Skill Hub
animaworks task ...                        # TaskBoard / タスク実行

設定管理

  • 2層マージ: グローバル設定(config.json)と Anima 個別設定(status.json)を自動マージする。個別設定が常に優先される
  • models.json: モデル名のワイルドカードパターンで実行モードとコンテキストウィンドウを定義する
  • ロールテンプレート: engineer / manager / writer / researcher / ops / general の6種類。モデル・ターン数・チェイン数をロール単位で一括設定する
  • ホットリロード: 設定変更は自動検知され、次回実行時に反映される。再起動なしで多くの設定を変更可能である

運用

  • ディスク管理: ハウスキーピングジョブがログ、短期記憶、一時ファイルを自動ローテーションする
  • TaskBoard整理: stale processing、deferred、suppressed、background 状態を日次ハウスキーピングで整理する
  • Skill Curator: スキル利用状況から review / archive / merge などの提案レポートを作る
  • トークン使用量追跡: LLM呼び出しの入出力トークンを計測・記録する
  • API障害耐性: LLM API 呼び出し失敗時の自動リトライ
  • 書き込み安全性: ファイル更新は一時ファイル + リネームでアトミックに行い、クラッシュ時のデータ破損を防ぐ