Skip to content

Latest commit

 

History

History
775 lines (588 loc) · 22.2 KB

File metadata and controls

775 lines (588 loc) · 22.2 KB
PicoClaw

PicoClaw: Go で書かれた超効率 AI アシスタント

$10 ハードウェア · 10MB RAM · 1秒起動 · 皮皮虾,我们走!

Go Hardware License

中文 | 日本語 | Português | English


🦐 PicoClaw は nanobot にインスパイアされた超軽量パーソナル AI アシスタントです。Go でゼロからリファクタリングされ、AI エージェント自身がアーキテクチャの移行とコード最適化を推進するセルフブートストラッピングプロセスで構築されました。

⚡️ $10 のハードウェアで 10MB 未満の RAM で動作:OpenClaw より 99% 少ないメモリ、Mac mini より 98% 安い!

📢 ニュース

2026-02-09 🎉 PicoClaw リリース!$10 ハードウェアで 10MB 未満の RAM で動く AI エージェントを 1 日で構築。🦐 皮皮虾,我们走!

✨ 特徴

🪶 超軽量: メモリフットプリント 10MB 未満 — Clawdbot のコア機能より 99% 小さい。

💰 最小コスト: $10 ハードウェアで動作 — Mac mini より 98% 安い。

⚡️ 超高速: 起動時間 400 倍高速、0.6GHz シングルコアでも 1 秒で起動。

🌍 真のポータビリティ: RISC-V、ARM、x86 対応の単一バイナリ。ワンクリックで Go!

🤖 AI ブートストラップ: 自律的な Go ネイティブ実装 — コアの 95% が AI 生成、人間によるレビュー付き。

OpenClaw NanoBot PicoClaw
言語 TypeScript Python Go
RAM >1GB >100MB < 10MB
起動時間
(0.8GHz コア)
>500秒 >30秒 <1秒
コスト Mac Mini 599$ 大半の Linux SBC
~50$
あらゆる Linux ボード
最安 10$

PicoClaw

🦾 デモンストレーション

🛠️ スタンダードアシスタントワークフロー

🧩 フルスタックエンジニア

🗂️ ログ&計画管理

🔎 Web 検索&学習

開発 · デプロイ · スケール スケジュール · 自動化 · メモリ 発見 · インサイト · トレンド

🐜 革新的な省フットプリントデプロイ

PicoClaw はほぼすべての Linux デバイスにデプロイできます!

  • $9.9 LicheeRV-Nano E(Ethernet) または W(WiFi6) バージョン、最小ホームアシスタントに
  • $30~50 NanoKVM または $100 NanoKVM-Pro サーバー自動メンテナンスに
  • $50 MaixCAM または $100 MaixCAM2 スマート監視に
picoclaw_detect_person.mp4

🌟 もっと多くのデプロイ事例が待っています!

📦 インストール

コンパイル済みバイナリでインストール

リリースページ からお使いのプラットフォーム用のファームウェアをダウンロードしてください。

ソースからインストール(最新機能、開発向け推奨)

git clone https://github.com/sipeed/picoclaw.git

cd picoclaw
make deps

# ビルド(インストール不要)
make build

# 複数プラットフォーム向けビルド
make build-all

# ビルドとインストール
make install

🐳 Docker Compose

Docker Compose を使えば、ローカルにインストールせずに PicoClaw を実行できます。

# 1. リポジトリをクローン
git clone https://github.com/sipeed/picoclaw.git
cd picoclaw

# 2. API キーを設定
cp config/config.example.json config/config.json
vim config/config.json      # DISCORD_BOT_TOKEN, プロバイダーの API キーを設定

# 3. ビルドと起動
docker compose --profile gateway up -d

# 4. ログ確認
docker compose logs -f picoclaw-gateway

# 5. 停止
docker compose --profile gateway down

Agent モード(ワンショット)

# 質問を投げる
docker compose run --rm picoclaw-agent -m "What is 2+2?"

# インタラクティブモード
docker compose run --rm picoclaw-agent

リビルド

docker compose --profile gateway build --no-cache
docker compose --profile gateway up -d

🚀 クイックスタート(ネイティブ)

Tip

~/.picoclaw/config.json に API キーを設定してください。 API キーの取得先: OpenRouter (LLM) · Zhipu (LLM) Web 検索は 任意 です - 無料の Brave Search API (月 2000 クエリ無料)

1. 初期化

picoclaw onboard

2. 設定 (~/.picoclaw/config.json)

