Skip to content

Latest commit

 

History

History
543 lines (391 loc) · 27 KB

File metadata and controls

543 lines (391 loc) · 27 KB
CraftBot Banner

English | 简体中文 | 繁體中文 | 한국어 | Español | Português | Français | Deutsch

🚀 概要

CraftBotは、あなたのマシンに常駐し、24時間365日働くパーソナルAIアシスタントです。

タスクを自律的に解釈し、アクションを計画し、目標を達成するために実行します。 あなたの好みや目的を学習し、人生の目標を達成するためのタスクを積極的に計画・開始します。 MCP、スキル、外部アプリとの連携をサポートしています。

CraftBotはあなたの命令を待っています。今すぐあなた専用のCraftBotをセットアップしましょう。

CraftBot Overview

✨ 特徴

  • Bring Your Own Key (BYOK) — OpenAI、Google Gemini、Anthropic Claude、BytePlus、ローカルOllamaモデルをサポートする柔軟なLLMプロバイダーシステム。プロバイダー間の切り替えが簡単です。
  • メモリシステム — 一日を通して起きたイベントを深夜に整理・統合します。
  • プロアクティブエージェント — あなたの好み、習慣、人生の目標を学習し、計画を立て、タスクを開始して(もちろん承認付きで)あなたの生活をより良くします。
  • Living UI — CraftBotの中で動作するカスタムアプリを構築、インポート、または進化させます。エージェントはUIの状態を常に把握し、そのデータを直接読み取り、書き込み、操作できます。
  • 外部ツール統合 — 埋め込みクレデンシャルとOAuthサポートにより、Google Workspace、Slack、Notion、Zoom、LinkedIn、Discord、Telegramに接続(今後さらに追加予定!)。
  • MCP — 外部ツールやサービスでエージェント機能を拡張するためのModel Context Protocol統合。
  • スキル — タスク計画、リサーチ、コードレビュー、Git操作などの組み込みスキルを含む拡張可能なスキルフレームワーク。
  • クロスプラットフォーム — プラットフォーム固有のコードバリアントとDockerコンテナ化によるWindows、macOS、Linuxの完全サポート。

Important

GUIモードは非推奨になりました。 CraftBotはGUI(デスクトップ自動化)モードをサポートしなくなりました。代わりにBrowser、TUI、またはCLIモードをご利用ください。

CraftBot Banner CraftBot Banner

🧰 はじめに

前提条件

  • Python 3.10+
  • git(リポジトリのクローンに必要)
  • 選択したLLMプロバイダー(OpenAI、Gemini、またはAnthropic)のAPIキー
  • Node.js 18+(オプション - ブラウザインターフェースにのみ必要)
  • conda(オプション - 見つからない場合、インストーラーがMinicondaの自動インストールを提案します)

どのセットアップを使えばいいですか?

迷ったらオプション1を選んでください。 すべて自動で処理されます。

オプション1 — サービスインストール オプション2 — Condaインストール オプション3 — 手動インストール
対象ユーザー ほとんどのユーザー、初心者、テスト目的 独立環境が必要なCondaユーザー 上級ユーザー、Pythonのカスタマイズ、完全制御
Python/環境を自動管理? ✅ 自動 ✅ 自動 ❌ 自分で管理
バックグラウンドで動作? ✅ はい、サービスとして ❌ いいえ ❌ いいえ
起動方法 python craftbot.py install python install.py --conda python install.py

⭐ オプション1 — サービスインストール(推奨)

これを選ぶなら: CraftBotをすぐに使いたい場合 — バックグラウンドサービス、ログイン時の自動起動、デスクトップショートカット、手動操作不要。

craftbot.py がすべて処理します:Python環境、依存関係、バックグラウンドプロセス管理、自動起動の登録。

# 1. リポジトリをクローン
git clone https://github.com/CraftOS-dev/CraftBot.git
cd CraftBot

# 2. インストール、自動起動の登録、CraftBotの起動
python craftbot.py install

以上です。ターミナルは自動で閉じ、CraftBotはバックグラウンドで動作し、ブラウザが自動で開きます。デスクトップショートカットが作成されるので、ブラウザをいつでも再度開けます。

インストール後のサービス管理:

python craftbot.py start      # CraftBotをバックグラウンドで起動
python craftbot.py stop       # CraftBotを停止
python craftbot.py restart    # CraftBotを再起動
python craftbot.py status     # 実行中か確認、自動起動が有効かも確認
python craftbot.py logs       # 最近のログを確認
python craftbot.py uninstall  # 停止、自動起動削除、パッケージをアンインストール

Tip

install または start の後、CraftBotデスクトップショートカットが自動作成されます。ブラウザを誤って閉じた場合は、ショートカットをダブルクリックして再度開けます。


