Skip to content

Latest commit

 

History

History
457 lines (318 loc) · 25.8 KB

File metadata and controls

457 lines (318 loc) · 25.8 KB
CraftBot Banner
CraftBot

ほとんどのエージェントハーネスは、チャットとツール呼び出しで止まります。CraftBotはその先へ進みます。自分自身のSaaSツールを構築し、進化させ、運用し、そのツールレイヤーを通じてあなたとコミュニケーションし、自動化を行います。

それに加えて、CraftBotは汎用エージェントハーネスとしてのコア機能をすべて備えています。リモート従業員のようにタスクを実行し、あなたの好みや目標を記憶し、あなたにとって大切なことを能動的に計画・実行する手助けをします。

Windows macOS Linux GitHub Repo stars License Discord

SPONSORED BY E2B FOR STARTUPS

CraftBot - Self-hosted proactive AI assistant that lives locally | Product Hunt

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

✨ 主な特徴

自前のSaaSツールを作って動かせるAIエージェントというだけでなく、CraftBotはエージェントハーネスのコア機能をひと通り備えており、あなたのタスク・ツール・記憶・日々のワークフローと一緒に動く汎用AIエージェントとして機能します。

  • Living UI. CraftBotの中で動くカスタムアプリを構築・インポート・進化させられます。エージェントはUIの状態を常に把握し、そのデータを直接読み書き・操作できます。
  • マルチタスクとセッションルーティング. まだ/newコマンドを叩いていますか?CraftBotは、いつ新しいセッションを始め、いつ既存のタスクを再開すべきかを自分で判断し、会話とコンテキストを一本化します。
  • セルフホスト & BYOK. OpenAI、Google Gemini、Anthropic Claude、OpenRouterなどに対応する柔軟なLLMプロバイダーシステム。Ollamaを使えば、自分のモデルをトークン消費ゼロでホストすることも可能です。
  • メモリーシステム. CraftBotとのやり取りから、RAG + エージェントファイルシステム + 蒸留によってローカルの知識ベースを構築。CraftBotは深夜に「夢を見て」、その日の出来事を統合します。
  • 能動的なエージェント. あなたの好み、習慣、人生の目標を学習。そのうえで計画を立て、タスクを起動(もちろん承認付きで)し、あなたの人生をより良くする手助けをします。
  • 外部ツールとの連携. Google Workspace、Slack、Notion、Zoom、LinkedIn、Discord、Telegramと接続可能(今後さらに追加予定)。認証情報の埋め込みやOAuthにも対応しています。
  • スキル & MCP. 150以上のMCPと170以上のスキルが利用可能。新しいスキルやMCPもすぐに導入できます。完了したタスクからワンクリックでスキルを作成・改善することもできます。
  • クロスプラットフォーム. Windows、macOS、Linuxを完全サポート。プラットフォーム別のコードバリアントとDockerコンテナ化を備えています。
  • ブラウザUIとCLIに対応. あなたの使い方に合わせて選べます。日常使いには手軽なブラウザUIを、スクリプトやヘッドレス環境にはCLIをどうぞ。

✨ 特徴

  • 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またはCLIモードをご利用ください。

CraftBot Banner CraftBot Banner

🧰 はじめに

必要条件: Python 3.10+ ・ ブラウザモードを使う場合は Node.js 18+

# 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

installstartの後には、CraftBotのデスクトップショートカットが自動で作成されます。ブラウザを閉じてしまったら、このショートカットをダブルクリックするだけで再び開けます。


🌱 Living UI

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

  • AIコパイロット付きのカンバンボードが欲しい?
  • 自分のワークフローにぴったり合うカスタムCRMは?
  • CraftBotがあなたに代わって読み取り・操作できる社内ダッシュボードは?
# 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がインストールされていない場合、インストーラーがステップバイステップの手順を提供します。ブラウザモードを完全にスキップしてCLIモードを使用することもできます — Node.js不要:python run.py --cli

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

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

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

CraftOS Banner

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

モード コマンド 要件 最適な用途
ブラウザ python run.py Node.js 18+ モダンなWebインターフェース、最も使いやすい
CLI python run.py --cli なし コマンドライン、軽量

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


🧬 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をliving-ui-marketplaceから探せます。
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経由でアプリのデータを参照し、あなたに代わってアクションを起こせます。

SaaSツールをオープンに、生き続けるものへ

自分専用のLiving UIを構築・カスタマイズ・進化させ、自分の用途に完璧には合わないサブスクリプションツールへの依存を減らしていきましょう。

私たちはLiving UIを公開してくれる開発者を積極的に探しており、**Living UIマーケットプレイス**にエクスポートできます。PRも大歓迎です!


5分で試せる3つのLiving UI

  • 📋 カンバンボード — タスク、フォローアップ、CTAをすべて一か所に。CraftBotが操作してPM業務を肩代わりできます。
  • 📊 習慣トラッカー — 習慣を作り、追跡する。開発者がコミットを刻むように、GitHub風のアクティビティカレンダーで習慣を可視化。
  • 🐦 Luolinglo — Duolingoではないですが、新しい言語を学び、フラッシュカードを作り、CraftBotと一緒に練習できます。

🧩 アーキテクチャの概要

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

🔜 ロードマップ

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

📋 コマンドリファレンス

install.py

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

run.py

フラグ 説明
(なし) ブラウザモードで実行(推奨、Node.jsが必要)
--cli CLIモードで実行(軽量)

インストール例:

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

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

CraftBotの実行:

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

# 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

# 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が見つからない場合は、インストールを促すか、CLIモードに切り替えることができます。インストールは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を実行

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

python run.py --cli

依存関係のせいでインストールに失敗する

インストーラーは詳細なエラーメッセージと対処法を表示するようになりました。失敗した場合:

  • Pythonのバージョンを確認: Python 3.10以上か確認(python --version)
  • インターネット接続を確認: インストール中に依存関係をダウンロードします
  • pipキャッシュをクリア: pip install --upgrade pipを実行してからやり直す

Playwrightのインストールに失敗する

Playwright Chromiumのインストールは任意です。失敗しても:

  • 他のタスクではエージェントは問題なく動作します
  • スキップして、あとからplaywright install chromiumでインストール可能
  • WhatsApp Web連携を使う場合にのみ必要です

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


🐳 コンテナで実行する

リポジトリのルートには、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がすぐに動きます。


🤝 コントリビュート方法

PR歓迎です! ワークフロー(フォーク → devからブランチを切る → PR)についてはCONTRIBUTING.mdをご覧ください。すべてのプルリクエストはリント + スモークテストCIを自動で通過します。

Important

CraftBotは毎週改善が入る、活発に開発中のプロジェクトです。質問や素早いやり取りがしたい場合は、Discordに参加するか、thamyikfoong(at)craftos.net までメールしてください。


🧾 ライセンス

このプロジェクトは MITライセンス の下で公開されています。自由に利用・ホスト・収益化していただけます(配布や収益化を行う場合は、本プロジェクトのクレジット表記が必要です)。


⭐ 謝辞

CraftOS とコントリビューターによって開発・メンテナンスされています。 CraftBot が役に立ったら、ぜひリポジトリに⭐を付けて、他の人にもシェアしてください!


スター履歴

Star History Chart