{
  "agents": {
    "defaults": {
      "workspace": "~/.picoclaw/workspace",
      "model": "glm-4.7",
      "max_tokens": 8192,
      "temperature": 0.7,
      "max_tool_iterations": 20
    }
  },
  "providers": {
    "openrouter": {
      "api_key": "xxx",
      "api_base": "https://openrouter.ai/api/v1"
    }
  },
  "tools": {
    "web": {
      "search": {
        "api_key": "YOUR_BRAVE_API_KEY",
        "max_results": 5
      }
    },
    "cron": {
      "exec_timeout_minutes": 5
    }
  },
  "heartbeat": {
    "enabled": true,
    "interval": 30
  }
}

3. API キーの取得

注意: 完全な設定テンプレートは config.example.json を参照してください。

3. チャット

picoclaw agent -m "What is 2+2?"

これだけです!2 分で AI アシスタントが動きます。


💬 チャットアプリ

Telegram、Discord、QQ、DingTalk、LINE で PicoClaw と会話できます

チャネル セットアップ
Telegram 簡単(トークンのみ)
Discord 簡単(Bot トークン + Intents)
QQ 簡単(AppID + AppSecret)
DingTalk 普通(アプリ認証情報)
LINE 普通(認証情報 + Webhook URL)
Telegram(推奨)

1. Bot を作成

  • Telegram を開き、@BotFather を検索
  • /newbot を送信、プロンプトに従う
  • トークンをコピー

2. 設定

{
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "YOUR_BOT_TOKEN",
      "allowFrom": ["YOUR_USER_ID"]
    }
  }
}

ユーザー ID は Telegram の @userinfobot から取得できます。

3. 起動

picoclaw gateway
Discord

1. Bot を作成

2. Intents を有効化

  • Bot の設定画面で MESSAGE CONTENT INTENT を有効化
  • (任意)SERVER MEMBERS INTENT も有効化

3. ユーザー ID を取得

  • Discord 設定 → 詳細設定 → 開発者モード を有効化
  • 自分のアバターを右クリック → ユーザーIDをコピー

4. 設定

{
  "channels": {
    "discord": {
      "enabled": true,
      "token": "YOUR_BOT_TOKEN",
      "allowFrom": ["YOUR_USER_ID"]
    }
  }
}

5. Bot を招待

  • OAuth2 → URL Generator
  • Scopes: bot
  • Bot Permissions: Send Messages, Read Message History
  • 生成された招待 URL を開き、サーバーに Bot を追加

6. 起動

picoclaw gateway
QQ

1. Bot を作成

2. 設定

{
  "channels": {
    "qq": {
      "enabled": true,
      "app_id": "YOUR_APP_ID",
      "app_secret": "YOUR_APP_SECRET",
      "allow_from": []
    }
  }
}

allow_from を空にすると全ユーザーを許可、QQ番号を指定してアクセス制限可能。

3. 起動

picoclaw gateway
DingTalk

1. Bot を作成

2. 設定

{
  "channels": {
    "dingtalk": {
      "enabled": true,
      "client_id": "YOUR_CLIENT_ID",
      "client_secret": "YOUR_CLIENT_SECRET",
      "allow_from": []
    }
  }
}

allow_from を空にすると全ユーザーを許可、ユーザーIDを指定してアクセス制限可能。

3. 起動

picoclaw gateway
LINE

1. LINE 公式アカウントを作成

  • LINE Developers Console にアクセス
  • プロバイダーを作成 → Messaging API チャネルを作成
  • チャネルシークレットチャネルアクセストークン をコピー

2. 設定

{
  "channels": {
    "line": {
      "enabled": true,
      "channel_secret": "YOUR_CHANNEL_SECRET",
      "channel_access_token": "YOUR_CHANNEL_ACCESS_TOKEN",
      "webhook_host": "0.0.0.0",
      "webhook_port": 18791,
      "webhook_path": "/webhook/line",
      "allow_from": []
    }
  }
}

3. Webhook URL を設定

LINE の Webhook には HTTPS が必要です。リバースプロキシまたはトンネルを使用してください:

# ngrok の例
ngrok http 18791

LINE Developers Console で Webhook URL を https://あなたのドメイン/webhook/line に設定し、Webhook の利用 を有効にしてください。

4. 起動

picoclaw gateway

グループチャットでは @メンション時のみ応答します。返信は元メッセージを引用する形式です。

Docker Compose: picoclaw-gateway サービスに ports: ["18791:18791"] を追加して Webhook ポートを公開してください。

