garc-gws-agent-runtime/docs/garc-vs-larc.md
林 駿甫 (Shunsuke Hayashi) a69b9d9160 feat: initial release — GARC v0.1.0
Permission-first AI agent runtime for Google Workspace.
Ports the LARC/OpenClaw governance model (disclosure chain,
execution gates, queue/ingress) to Gmail, Calendar, Drive,
Sheets, Tasks, and People APIs with Claude Code as the
execution engine.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 08:59:12 +09:00

131 lines
5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GARC vs LARC — 比較ドキュメント
## 概要
GARCとLARCは同じランタイムガバナンスモデルを共有する兄弟プロジェクトです。
バックエンドプラットフォームのみが異なります。
| 側面 | LARC | GARC |
|------|------|------|
| バックエンド | Feishu / Lark | Google Workspace |
| ファイルストレージ | Lark Drive | Google Drive |
| 構造化DB | Lark Base | Google Sheets |
| メッセージング | Lark IM | Gmail / Google Chat |
| ナレッジ | Lark Wiki | Google Docs |
| 承認フロー | Lark Approval | Sheets + Gmail |
| カレンダー | Lark Calendar | Google Calendar |
| タスク | Lark Project | Google Tasks |
| 認証 | Lark OAuth + `lark-cli` | Google OAuth 2.0 |
| MCP統合 | `openclaw-lark` スキル | Gmail/Drive/Calendar MCP |
## 共通アーキテクチャ(変わらないもの)
### 1. 開示チェーンDisclosure Chain
```
SOUL.md → USER.md → MEMORY.md → RULES.md → HEARTBEAT.md
```
LARCではLark Drive、GARCではGoogle Driveに保存。
読み込み後のローカルキャッシュ構造(`~/.larc/` / `~/.garc/`)は同一。
### 2. パーミッションインテリジェンス
```bash
larc auth suggest "create expense report" # LARC
garc auth suggest "create expense report" # GARC
```
どちらも同じキーワードマッチング + スコープ推定ロジック。
出力フォーマットも同一。LARCはLarkスコープ、GARCはGoogle OAuthスコープ。
### 3. 実行ゲート
```
none → 即時実行(読み取り系)
preview → --confirm フラグ必要(外部可視・書き込み)
approval → 承認ゲート(金銭・権限・不可逆)
```
ゲートポリシーのタスクカテゴリは共通。LARCはLark Approval、GARCはSheets+Gmailで管理。
### 4. エージェントレジストリ
LARCはLark Baseにエージェント台帳、GARCはGoogle Sheetsに同構造で保存。
`agents.yaml`のフォーマットは両プロジェクトで互換性があります。
### 5. メモリシステム
LARCはLark Baseの`memory`テーブル、GARCはGoogle Sheetsの`memory`タブ。
日次pull/pushのインターフェースは同一。
## 主な差異
### 認証フロー
**LARC**: `lark-cli auth login` → Larkのブラウザ認証 → トークン保存
**GARC**: `garc auth login` → Google OAuth 2.0 フロー → `~/.garc/token.json`
GARCの方が標準的なOAuth2フロー。credentials.jsonの事前ダウンロードが必要。
### MCP統合
**LARC**: `openclaw-lark` プラグイン9スキル: bitable/calendar/doc/im/task等
**GARC**:
- `mcp__claude_ai_Gmail__*` — Gmail操作
- `mcp__claude_ai_Google_Drive__*` — Drive操作
- `mcp__claude_ai_Google_Calendar__*` — Calendar操作
- Claude Code組み込みMCP → 直接使用可能
GARCはLARCより即座にMCPで動作確認できますClaude Code側にMCPが既に組み込まれているため
### スコープ粒度
**LARC**: Larkのスコープは`docs:doc:readonly`等のパス形式
**GARC**: Googleのスコープは`https://www.googleapis.com/auth/drive.readonly`等のURL形式。
より細かく、`drive`全Drivevs `drive.file`(自分が作成したファイルのみ)等の区別がある。
### 承認フロー
**LARC**: Lark Approvalという専用承認ワークフロー機能がある
**GARC**: Google Sheetsのapprovalタブ + Gmail通知で承認管理。
Lark Approvalほどリッチな機能はないが、シンプルで確実。
## 実装状況比較
| 機能 | LARC | GARC |
|------|------|------|
| bootstrap | ✅ live | 🏗 実装済API接続待ち |
| memory pull/push | ✅ live | 🏗 実装済API接続待ち |
| memory search | ✅ live | 🏗 実装済API接続待ち |
| send message | ✅ live | 🏗 実装済API接続待ち |
| task list/create | ✅ live | 🏗 実装済API接続待ち |
| auth suggest | ✅ live | ✅ 実装済Python、動作可 |
| approve gate | ✅ live | ✅ 実装済JSON、動作可 |
| agent register | ✅ live | 🏗 実装済API接続待ち |
| heartbeat | ✅ live | 🏗 実装済API接続待ち |
| kg build/query | ✅ live | 🏗 実装済API接続待ち |
| ingress queue | ✅ live | ✅ 実装済(ローカルキャッシュ) |
## 移行・使い分けガイド
### LARCからGARCへの移行
1. `agents.yaml`はそのまま使用可能(スコープのみ変更)
2. 開示チェーンファイルSOUL.md等をGoogle Driveにアップロード
3. Lark BaseのデータをGoogle Sheetsにエクスポート
4. `larc``garc` コマンドは1:1対応
### 両方使う場合
```
Feishu/Lark ユーザー向けタスク → LARC
Google Workspace ユーザー向けタスク → GARC
```
agents.yamlは共通形式のため、エージェントを両プラットフォームに登録可能。
上位エージェントOpenClawが状況に応じてどちらのランタイムを使うか選択します。