オプション2 — Condaインストール

これを選ぶなら: すでにcondaを使用していて、独立したconda環境でCraftBotを動かしたい場合。

install.py --conda は専用の craftbot conda環境を設定します。Minicondaが見つからない場合は自動的にインストールされます。

# 1. リポジトリをクローン
git clone https://github.com/CraftOS-dev/CraftBot.git
cd CraftBot

# 2. conda環境にインストール
python install.py --conda

# 3. CraftBotを実行
conda run -n craftbot python run.py

# condaがPATHにない場合(Windowsのみ):
&"$env:USERPROFILE\miniconda3\Scripts\conda.exe" run -n craftbot python run.py

Note

CraftBotを実行するたびに conda run -n craftbot python run.py を使用してください。バックグラウンドサービスはありません — 自分で起動と停止を行います。


オプション3 — 手動インストール(pip)

これを選ぶなら: Python環境を完全に自分で管理したい場合、自動サービスやバックグラウンドプロセスは不要な場合。

install.py(フラグなし)は現在アクティブなPython環境に標準pip installを実行します。run.py を使って手動でCraftBotを起動・停止します。

# 1. リポジトリをクローン
git clone https://github.com/CraftOS-dev/CraftBot.git
cd CraftBot

# 2. アクティブなPython環境に依存関係をインストール
python install.py

# 3. CraftBotを実行
python run.py

初回実行時にAPIキーと設定のセットアップがガイドされます。

Note

Node.jsがインストールされていない場合、インストーラーがステップバイステップの手順を提供します。ブラウザモードを完全にスキップしてTUIモードを使用することもできます — Node.js不要:python run.py --tui

インストール後にできること

  • エージェントと自然言語で会話
  • 複雑なマルチステップタスクの実行を依頼
  • /help と入力して利用可能なコマンドを確認
  • Google、Slack、Notionなどに接続

🖥️ インターフェースモード

CraftOS Banner

CraftBotは複数のUIモードをサポートしています。お好みに応じて選択してください:

モード コマンド 要件 最適な用途
ブラウザ python run.py Node.js 18+ モダンなWebインターフェース、最も使いやすい
TUI python run.py --tui なし ターミナルUI、追加の依存関係なし
CLI python run.py --cli なし コマンドライン、軽量

ブラウザモードがデフォルトで推奨されます。Node.jsがない場合は、インストーラーがインストール手順を提供するか、代わりにTUIモードを使用できます。


🧬 Living UI

Living UIは、あなたのニーズに合わせて進化するシステム/アプリ/ダッシュボードです。

AIコパイロットが組み込まれたカンバンボードが必要ですか?あなたのワークフローに合わせて形作られたカスタムCRMは? CraftBotが読み取って操作できる会社のダッシュボードは? Living UIとして立ち上げれば、CraftBotと並んで動作し、あなたのニーズの変化に合わせて成長します。

Living UI example

Living UIを作成する3つの方法

  1. ゼロから構築する。 望むものを自然な言葉で説明してください。CraftBotが データモデル、バックエンドAPI、React UIをスキャフォールドし、構造化された 設計プロセスを通じてあなたと共に反復します。
Building a Living UI from scratch
  1. マーケットプレイスからインストールする。 living-ui-marketplaceからコミュニティが作成したLiving UIを閲覧できます。
Living UI marketplace
  1. 既存のプロジェクトをインポートする。 Go、Node.js、Python、Rust、または静的なソースコード やGitHubリポジトリをCraftBotに指定してください。ランタイムを検出し、ヘルスチェックを構成し、 Living UIとしてラップします。
Importing an existing project as a Living UI

CraftBotをループの中に据えて進化し続ける

Living UIは決して「完成」することはありません。あなたのニーズが成長するにつれて、 機能の追加、ビューの再設計、新しいデータへの接続をエージェントに依頼できます。

CraftBotはすべてのLiving UIに埋め込まれ、その状態を常に認識しています。 現在のDOMとフォームの値を読み取り、REST APIを介してアプリデータを照会し、 あなたの代わりにアクションをトリガーできます。


🧩 アーキテクチャの概要