⚙️ 設定

設定ファイル: ~/.picoclaw/config.json

ワークスペース構成

PicoClaw は設定されたワークスペース(デフォルト: ~/.picoclaw/workspace)にデータを保存します:

~/.picoclaw/workspace/
├── sessions/          # 会話セッションと履歴
├── memory/            # 長期メモリ(MEMORY.md)
├── state/             # 永続状態(最後のチャネルなど)
├── cron/              # スケジュールジョブデータベース
├── skills/            # カスタムスキル
├── AGENTS.md          # エージェントの行動ガイド
├── HEARTBEAT.md       # 定期タスクプロンプト(30分ごとに確認)
├── IDENTITY.md        # エージェントのアイデンティティ
├── SOUL.md            # エージェントのソウル
├── TOOLS.md           # ツールの説明
└── USER.md            # ユーザー設定

🔒 セキュリティサンドボックス

PicoClaw はデフォルトでサンドボックス環境で実行されます。エージェントは設定されたワークスペース内のファイルにのみアクセスし、コマンドを実行できます。

デフォルト設定

{
  "agents": {
    "defaults": {
      "workspace": "~/.picoclaw/workspace",
      "restrict_to_workspace": true
    }
  }
}
オプション デフォルト 説明
workspace ~/.picoclaw/workspace エージェントの作業ディレクトリ
restrict_to_workspace true ファイル/コマンドアクセスをワークスペースに制限

保護対象ツール

restrict_to_workspace: true の場合、以下のツールがサンドボックス化されます:

ツール 機能 制限
read_file ファイル読み込み ワークスペース内のファイルのみ
write_file ファイル書き込み ワークスペース内のファイルのみ
list_dir ディレクトリ一覧 ワークスペース内のディレクトリのみ
edit_file ファイル編集 ワークスペース内のファイルのみ
append_file ファイル追記 ワークスペース内のファイルのみ
exec コマンド実行 コマンドパスはワークスペース内である必要あり

exec ツールの追加保護

restrict_to_workspace: false でも、exec ツールは以下の危険なコマンドをブロックします:

  • rm -rf, del /f, rmdir /s — 一括削除
  • format, mkfs, diskpart — ディスクフォーマット
  • dd if= — ディスクイメージング
  • /dev/sd[a-z] への書き込み — 直接ディスク書き込み
  • shutdown, reboot, poweroff — システムシャットダウン
  • フォークボム :(){ :|:& };:

エラー例

[ERROR] tool: Tool execution failed
{tool=exec, error=Command blocked by safety guard (path outside working dir)}
[ERROR] tool: Tool execution failed
{tool=exec, error=Command blocked by safety guard (dangerous pattern detected)}

制限の無効化(セキュリティリスク)

エージェントにワークスペース外のパスへのアクセスが必要な場合:

方法1: 設定ファイル

{
  "agents": {
    "defaults": {
      "restrict_to_workspace": false
    }
  }
}

方法2: 環境変数

export PICOCLAW_AGENTS_DEFAULTS_RESTRICT_TO_WORKSPACE=false

⚠️ 警告: この制限を無効にすると、エージェントはシステム上の任意のパスにアクセスできるようになります。制御された環境でのみ慎重に使用してください。

セキュリティ境界の一貫性

restrict_to_workspace 設定は、すべての実行パスで一貫して適用されます:

実行パス セキュリティ境界
メインエージェント restrict_to_workspace
サブエージェント / Spawn 同じ制限を継承 ✅
ハートビートタスク 同じ制限を継承 ✅

すべてのパスで同じワークスペース制限が適用されます — サブエージェントやスケジュールタスクを通じてセキュリティ境界をバイパスする方法はありません。

ハートビート(定期タスク)

PicoClaw は自動的に定期タスクを実行できます。ワークスペースに HEARTBEAT.md ファイルを作成します:

# 定期タスク

- 重要なメールをチェック
- 今後の予定を確認
- 天気予報をチェック

エージェントは30分ごと(設定可能)にこのファイルを読み込み、利用可能なツールを使ってタスクを実行します。

spawn で非同期タスク実行

時間のかかるタスク(Web検索、API呼び出し)には spawn ツールを使ってサブエージェントを作成します:

# 定期タスク

## クイックタスク(直接応答)
- 現在時刻を報告

## 長時間タスク(spawn で非同期)
- AIニュースを検索して要約
- メールをチェックして重要なメッセージを報告

