English version here | 中文版README
タスクを自律的に解釈し、アクションを計画し、目標を達成するために実行します。 あなたの好みや目的を学習し、人生の目標を達成するためのタスクを積極的に計画・開始します。 MCP、スキル、外部アプリとの連携をサポートしています。
CraftBotはあなたの命令を待っています。今すぐあなた専用のCraftBotをセットアップしましょう。
- Bring Your Own Key (BYOK) — OpenAI、Google Gemini、Anthropic Claude、BytePlus、ローカルOllamaモデルをサポートする柔軟なLLMプロバイダーシステム。プロバイダー間の切り替えが簡単です。
- メモリシステム — 一日を通して起きたイベントを深夜に整理・統合します。
- プロアクティブエージェント — あなたの好み、習慣、人生の目標を学習し、計画を立て、タスクを開始して(もちろん承認付きで)あなたの生活をより良くします。
- 外部ツール統合 — 埋め込みクレデンシャルとOAuthサポートにより、Google Workspace、Slack、Notion、Zoom、LinkedIn、Discord、Telegramに接続(今後さらに追加予定!)。
- MCP — 外部ツールやサービスでエージェント機能を拡張するためのModel Context Protocol統合。
- スキル — タスク計画、リサーチ、コードレビュー、Git操作などの組み込みスキルを含む拡張可能なスキルフレームワーク。
- クロスプラットフォーム — プラットフォーム固有のコードバリアントとDockerコンテナ化によるWindowsとLinuxの完全サポート。
Important
GUIモードに関する注意: GUIモードはまだ実験段階です。エージェントがGUIモードに切り替える際に問題が発生する可能性があります。この機能の改善に積極的に取り組んでいます。
- Python 3.10+
git(リポジトリのクローンに必要)- 選択したLLMプロバイダー(OpenAI、Gemini、またはAnthropic)のAPIキー
Node.js18+(オプション - ブラウザインターフェースにのみ必要)conda(オプション - 見つからない場合、インストーラーがMinicondaの自動インストールを提案します)
# リポジトリをクローン
git clone https://github.com/zfoong/CraftBot.git
cd CraftBot
# 依存関係をインストール
python install.py
# エージェントを実行
python run.py以上です!初回実行時にAPIキーの設定がガイドされます。
注意: Node.jsがインストールされていない場合、インストーラーがステップバイステップの手順をガイドします。ブラウザモードをスキップしてTUIを使用することもできます(以下のモードを参照)。
- エージェントと自然言語で会話
- 複雑なマルチステップタスクの実行を依頼
/helpと入力して利用可能なコマンドを確認- Google、Slack、Notionなどに接続
CraftBotは複数のUIモードをサポートしています。お好みに応じて選択してください:
| モード | コマンド | 要件 | 最適な用途 |
|---|---|---|---|
| ブラウザ | python run.py |
Node.js 18+ | モダンなWebインターフェース、最も使いやすい |
| TUI | python run.py --tui |
なし | ターミナルUI、追加の依存関係なし |
| CLI | python run.py --cli |
なし | コマンドライン、軽量 |
| GUI | python run.py --gui |
install.py --gui |
視覚的フィードバック付きのデスクトップ自動化 |
ブラウザモードがデフォルトで推奨されます。Node.jsがない場合は、インストーラーがインストール手順を提供するか、代わりにTUIモードを使用できます。
| コンポーネント | 説明 |
|---|---|
| エージェントベース | タスクライフサイクルを管理し、コンポーネント間を調整し、メインのエージェントループを処理するコアオーケストレーションレイヤー。 |
| LLMインターフェース | 複数のLLMプロバイダー(OpenAI、Gemini、Anthropic、BytePlus、Ollama)をサポートする統一インターフェース。 |
| コンテキストエンジン | KVキャッシュサポートで最適化されたプロンプトを生成。 |
| アクションマネージャー | ライブラリからアクションを取得して実行。カスタムアクションの拡張が容易。 |
| アクションルーター | タスク要件に基づいて最適なアクションをインテリジェントに選択し、必要に応じてLLMを介して入力パラメータを解決。 |
| イベントストリーム | タスク進行状況の追跡、UI更新、実行モニタリング用のリアルタイムイベント発行システム。 |
| メモリマネージャー | ChromaDBを使用したRAGベースのセマンティックメモリ。メモリのチャンキング、埋め込み、検索、増分更新を処理。 |
| ステートマネージャー | エージェント実行コンテキスト、会話履歴、ランタイム設定を追跡するグローバルステート管理。 |
| タスクマネージャー | タスク定義を管理し、シンプルタスクと複雑タスクモードの切り替え、TODO作成、マルチステップワークフロー追跡を可能にします。 |
| スキルマネージャー | エージェントコンテキストにプラグイン可能なスキルをロードして注入。 |
| MCPアダプター | MCPツールをネイティブアクションに変換するModel Context Protocol統合。 |
| TUIインターフェース | 対話的なコマンドライン操作のためにTextualフレームワークで構築されたターミナルユーザーインターフェース。 |
| GUIモジュール | Dockerコンテナ、UI要素検出用のOmniParser、Gradioクライアントを使用した実験的なGUI自動化。 |
- メモリモジュール — 完了。
- 外部ツール統合 — さらに追加中!
- MCPレイヤー — 完了。
- スキルレイヤー — 完了。
- プロアクティブな動作 — 実装予定
GUIモードは画面自動化を有効にします - エージェントがデスクトップ環境を見て操作できるようになります。これはオプションで、追加のセットアップが必要です。
# GUIサポートをインストール(pip使用、conda不要)
python install.py --gui
# GUIサポートとcondaでインストール
python install.py --gui --conda
# GUIモードで実行
python run.py --guiNote
GUIモードは実験的機能であり、追加の依存関係が必要です(モデルウェイトで約4GB)。デスクトップ自動化が不要な場合は、これをスキップして代わりにBrowser/TUIモードを使用してください。追加の依存関係は必要ありません。
| フラグ | 説明 |
|---|---|
--gui |
GUIコンポーネント(OmniParser)をインストール |
--conda |
conda環境を使用(オプション) |
--cpu-only |
CPU専用のPyTorchをインストール(--guiと併用) |
| フラグ | 説明 |
|---|---|
| (なし) | ブラウザモードで実行(推奨、Node.jsが必要) |
--tui |
ターミナルUIモードで実行(追加の依存関係なし) |
--cli |
CLIモードで実行(軽量) |
--gui |
GUI自動化モードを有効化(先に install.py --gui が必要) |
インストール例:
# シンプルなpipインストール(condaなし)
python install.py
# GUIサポート付き(pip使用、condaなし)
python install.py --gui
# CPU専用システムでのGUI(pip使用、condaなし)
python install.py --gui --cpu-only
# conda環境を使用(condaユーザー向け推奨)
python install.py --conda
# GUIサポートとconda
python install.py --gui --conda
# condaを使用したCPU専用システムでのGUI
python install.py --gui --conda --cpu-onlyCraftBotの実行:
# ブラウザモード(デフォルト、Node.jsが必要)
python run.py
# TUIモード(Node.js不要)
python run.py --tui
# CLIモード(軽量)
python run.py --cli
# GPU/GUIモード
python run.py --gui
# conda環境で
conda run -n craftbot python run.py
# condaがPATHにない場合はフルパスを使用
&"$env:USERPROFILE\miniconda3\Scripts\conda.exe" run -n craftbot python run.pyLinux/macOS (Bash):
# ブラウザモード(デフォルト、Node.jsが必要)
python run.py
# TUIモード(Node.js不要)
python run.py --tui
# CLIモード(軽量)
python run.py --cli
# GPU/GUIモード
python run.py --gui
# conda環境で
conda run -n craftbot python run.pyNote
インストール: インストーラーは依存関係が不足している場合、明確なガイダンスを提供します。Node.jsが見つからない場合は、インストールを促すか、TUIモードに切り替えることができます。インストールはGPUの可用性を自動検出し、必要に応じてCPU専用モードにフォールバックします。
Tip
初回セットアップ: CraftBotはAPIキー、エージェントの名前、MCP、スキルを設定するオンボーディングシーケンスをガイドします。
Note
Playwright Chromium: WhatsApp Web連携にはオプションです。インストールに失敗しても、エージェントは他のタスクでは問題なく動作します。後で手動でインストールできます: playwright install chromium
python run.py実行時に**「npm not found in PATH」**と表示される場合:
- nodejs.orgからダウンロード(LTSバージョンを選択)
- インストールしてターミナルを再起動
python run.pyを再度実行
代替手段: 代わりにTUIモードを使用(Node.js不要):
python run.py --tuiインストーラーは解決策付きの詳細なエラーメッセージを提供します。インストールが失敗した場合:
- Pythonバージョンを確認: Python 3.10+であることを確認(
python --version) - インターネット接続を確認: インストール中に依存関係がダウンロードされます
- pipキャッシュをクリア:
pip install --upgrade pipを実行して再試行
Playwright chromiumのインストールはオプションです。失敗した場合:
- エージェントは他のタスクでは問題なく動作します
- スキップするか後でインストール:
playwright install chromium - WhatsApp Web連携にのみ必要
インストーラーはGPUの可用性を自動検出します:
- CUDAインストールが失敗した場合、自動的にCPUモードにフォールバックします
- 手動でCPUセットアップ:
python install.py --gui --cpu-only
詳細なトラブルシューティングについては、INSTALLATION_FIX.mdを参照してください。
エージェントはOAuthを使用してさまざまなサービスに接続できます。リリースビルドには埋め込みクレデンシャルが付属していますが、独自のクレデンシャルを使用することもできます。
埋め込みクレデンシャル付きのリリースビルドの場合:
/google login # Google Workspaceに接続
/zoom login # Zoomに接続
/slack invite # Slackに接続
/notion invite # Notionに接続
/linkedin login # LinkedInに接続
| サービス | 認証タイプ | コマンド | シークレットが必要? |
|---|---|---|---|
| PKCE | /google login |
いいえ (PKCE) | |
| Zoom | PKCE | /zoom login |
いいえ (PKCE) |
| Slack | OAuth 2.0 | /slack invite |
はい |
| Notion | OAuth 2.0 | /notion invite |
はい |
| OAuth 2.0 | /linkedin login |
はい |
独自のOAuthクレデンシャルを使用する場合は、.envファイルに追加してください:
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com- Google Cloud Consoleにアクセス
- Gmail、カレンダー、ドライブ、People APIを有効化
- デスクトップアプリタイプとしてOAuthクレデンシャルを作成
- クライアントIDをコピー(PKCEではシークレットは不要)
ZOOM_CLIENT_ID=your-zoom-client-id- Zoom Marketplaceにアクセス
- OAuthアプリを作成
- クライアントIDをコピー
SLACK_SHARED_CLIENT_ID=your-slack-client-id
SLACK_SHARED_CLIENT_SECRET=your-slack-client-secret- Slack APIにアクセス
- 新しいアプリを作成
- OAuthスコープを追加:
chat:write、channels:read、users:readなど - クライアントIDとクライアントシークレットをコピー
NOTION_SHARED_CLIENT_ID=your-notion-client-id
NOTION_SHARED_CLIENT_SECRET=your-notion-client-secret- Notion Developersにアクセス
- 新しいインテグレーション(パブリックインテグレーション)を作成
- OAuthクライアントIDとシークレットをコピー
LINKEDIN_CLIENT_ID=your-linkedin-client-id
LINKEDIN_CLIENT_SECRET=your-linkedin-client-secret- LinkedIn Developersにアクセス
- アプリを作成
- OAuth 2.0スコープを追加
- クライアントIDとクライアントシークレットをコピー
リポジトリのルートには、Python 3.10、主要なシステムパッケージ(OCR用のTesseractを含む)、およびenvironment.yml/requirements.txtで定義されたすべてのPython依存関係を含むDocker構成が含まれており、エージェントは隔離された環境で一貫して実行できます。
以下は、コンテナでエージェントを実行するためのセットアップ手順です。
リポジトリのルートから:
docker build -t craftbot .イメージはデフォルトでpython -m app.mainでエージェントを起動するように構成されています。対話的に実行するには:
docker run --rm -it craftbot環境変数を渡す必要がある場合は、envファイル(例えば.env.exampleに基づく)を渡します:
docker run --rm -it --env-file .env craftbotコンテナの外部で永続化する必要があるディレクトリ(データやキャッシュフォルダなど)は-vを使用してマウントし、デプロイに必要に応じてポートや追加のフラグを調整してください。コンテナには、OCR(tesseract)、画面自動化(pyautogui、mss、X11ユーティリティ、仮想フレームバッファ)、および一般的なHTTPクライアント用のシステム依存関係が含まれているため、エージェントはコンテナ内でファイル、ネットワークAPI、GUI自動化を扱うことができます。
GUIアクション(マウス/キーボードイベント、スクリーンショット)にはX11サーバーが必要です。ホストディスプレイにアタッチするか、xvfbでヘッドレスで実行できます:
-
ホストディスプレイを使用(X11を使用するLinuxが必要):
docker run --rm -it -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $(pwd)/data:/app/app/data \ craftbot
エージェントが読み書きする必要があるフォルダには、追加の
-vマウントを追加してください。 -
仮想ディスプレイでヘッドレス実行:
docker run --rm -it --env-file .env craftbot bash -lc "Xvfb :99 -screen 0 1920x1080x24 & export DISPLAY=:99 && exec python -m app.main"
デフォルトでは、イメージはPython 3.10を使用し、environment.yml/requirements.txtからのPython依存関係をバンドルしているため、python -m app.mainはそのまま動作します。
貢献と提案を歓迎します!@zfoong @ thamyikfoong(at)craftos.net までご連絡ください。現在、チェック機能を設定していないため、直接的な貢献は受け付けられませんが、提案やフィードバックは大変ありがたく思います。
このプロジェクトはMITライセンスの下でライセンスされています。このプロジェクトは自由に使用、ホスト、収益化できます(配布や収益化の場合は、このプロジェクトのクレジット表記が必要です)。
CraftOSおよび貢献者@zfoongと@ahmad-ajmalによって開発・維持されています。 CraftBotが役に立つと思われた場合は、リポジトリに⭐をつけて、他の人と共有してくださると嬉しいです!