コンポーネント 説明
エージェントベース タスクライフサイクルを管理し、コンポーネント間を調整し、メインのエージェントループを処理するコアオーケストレーションレイヤー。
LLMインターフェース 複数のLLMプロバイダー(OpenAI、Gemini、Anthropic、BytePlus、Ollama)をサポートする統一インターフェース。
コンテキストエンジン KVキャッシュサポートで最適化されたプロンプトを生成。
アクションマネージャー ライブラリからアクションを取得して実行。カスタムアクションの拡張が容易。
アクションルーター タスク要件に基づいて最適なアクションをインテリジェントに選択し、必要に応じてLLMを介して入力パラメータを解決。
イベントストリーム タスク進行状況の追跡、UI更新、実行モニタリング用のリアルタイムイベント発行システム。
メモリマネージャー ChromaDBを使用したRAGベースのセマンティックメモリ。メモリのチャンキング、埋め込み、検索、増分更新を処理。
ステートマネージャー エージェント実行コンテキスト、会話履歴、ランタイム設定を追跡するグローバルステート管理。
タスクマネージャー タスク定義を管理し、シンプルタスクと複雑タスクモードの切り替え、TODO作成、マルチステップワークフロー追跡を可能にします。
スキルマネージャー エージェントコンテキストにプラグイン可能なスキルをロードして注入。
MCPアダプター MCPツールをネイティブアクションに変換するModel Context Protocol統合。
TUIインターフェース 対話的なコマンドライン操作のためにTextualフレームワークで構築されたターミナルユーザーインターフェース。

🔜 ロードマップ

  • メモリモジュール — 完了。
  • 外部ツール統合 — さらに追加中!
  • MCPレイヤー — 完了。
  • スキルレイヤー — 完了。
  • プロアクティブな動作 — 実装予定

📋 コマンドリファレンス

install.py

フラグ 説明
--conda conda環境を使用(オプション)

run.py

フラグ 説明
(なし) ブラウザモードで実行(推奨、Node.jsが必要)
--tui ターミナルUIモードで実行(追加の依存関係なし)
--cli CLIモードで実行(軽量)

インストール例:

# シンプルなpipインストール(condaなし)
python install.py

# conda環境を使用(condaユーザー向け推奨)
python install.py --conda

CraftBotの実行:

# ブラウザモード(デフォルト、Node.jsが必要)
python run.py

# TUIモード(Node.js不要)
python run.py --tui

# CLIモード(軽量)
python run.py --cli

# conda環境で
conda run -n craftbot python run.py

# condaがPATHにない場合はフルパスを使用
&"$env:USERPROFILE\miniconda3\Scripts\conda.exe" run -n craftbot python run.py

Linux/macOS (Bash):

# ブラウザモード(デフォルト、Node.jsが必要)
python run.py

# TUIモード(Node.js不要)
python run.py --tui

# CLIモード(軽量)
python run.py --cli

# conda環境で
conda run -n craftbot python run.py

🔧 バックグラウンドサービス(推奨)

ターミナルを閉じても CraftBot が動き続けるようにバックグラウンドサービスとして実行します。デスクトップショートカットが自動作成されるので、いつでもブラウザを再度開けます。

# 依存関係インストール、ログイン時自動起動の登録、CraftBot の起動
python craftbot.py install

以上です。ターミナルは自動で閉じ、CraftBot はバックグラウンドで動作し、ブラウザが自動で開きます。

# その他のサービスコマンド:
python craftbot.py start    # CraftBot をバックグラウンドで起動
python craftbot.py status   # 実行中かどうか確認
python craftbot.py stop     # CraftBot を停止
python craftbot.py restart  # CraftBot を再起動
python craftbot.py logs     # 最近のログ出力を確認
コマンド 説明
python craftbot.py install 依存関係インストール、ログイン時自動起動の登録、CraftBot 起動、ブラウザを開き、ターミナルを自動で閉じる
python craftbot.py start CraftBot をバックグラウンドで起動(すでに実行中の場合は自動再起動、ターミナルは自動で閉じる)
python craftbot.py stop CraftBot を停止
python craftbot.py restart CraftBot を停止して再起動
python craftbot.py status CraftBot が実行中か、自動起動が有効かを確認
python craftbot.py logs 最近のログ出力を表示(-n 100 でより多く表示)
python craftbot.py uninstall CraftBot を停止、自動起動の登録解除、pip パッケージのアンインストール、pip キャッシュの削除

Tip

craftbot.py start または craftbot.py install の後、CraftBot デスクトップショートカットが自動作成されます。ブラウザを誤って閉じた場合は、ショートカットをダブルクリックして再度開けます。

Note

インストール: インストーラーは依存関係が不足している場合、明確なガイダンスを提供します。Node.jsが見つからない場合は、インストールを促すか、TUIモードに切り替えることができます。インストールはGPUの可用性を自動検出し、必要に応じてCPU専用モードにフォールバックします。

Tip

初回セットアップ: CraftBotはAPIキー、エージェントの名前、MCP、スキルを設定するオンボーディングシーケンスをガイドします。

Note

Playwright Chromium: WhatsApp Web連携にはオプションです。インストールに失敗しても、エージェントは他のタスクでは問題なく動作します。後で手動でインストールできます: playwright install chromium


🔧 トラブルシューティングとよくある問題

Node.jsがない(ブラウザモード用)