主な特徴:

機能 説明
spawn 非同期サブエージェントを作成、ハートビートをブロックしない
独立コンテキスト サブエージェントは独自のコンテキストを持ち、セッション履歴なし
message ツール サブエージェントは message ツールで直接ユーザーと通信
非ブロッキング spawn 後、ハートビートは次のタスクへ継続

サブエージェントの通信方法

ハートビート発動
    ↓
エージェントが HEARTBEAT.md を読む
    ↓
長いタスク: spawn サブエージェント
    ↓                           ↓
次のタスクへ継続          サブエージェントが独立して動作
    ↓                           ↓
全タスク完了              message ツールを使用
    ↓                           ↓
HEARTBEAT_OK 応答         ユーザーが直接結果を受け取る

サブエージェントはツール(message、web_search など)にアクセスでき、メインエージェントを経由せずにユーザーと通信できます。

設定:

{
  "heartbeat": {
    "enabled": true,
    "interval": 30
  }
}
オプション デフォルト 説明
enabled true ハートビートの有効/無効
interval 30 チェック間隔(分)、最小5分

環境変数:

  • PICOCLAW_HEARTBEAT_ENABLED=false で無効化
  • PICOCLAW_HEARTBEAT_INTERVAL=60 で間隔変更

基本設定

  1. 設定ファイルの作成:

    cp config.example.json config/config.json
  2. 設定の編集:

    {
      "providers": {
        "openrouter": {
          "api_key": "sk-or-v1-..."
        }
      },
      "channels": {
        "discord": {
          "enabled": true,
          "token": "YOUR_DISCORD_BOT_TOKEN"
        }
      }
    }
  3. 実行

    picoclaw agent -m "Hello"
完全な設定例
{
  "agents": {
    "defaults": {
      "model": "anthropic/claude-opus-4-5"
    }
  },
  "providers": {
    "openrouter": {
      "apiKey": "sk-or-v1-xxx"
    },
    "groq": {
      "apiKey": "gsk_xxx"
    }
  },
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "123456:ABC...",
      "allowFrom": ["123456789"]
    },
    "discord": {
      "enabled": true,
      "token": "",
      "allow_from": [""]
    },
    "whatsapp": {
      "enabled": false
    },
    "feishu": {
      "enabled": false,
      "appId": "cli_xxx",
      "appSecret": "xxx",
      "encryptKey": "",
      "verificationToken": "",
      "allowFrom": []
    }
  },
  "tools": {
    "web": {
      "search": {
        "apiKey": "BSA..."
      }
    },
    "cron": {
      "exec_timeout_minutes": 5
    }
  },
  "heartbeat": {
    "enabled": true,
    "interval": 30
  }
}

CLI リファレンス

コマンド 説明
picoclaw onboard 設定&ワークスペースの初期化
picoclaw agent -m "..." エージェントとチャット
picoclaw agent インタラクティブチャットモード
picoclaw gateway ゲートウェイを起動
picoclaw status ステータスを表示

🤝 コントリビュート&ロードマップ

PR 歓迎!コードベースは意図的に小さく読みやすくしています。🤗

Discord: https://discord.gg/V4sAZ9XWpN

PicoClaw

🐛 トラブルシューティング

Web 検索で「API 配置问题」と表示される

検索 API キーをまだ設定していない場合、これは正常です。PicoClaw は手動検索用の便利なリンクを提供します。

Web 検索を有効にするには:

  1. https://brave.com/search/api で無料の API キーを取得(月 2000 クエリ無料)
  2. ~/.picoclaw/config.json に追加:
    {
      "tools": {
        "web": {
          "search": {
            "api_key": "YOUR_BRAVE_API_KEY",
            "max_results": 5
          }
        }
      }
    }

コンテンツフィルタリングエラーが出る

一部のプロバイダー(Zhipu など)にはコンテンツフィルタリングがあります。クエリを言い換えるか、別のモデルを使用してください。

Telegram Bot で「Conflict: terminated by other getUpdates」と表示される

別のインスタンスが実行中の場合に発生します。picoclaw gateway が 1 つだけ実行されていることを確認してください。


📝 API キー比較

サービス 無料枠 ユースケース
OpenRouter 月 200K トークン 複数モデル(Claude, GPT-4 など)
Zhipu 月 200K トークン 中国ユーザー向け最適
Brave Search 月 2000 クエリ Web 検索機能
Groq 無料枠あり 高速推論(Llama, Mixtral)