Skip to content

Latest commit

 

History

History
288 lines (218 loc) · 13.5 KB

File metadata and controls

288 lines (218 loc) · 13.5 KB

OpenFlow

OpenFlow は、マルチエージェント AI ワークフローのためのビジュアルビルダーです。 ロール カードをキャンバスにドラッグし、パイプライン(プランナー → アーキテクト → コーダー)を配線 して保存し、実際の並列エージェントで実行します。

OpenFlow は独立したプロジェクトです。 opencode の上に構築され、そのフォークとして提供 されます。opencode のヘッドレスエンジン(opencode serve)が背後でエージェントを駆動しま す。OpenFlow 独自のコードはすべて packages/flow にあります。上流の パッケージは一切変更しないため、OpenCode エンジンは最新のまま保たれ、上流とのマージもクリーン に保たれます。オリジナルの OpenCode README は以下に続きます。

インストール

前提条件

  • Bun 1.3 以降 — OpenFlow が必要とする唯一のランタイム(エンジン、ビル ド、キャンバスを動かします)。bun --version で確認してください。
  • Git

コードを取得する

git clone https://github.com/SeeRay11/OpenFlow.git
cd OpenFlow
bun install

bun install はワークスペース全体を取得します — OpenCode エンジンに加えて、 packages/flow にある OpenFlow 独自のコードです。初回インストールは大き く、エンジンのネイティブ依存関係をダウンロードします。postinstall のステップは node-pty のビルド済みヘルパーバイナリに実行権限を付けるだけで、Windows では何もせずすぐに終了します。

すでに動いているものを止める

OpenFlow はポートを 2 つ使う。エンジンが 4096、キャンバスが 5174。前回の実行がまだ握っていると、エンジンを手動で起動しても Error: Unexpected error / ServeError で失敗する。これはポートが埋まっているだけで、インストールの破損ではない。

bun openflow.ts はこれを自動で処理する。すでに応答しているポートは再利用し、死んだ実行が握ったままのポートは解放する。自分で古いプロセスを終了させるのは、本当に新しいエンジンが欲しいときだけでよい。たとえば opencode.json を編集したあと。エンジンは起動時にプロジェクト設定をキャッシュし、二度と読み直さないからだ。

Windows (PowerShell)

Get-NetTCPConnection -LocalPort 4096,5174 -State Listen -ErrorAction SilentlyContinue |
  Select-Object -ExpandProperty OwningProcess -Unique |
  ForEach-Object { taskkill /pid $_ /T /F }

macOS / Linux

lsof -t -i :4096 -i :5174 | xargs kill -9

どちらのコマンドも、何も待ち受けていなければ安全で、対象のプロセスが見つからないだけで終わる。ただしそのポートを握っているプロセスは何であれ終了させるので、他のものを動かしているなら先に確認すること。

Get-NetTCPConnection -LocalPort 4096,5174 -State Listen | Select-Object LocalPort,OwningProcess
lsof -i :4096 -i :5174

エンジンが database is locked で失敗する場合、 別の opencode エンジンがすでに どこかで動いています。OpenFlow の 2 つ目のコピーか、前回のランチャーが残したものです。 すべてのエンジンは opencode のデータディレクトリにある 1 つのデータベースを共有するため、 後から起動したほうは開けません。そのエンジンがポートを握っているとは限らないので、 ポートを空けても解決しません。実行内容を手がかりに停止してください:

Get-CimInstance Win32_Process -Filter "Name='bun.exe'" |
  Where-Object { $_.CommandLine -match 'openflow\.ts|src/index\.ts serve|packages/flow dev' } |
  ForEach-Object { Stop-Process -Id $_.ProcessId -Force }
pkill -f 'openflow\.ts|src/index\.ts serve|packages/flow dev'

そのうえで OpenFlow を起動し直します。毎回起きるなら、OpenFlow を 2 か所にクローンして 両方を起動している可能性が高いので、1 つに絞ってください。

実行する

1 つのコマンドで両方のプロセスが起動します。どのプラットフォームでも同じです:

bun openflow.ts

エンジンを起動し、応答するまで待ってから、http://localhost:5174 でキャンバスを開きます。 Ctrl+C で両方を停止します。終了し損ねた実行が掴んだままのポートは先に解放され、すでに応答して いるポートは二重に起動せずそのまま再利用します。

同じファイルを包む薄い起動スクリプトが 2 つあり、各プラットフォームのランチャーを好む人向けで す。スクリプト自体にロジックはなく、フラグを openflow.ts がすでに読んでいる環境変数へ変換す るだけです。

.\openflow.ps1
./openflow.sh

Windows ではこのスクリプトが起動を拒否することがあります。 PowerShell は既定で署名のない ローカルスクリプトを実行しないため、.\openflow.ps1"openflow.ps1 cannot be loaded because running scripts is disabled on this system" で失敗することがあります。クローンではなく ZIP でダウンロードしたリポジトリは、さらにインターネット由来として印が付き、二重にブロックされ ます。bun openflow.ts はそのどちらの対象にもならず、両方を回避する最短の方法です。それでも 起動スクリプトを使いたい場合は、自分のアカウントについてローカルスクリプトを許可し、ZIP から取 得したファイルであればブロックを解除してください:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Unblock-File .\openflow.ps1

フラグは任意で、3 つの入口はいずれも同じ結果になります:

PowerShell shell 環境変数 何をするか
-Project <dir> -p, --project <dir> OPENFLOW_PROJECT エージェントが読み書きするリポジトリ — 実際のファイルを編集します
-ServerPort <n> -s, --server-port <n> OPENCODE_SERVER_URL エンジンのポート、既定は 4096
-Built -b, --built OPENFLOW_BUILT=1 vite を実行する代わりに静的バンドルをビルドして提供する
-Manage -m, --manage FLOW_MANAGE_SERVER=1 キャンバスにエンジンを所有させ、その再起動ボタンを機能させる
-Help -h, --help フラグ一覧を表示する
OPENFLOW_DRY_RUN=1 決定した内容を表示し、何も起動しない

または、2 つのプロセスを手動で起動します。まずサーバー:

bun run --cwd packages/opencode --conditions=browser src/index.ts serve --port 4096

次にキャンバス、http://localhost:5174 で:

bun run --cwd packages/flow dev

または、ビルド済みで実行します。これは vite を使わずに同じアプリを提供します:

bun run --cwd packages/flow build && bun run --cwd packages/flow start

OpenCode logo

OpenFlow is an independent fork. It is not affiliated with, sponsored by, or endorsed by the OpenCode team.

オープンソースのAIコーディングエージェント。

Discord npm Build status

English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | Українська | বাংলা | Ελληνικά | Tiếng Việt

OpenCode Terminal UI


インストール

# YOLO
curl -fsSL https://opencode.ai/install | bash

# パッケージマネージャー
npm i -g opencode-ai@latest        # bun/pnpm/yarn でもOK
scoop install opencode             # Windows
choco install opencode             # Windows
brew install anomalyco/tap/opencode # macOS と Linux(推奨。常に最新)
brew install opencode              # macOS と Linux(公式 brew formula。更新頻度は低め)
sudo pacman -S opencode            # Arch Linux (Stable)
paru -S opencode-bin               # Arch Linux (Latest from AUR)
mise use -g opencode               # どのOSでも
nix run nixpkgs#opencode           # または github:anomalyco/opencode で最新 dev ブランチ

Tip

インストール前に 0.1.x より古いバージョンを削除してください。

デスクトップアプリ (BETA)

OpenCode はデスクトップアプリとしても利用できます。releases page から直接ダウンロードするか、opencode.ai/download を利用してください。

プラットフォーム ダウンロード
macOS (Apple Silicon) opencode-desktop-mac-arm64.dmg
macOS (Intel) opencode-desktop-mac-x64.dmg
Windows opencode-desktop-windows-x64.exe
Linux .deb.rpm、または AppImage
# macOS (Homebrew)
brew install --cask opencode-desktop
# Windows (Scoop)
scoop bucket add extras; scoop install extras/opencode-desktop

インストールディレクトリ

インストールスクリプトは、インストール先パスを次の優先順位で決定します。

  1. $OPENCODE_INSTALL_DIR - カスタムのインストールディレクトリ
  2. $XDG_BIN_DIR - XDG Base Directory Specification に準拠したパス
  3. $HOME/bin - 標準のユーザー用バイナリディレクトリ(存在する場合、または作成できる場合)
  4. $HOME/.opencode/bin - デフォルトのフォールバック
#
OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash
XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash

Agents

OpenCode には組み込みの Agent が2つあり、Tab キーで切り替えられます。

  • build - デフォルト。開発向けのフルアクセス Agent
  • plan - 分析とコード探索向けの読み取り専用 Agent
    • デフォルトでファイル編集を拒否
    • bash コマンド実行前に確認
    • 未知のコードベース探索や変更計画に最適

また、複雑な検索やマルチステップのタスク向けに general サブ Agent も含まれています。 内部的に使用されており、メッセージで @general と入力して呼び出せます。

agents の詳細はこちら。

ドキュメント

OpenCode の設定については ドキュメント を参照してください。

コントリビュート

OpenCode に貢献したい場合は、Pull Request を送る前に contributing docs を読んでください。

OpenCode の上に構築する

OpenCode に関連するプロジェクトで、名前に "opencode"(例: "opencode-dashboard" や "opencode-mobile")を含める場合は、そのプロジェクトが OpenCode チームによって作られたものではなく、いかなる形でも関係がないことを README に明記してください。


コミュニティに参加 Discord | X.com