python run.py実行時に**「npm not found in PATH」**と表示される場合:

  1. nodejs.orgからダウンロード(LTSバージョンを選択)
  2. インストールしてターミナルを再起動
  3. python run.pyを再度実行

代替手段: 代わりにTUIモードを使用(Node.js不要):

python run.py --tui

依存関係でインストールが失敗する

インストーラーは解決策付きの詳細なエラーメッセージを提供します。インストールが失敗した場合:

  • Pythonバージョンを確認: Python 3.10+であることを確認(python --version
  • インターネット接続を確認: インストール中に依存関係がダウンロードされます
  • pipキャッシュをクリア: pip install --upgrade pipを実行して再試行

Playwrightのインストール問題

Playwright chromiumのインストールはオプションです。失敗した場合:

  • エージェントは他のタスクでは問題なく動作します
  • スキップするか後でインストール: playwright install chromium
  • WhatsApp Web連携にのみ必要

詳細なトラブルシューティングについては、INSTALLATION_FIX.mdを参照してください。


🔌 外部サービス連携

エージェントはOAuthを使用してさまざまなサービスに接続できます。リリースビルドには埋め込みクレデンシャルが付属していますが、独自のクレデンシャルを使用することもできます。

クイックスタート

埋め込みクレデンシャル付きのリリースビルドの場合:

/google login    # Google Workspaceに接続
/zoom login      # Zoomに接続
/slack invite    # Slackに接続
/notion invite   # Notionに接続
/linkedin login  # LinkedInに接続

サービス詳細

サービス 認証タイプ コマンド シークレットが必要?
Google PKCE /google login いいえ (PKCE)
Zoom PKCE /zoom login いいえ (PKCE)
Slack OAuth 2.0 /slack invite はい
Notion OAuth 2.0 /notion invite はい
LinkedIn OAuth 2.0 /linkedin login はい

独自のクレデンシャルを使用する

独自のOAuthクレデンシャルを使用する場合は、.envファイルに追加してください:

Google (PKCE - クライアントIDのみ必要)

GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
  1. Google Cloud Consoleにアクセス
  2. Gmail、カレンダー、ドライブ、People APIを有効化
  3. デスクトップアプリタイプとしてOAuthクレデンシャルを作成
  4. クライアントIDをコピー(PKCEではシークレットは不要)

Zoom (PKCE - クライアントIDのみ必要)

ZOOM_CLIENT_ID=your-zoom-client-id
  1. Zoom Marketplaceにアクセス
  2. OAuthアプリを作成
  3. クライアントIDをコピー

Slack (両方必要)

SLACK_SHARED_CLIENT_ID=your-slack-client-id
SLACK_SHARED_CLIENT_SECRET=your-slack-client-secret
  1. Slack APIにアクセス
  2. 新しいアプリを作成
  3. OAuthスコープを追加: chat:writechannels:readusers:readなど
  4. クライアントIDとクライアントシークレットをコピー

Notion (両方必要)

NOTION_SHARED_CLIENT_ID=your-notion-client-id
NOTION_SHARED_CLIENT_SECRET=your-notion-client-secret
  1. Notion Developersにアクセス
  2. 新しいインテグレーション(パブリックインテグレーション)を作成
  3. OAuthクライアントIDとシークレットをコピー

LinkedIn (両方必要)

LINKEDIN_CLIENT_ID=your-linkedin-client-id
LINKEDIN_CLIENT_SECRET=your-linkedin-client-secret
  1. LinkedIn Developersにアクセス
  2. アプリを作成
  3. OAuth 2.0スコープを追加
  4. クライアント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)や一般的なHTTPクライアント用のシステム依存関係が含まれているため、エージェントはコンテナ内でファイルやネットワークAPIを扱うことができます。

デフォルトでは、イメージはPython 3.10を使用し、environment.yml/requirements.txtからのPython依存関係をバンドルしているため、python -m app.mainはそのまま動作します。


🤝 貢献方法

プルリクエストを歓迎します!ワークフロー(fork → dev ブランチから分岐 → PR)については CONTRIBUTING.md をご覧ください。すべてのプルリクエストは lint + スモークテスト CI で自動的に検証されます。質問や素早いやり取りをご希望の場合は、Discord に参加するか、thamyikfoong(at)craftos.net までメールしてください。

🧾 ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。このプロジェクトは自由に使用、ホスト、収益化できます(配布や収益化の場合は、このプロジェクトのクレジット表記が必要です)。


⭐ 謝辞

CraftOSおよび貢献者@zfoong@ahmad-ajmalによって開発・維持されています。 CraftBotが役に立つと思われた場合は、リポジトリに⭐をつけて、他の人と共有してくださると嬉しいです!


Star History

Star History Chart