システムアーキテクチャ
CowAgent のアーキテクチャは以下のコアモジュールで構成されています:
Agent モードのワークフロー
Agent モードが有効な場合、CowAgent は以下のワークフローで自律的な Agent として動作します:- メッセージ受信 — チャネルを通じてユーザーの入力を受信
- 意図の理解 — タスク要件とコンテキストを分析
- タスク計画 — 複雑なタスクを複数のステップに分解
- ツール呼び出し — 各ステップに適切なツールを選択・実行
- 記憶・ナレッジの更新 — 重要な情報を長期記憶に保存し、構造化された知識をナレッジベースに整理
- 結果の返却 — 実行結果をユーザーに送信
ワークスペース
システムワークスペース
Agent のシステムワークスペースはデフォルトで~/cow にあり、システムプロンプト、記憶ファイル、Skill ファイルを格納しています:
~/.cow ディレクトリに別途保存されます:
プロジェクトワークスペース
デフォルトのワークスペースに加えて、各セッションに専用のプロジェクトディレクトリを紐づけできます。Agent のファイル読み書きとコマンド実行はそのディレクトリ内で行われ、マルチプロジェクトの分離が実現します。記憶や Skill などは引き続きデフォルトのワークスペースに保存されます。複数のプロジェクトを使用している場合、Web/デスクトップの履歴一覧は自動的にプロジェクトごとにグループ化されます。マルチエージェントワークスペース
Agent チーム を構成すると、各 Agent はそれぞれ完全なワークスペースを持ちます。デフォルト Agent はインスタンスのルート~/cow を使用し、その他のメンバーは ~/cow/agents/<agent-id>/ 以下に配置されます。これによりストレージは「システム共有」「メンバーごとに分離」「共有/分離を選択可能」の 3 種類に分かれます:
- システム共有:シークレットファイル(
~/.cow/.env)とチーム設定(~/cow/agents/team.json)はインスタンス全体で共有されます。 - メンバーごとに分離:各 Agent のコアファイル(
SYSTEM.md、USER.md、AGENT.md、RULE.md)、記憶(MEMORY.md、memory/)、生成ファイルはそれぞれのワークスペース内にあり、メンバー間で互いに見えません。 - 共有/分離を選択可能:Skill とナレッジベースはチームで共有することも、特定のメンバー専用にすることもでき、両モードはいつでも切り替えられます。
サブ Agent はメイン Agent が一時的に立ち上げる実行ユニットで、メイン Agent とワークスペースを共有し、独自の記憶は持ちません。一方チームメンバーは常駐する正式な Agent で、ワークスペースと記憶が完全に独立しています。詳細は サブ Agent を参照してください。
セッション単位のモデルと権限
ワークスペース・モデル・権限はいずれもセッション単位で設定でき、未設定の場合はグローバルのデフォルトに従います:- モデル:セッションごとに異なるモデルへ切り替えられ、タスクに応じた選択が容易です。
- 権限:Agent が操作できる範囲を制御し、読み取り専用、ワークスペース書き込み可、フルアクセス の 3 段階があります。設定でグローバルのデフォルト権限(
agent_permission_mode)を指定でき、新しいセッションはそれを引き継ぎ、必要に応じて個別に調整できます。権限は誤操作のリスクを下げるためのものです。強い分離が必要な場合はコンテナ内での実行を推奨します。
コア設定
config.json で Agent モードのパラメータを設定します:
