Το OpenFlow είναι ένας οπτικός δημιουργός ροών εργασίας AI πολλαπλών πρακτόρων. Σύρετε κάρτες ρόλων σε έναν καμβά, συνδέστε ένα pipeline (σχεδιαστής → αρχιτέκτονας → προγραμματιστής), αποθηκεύστε το και εκτελέστε το με πραγματικούς παράλληλους πράκτορες.
Το OpenFlow είναι δικό του έργο. Είναι χτισμένο πάνω στο
opencode — και διανέμεται ως fork του — του
οποίου η headless μηχανή (opencode serve) οδηγεί τους πράκτορες από κάτω. Όλος ο
δικός κώδικας του OpenFlow βρίσκεται στο packages/flow; κανένα
upstream πακέτο δεν τροποποιείται, οπότε η μηχανή OpenCode παραμένει ενημερωμένη και
τα upstream merges παραμένουν καθαρά. Το αρχικό README του OpenCode ακολουθεί
παρακάτω.
Προαπαιτούμενα
- Bun 1.3 ή νεότερο — το μοναδικό runtime που χρειάζεται το
OpenFlow (τρέχει τη μηχανή, το build και τον καμβά). Έλεγχος με
bun --version. - Git.
Λήψη του κώδικα
git clone https://github.com/SeeRay11/OpenFlow.git
cd OpenFlow
bun installΤο bun install κατεβάζει ολόκληρο το workspace — τη μηχανή OpenCode συν τον δικό
κώδικα του OpenFlow στο packages/flow. Η πρώτη εγκατάσταση είναι
μεγάλη· κατεβάζει τις native εξαρτήσεις της μηχανής. Ένα βήμα postinstall σημειώνει
ως εκτελέσιμα τα προμεταγλωττισμένα βοηθητικά binaries του node-pty και στα Windows
επιστρέφει αμέσως.
Το OpenFlow χρησιμοποιεί δύο θύρες: 4096 για τη μηχανή και 5174 για τον
καμβά. Αν μια προηγούμενη εκτέλεση τις κρατά ακόμη, η χειροκίνητη εκκίνηση της
μηχανής αποτυγχάνει με Error: Unexpected error / ServeError — πρόκειται για
δεσμευμένη θύρα, όχι για χαλασμένη εγκατάσταση.
Το bun openflow.ts το χειρίζεται μόνο του: επαναχρησιμοποιεί μια θύρα που ήδη
εξυπηρετεί και ελευθερώνει εκείνη που άφησε δεσμευμένη μια νεκρή εκτέλεση.
Τερματίστε μόνοι σας τις παλιές διεργασίες μόνο όταν θέλετε πραγματικά καθαρή
μηχανή — για παράδειγμα μετά από αλλαγή στο opencode.json, καθώς η μηχανή
διαβάζει τη ρύθμιση του project στην εκκίνηση και δεν την ξαναδιαβάζει.
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,OwningProcesslsof -i :4096 -i :5174Αν η μηχανή αποτύχει με database is locked, τρέχει ήδη κάπου αλλού μια άλλη
μηχανή opencode — ένα δεύτερο αντίγραφο του OpenFlow, ή μια μηχανή που άφησε πίσω
του κάποιος προηγούμενος εκκινητής. Όλες οι μηχανές μοιράζονται μία βάση δεδομένων
στον κατάλογο δεδομένων του opencode, οπότε η δεύτερη που ξεκινά δεν μπορεί να την
ανοίξει. Το να ελευθερώσετε τις θύρες δεν βοηθά εδώ, γιατί εκείνη η μηχανή μπορεί
να μην τις κρατά. Σταματήστε την με βάση αυτό που εκτελεί:
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 σε δύο σημεία και ξεκινούν και τα δύο — κρατήστε ένα.
Μία εντολή ξεκινά και τις δύο διεργασίες, με τον ίδιο τρόπο σε κάθε πλατφόρμα:
bun openflow.tsΞεκινά τη μηχανή, περιμένει μέχρι να απαντήσει, και μετά ανοίγει τον καμβά στο http://localhost:5174· το Ctrl+C σταματά και τα δύο. Μια θύρα που άφησε δεσμευμένη μια νεκρή εκτέλεση απελευθερώνεται πρώτα, και μια θύρα που ήδη εξυπηρετεί επαναχρησιμοποιείται αντί να ξεκινήσει δεύτερη φορά.
Δύο ελαφριά scripts τυλίγουν το ίδιο αρχείο για όσους προτιμούν τον launcher της
πλατφόρμας τους. Δεν έχουν δική τους λογική — απλώς μεταφράζουν τα flags στις
μεταβλητές περιβάλλοντος που το openflow.ts ήδη διαβάζει.
.\openflow.ps1./openflow.shΣτα Windows το script μπορεί να αρνηθεί να ξεκινήσει: το PowerShell από προεπιλογή
δεν εκτελεί ανυπόγραφα τοπικά scripts, οπότε το .\openflow.ps1 μπορεί να αποτύχει
με "openflow.ps1 cannot be loaded because running scripts is disabled on this
system". Ένα repo που κατέβηκε ως ZIP αντί να κλωνοποιηθεί σημειώνεται επιπλέον ως
προερχόμενο από το διαδίκτυο, κάτι που το μπλοκάρει με δεύτερο τρόπο. Το
bun openflow.ts δεν υπόκειται σε κανένα από τα δύο και είναι ο συντομότερος δρόμος
να τα προσπεράσετε. Για να χρησιμοποιήσετε παρ' όλα αυτά το script, επιτρέψτε τα τοπικά
scripts για τον δικό σας λογαριασμό και ξεμπλοκάρετε το αρχείο αν προήλθε από ZIP:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Unblock-File .\openflow.ps1Τα flags είναι προαιρετικά, και οι τρεις επιφάνειες καταλήγουν στο ίδιο σχέδιο:
| PowerShell | shell | περιβάλλον | τι κάνει |
|---|---|---|---|
-Project <dir> |
-p, --project <dir> |
OPENFLOW_PROJECT |
το repo που διαβάζουν και γράφουν οι πράκτορες — επεξεργάζονται πραγματικά αρχεία |
-ServerPort <n> |
-s, --server-port <n> |
OPENCODE_SERVER_URL |
θύρα της μηχανής, προεπιλογή 4096 |
-Built |
-b, --built |
OPENFLOW_BUILT=1 |
χτίσε και σέρβιρε το στατικό bundle αντί να τρέξει το vite |
-Manage |
-m, --manage |
FLOW_MANAGE_SERVER=1 |
άσε τον καμβά να έχει τη μηχανή, ώστε να λειτουργεί το κουμπί επανεκκίνησής του |
-Help |
-h, --help |
— | τύπωσε τη λίστα των flags |
| — | — | OPENFLOW_DRY_RUN=1 |
τύπωσε το σχέδιο που προέκυψε και μην ξεκινήσεις τίποτα |
Ή ξεκινήστε τις δύο διεργασίες με το χέρι. Πρώτα ο server:
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 startOpenFlow is an independent fork. It is not affiliated with, sponsored by, or endorsed by the OpenCode team.
Ο πράκτορας τεχνητής νοημοσύνης ανοικτού κώδικα για προγραμματισμό.
English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | Українська | বাংলা | Ελληνικά | Tiếng Việt
# YOLO
curl -fsSL https://opencode.ai/install | bash
# Διαχειριστές πακέτων
npm i -g opencode-ai@latest # ή bun/pnpm/yarn
scoop install opencode # Windows
choco install opencode # Windows
brew install anomalyco/tap/opencode # macOS και Linux (προτείνεται, πάντα ενημερωμένο)
brew install opencode # macOS και Linux (επίσημος τύπος brew, λιγότερο συχνές ενημερώσεις)
sudo pacman -S opencode # Arch Linux (Σταθερό)
paru -S opencode-bin # Arch Linux (Τελευταία έκδοση από AUR)
mise use -g opencode # Οποιοδήποτε λειτουργικό σύστημα
nix run nixpkgs#opencode # ή github:anomalyco/opencode με βάση την πιο πρόσφατη αλλαγή από το dev branchTip
Αφαίρεσε παλαιότερες εκδόσεις από τη 0.1.x πριν από την εγκατάσταση.
Το OpenCode είναι επίσης διαθέσιμο ως εφαρμογή. Κατέβασε το απευθείας από τη σελίδα εκδόσεων ή το 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Το script εγκατάστασης τηρεί την ακόλουθη σειρά προτεραιότητας για τη διαδρομή εγκατάστασης:
$OPENCODE_INSTALL_DIR- Προσαρμοσμένος κατάλογος εγκατάστασης$XDG_BIN_DIR- Διαδρομή συμβατή με τις προδιαγραφές XDG Base Directory$HOME/bin- Τυπικός κατάλογος εκτελέσιμων αρχείων χρήστη (εάν υπάρχει ή μπορεί να δημιουργηθεί)$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Το OpenCode περιλαμβάνει δύο ενσωματωμένους πράκτορες μεταξύ των οποίων μπορείτε να εναλλάσσεστε με το πλήκτρο Tab.
- build - Προεπιλεγμένος πράκτορας με πλήρη πρόσβαση για εργασία πάνω σε κώδικα
- plan - Πράκτορας μόνο ανάγνωσης για ανάλυση και εξερεύνηση κώδικα
- Αρνείται την επεξεργασία αρχείων από προεπιλογή
- Ζητά άδεια πριν εκτελέσει εντολές bash
- Ιδανικός για εξερεύνηση άγνωστων αρχείων πηγαίου κώδικα ή σχεδιασμό αλλαγών
Περιλαμβάνεται επίσης ένας general υποπράκτορας για σύνθετες αναζητήσεις και πολυβηματικές διεργασίες.
Χρησιμοποιείται εσωτερικά και μπορεί να κληθεί χρησιμοποιώντας @general στα μηνύματα.
Μάθετε περισσότερα για τους πράκτορες.
Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση του OpenCode, πλοηγήσου στον οδηγό χρήσης μας.
Εάν ενδιαφέρεσαι να συνεισφέρεις στο OpenCode, διαβάστε τα οδηγό χρήσης συνεισφοράς πριν υποβάλεις ένα pull request.
Εάν εργάζεσαι σε ένα έργο σχετικό με το OpenCode και χρησιμοποιείτε το "opencode" ως μέρος του ονόματός του, για παράδειγμα "opencode-dashboard" ή "opencode-mobile", πρόσθεσε μια σημείωση στο README σας για να διευκρινίσεις ότι δεν είναι κατασκευασμένο από την ομάδα του OpenCode και δεν έχει καμία σχέση με εμάς.
