Ο πράκτορας τεχνητής νοημοσύνης ανοικτού κώδικα για προγραμματισμό.
English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | Українська | বাংলা | Ελληνικά | Tiếng Việt
Το OpenCode μπορεί να επιλέγει μοντέλο για κάθε βήμα αντί να κρατά ένα μοντέλο για όλη τη συνεδρία: ένα τοπικό ή φθηνό μοντέλο κάνει τη ρουτίνα και το ισχυρότερο μοντέλο φυλάσσεται για τα μέρη που όντως το χρειάζονται. Η δρομολόγηση μένει κλειστή έως ότου ενεργοποιήσεις το routing.enabled.
Διάλεξε Auto (Routing) στον επιλογέα μοντέλων για αυτόματη δρομολόγηση της συνεδρίας. Αν διαλέξεις συγκεκριμένο μοντέλο, η συνεδρία καρφιτσώνεται σε αυτό και η δρομολόγηση δεν το πειράζει.
| Επίπεδο | Προεπιλογή | Αναλαμβάνει |
|---|---|---|
| Local | το μοντέλο στη ρύθμιση qwen σου |
υλοποίηση, δοκιμές, ανασχεδιασμούς και τα βήματα build και κελύφους που τα επαληθεύουν |
| Routine | το φθηνότερο ενεργό μοντέλο DeepSeek Flash | σχεδιασμό, ανάλυση, κριτική, εξηγήσεις και συνηθισμένη αποσφαλμάτωση |
| Pro | το ισχυρότερο ενεργό μοντέλο DeepSeek | αρχιτεκτονική και μεγάλους ανασχεδιασμούς, δύσκολη αποσφαλμάτωση, εργασία ευαίσθητη στην ασφάλεια |
- Το τελευταίο σου αίτημα ορίζει τη βασική ταξινόμηση και μετά κάθε βήμα μέσα στον γύρο ταξινομείται ξανά από όσα έχει ήδη κάνει ο γύρος: τα βήματα που μόνο διαβάζουν και ψάχνουν μένουν στο επίπεδο Routine. Μόλις ένα βήμα αλλάξει αρχεία ή εκτελέσει εντολή, η υπόλοιπη συνέχεια του γύρου εκτελείται στο επίπεδο Local. Δύο συνεχόμενα βήματα με αποτυχημένες κλήσεις εργαλείων λογίζονται ως δύσκολη αποσφαλμάτωση και πάνε στο επίπεδο Pro. Με
routing.step_routing: falseο γύρος κρατά ένα μόνο επίπεδο. - Ένα επίπεδο χρησιμοποιείται μόνο αν το μοντέλο του είναι ενεργοποιημένο και αυτή τη στιγμή υγιές, και αν η συζήτηση χωράει ακόμα στο παράθυλο πλαισίου του.
- Μετά από
routing.attemptsαποτυχίες η δουλειά κλιμακώνεται στο επόμενο επίπεδο και το μοντέλο που αποτυγχάνει παραλείπεται για ένα μικρό διάστημα ψύξης. Η διακοπή μιας εκτέλεσης δεν λογίζεται ποτέ ως σφάλμα μοντέλου. - Το
routing.preferenceζυγίζει κόστος και ποιότητα:cost-first,balanced(προεπιλογή) ήquality-first. Κάθε φορά που η δρομολόγηση επιλέγει άλλο μοντέλο, η συνεδρία δείχνει μια σύντομη σημείωση με το μοντέλο, το επίπεδο και τον λόγο (routing.diagnostics).
Η εφαρμογή μπορεί να στήσει ολόκληρο χώρο εργασίας έργου για εσένα: δημιουργεί τα αρτεφάκτα, τα επαληθεύει, ανοίγει το έργο και ξεκινά την πρώτη εργασία σε μια συνεδρία. Άνοιξε το New project workspace από την αρχική των έργων (το εικονίδιο πλέγματος στην κεφαλίδα) ή από την παλέτα εντολών. Ο οδηγός ρωτά για την περιγραφή του έργου και τον φάκελο προορισμού, τη γλώσσα εξόδου, την επιλογή μοντέλου (αυτόματη δρομολόγηση τριών μοντέλων ή καρφιτσωμένο μοντέλο με προτίμηση cost-first, balanced, quality-first), προαιρετικά ένα τοπικό μοντέλο (βάση URL, αναγνωριστικό μοντέλου, αναγνωριστικό παρόχου, προαιρετικό κλειδί API, χρονικό όριο και μέγιστα token εξόδου) με έλεγχο σύνδεσης, και αν θα ενεργοποιηθεί η πρώιμη συμπίεση με επίγνωση του κόστους. Έπειτα περνά από ορατά στάδια και αφήνει ανοιχτή τη συνεδρία της αρχικής εργασίας· ένα αποτυχημένο στάδιο μπορεί να συνεχιστεί, και μια ακυρωμένη εκτέλεση κρατά τα αρχεία που ήδη δημιούργησε.
Τίποτα μυστικό δεν γράφεται στον δίσκο: το προαιρετικό τοπικό κλειδί API πάει στο φυλάκιο διαπιστευτηρίων και στο αρχείο opencode.json του έργου μπορεί να εμφανιστεί μόνο το όνομα της μεταβλητής περιβάλλοντός του. Αυτό το αρχείο εφαρμόζει τις ίδιες αποφάσεις δρομολόγησης και συμπίεσης στη μετέπειτα δουλειά πάνω στο ίδιο έργο.
Οι μεγάλες συνεδρίες συνοψίζονται σε ένα μόνιμο σημείο ελέγχου ώστε η συζήτηση να χωράει ακόμα στο παράθυρο του μοντέλου. Δύο ανεξάρτητοι πυροδότες μοιράζονται αυτή τη μηχανή.
Η συμπίεση ορίου πλαισίου είναι ενεργή από προεπιλογή (compaction.auto): τρέχει όταν το εκτιμώμενο αίτημα ξεπεράσει το ανώτατο όριο του μοντέλου, διατηρεί λέξη προς λέξη τα τελευταία compaction.keep.tokens (15.000 προεπιλογή) και συνοψίζει τα υπόλοιπα. Αυτή είναι ο διχτυοφύλακας: τρέχει πάντα ακόμα κι αν ο παρακάτω πρώιμος πυροδότης την παραλείσει.
Η πρώιμη συμπίεση με επίγνωση κόστους είναι opt-in (compaction.early.enabled, κλειστή από προεπιλογή) και δρα πριν το όριο είναι σε ορίζοντα, ώστε η συνεδρία να κόβει παλιό πλαίσιο όσο ακόμα είναι φθηνό. Τρέχει μόνο αν όλο το πλαίσιο είναι τουλάχιστον min_tokens (24.000) και το κομμάτι που αφαιρείται από μόνο του αξίζει τουλάχιστον min_benefit_tokens (8.000) token, το πολύ μία φορά κάθε cooldown_seconds (300) ανά συνεδρία. Με το require_task_boundary περιμένει ένα φυσικό διάλειμμα· η προεπιλογή είναι true, αλλά ένας γύρος κλήσεων εργαλείων δεν φτάνει ποτέ σε τέτοιο διάλειμμα, οπότε το false είναι αυτό που κάνει τους μεγάλους γύρους πρακτόρων να συμπιέζονται έστω. Το local_summarize στέλνει την περίληψη στο ρυθμισμένο τοπικό μοντέλο και καταγράφει τη χρήση και το κόστος του.
{
"compaction": {
"auto": true,
"keep": { "tokens": 15000 },
"early": { "enabled": true, "min_tokens": 24000, "min_benefit_tokens": 8000, "cooldown_seconds": 300, "require_task_boundary": false, "local_summarize": false },
},
}Μια εκτέλεση συμπίεσης χρειάζεται χώρο εξόδου για την ίδια την περίληψή της· ένα τοπικό μοντέλο με μικρό limit.output (8.192 για παράδειγμα) μπορεί να εξαντλήσει αυτόν τον χώρο και το βήμα αποτυγχάνει με Compaction summary reached the output token limit — ανέβασε αυτό το όριο ή άσε το local_summarize κλειστό όταν το δεις αυτό.
# YOLO
curl -fsSL https://opencode.ai/v2/install | bash
# Διαχειριστές πακέτων
npm i -g @opencode/cli@latest # ή bun/pnpm/yarn
brew install anomalyco/tap/opencode-v2 # macOS και Linux (προτείνεται, πάντα ενημερωμένο)
brew install opencode # macOS και Linux (επίσημος τύπος brew, λιγότερο συχνές ενημερώσεις)
sudo pacman -S opencode # Arch Linux (Σταθερό)
paru -S opencode-beta # Arch Linux (Τελευταία έκδοση από AUR)
mise use -g opencode # Οποιοδήποτε λειτουργικό σύστημα
nix run github:anomalyco/opencode # NixTip
Αφαίρεσε παλαιότερες εκδόσεις από τη 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-win-x64.exe |
| Linux | .deb, .rpm, ή AppImage |
# macOS (Homebrew)
brew install --cask 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/v2/install | bash
XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/v2/install | bashΤο OpenCode περιλαμβάνει δύο ενσωματωμένους πράκτορες μεταξύ των οποίων μπορείτε να εναλλάσσεστε με το πλήκτρο Tab.
- build - Προεπιλεγμένος πράκτορας με πλήρη πρόσβαση για εργασία πάνω σε κώδικα
- plan - Πράκτορας μόνο ανάγνωσης για ανάλυση και εξερεύνηση κώδικα
- Αρνείται την επεξεργασία αρχείων από προεπιλογή
- Ζητά άδεια πριν εκτελέσει εντολές bash
- Ιδανικός για εξερεύνηση άγνωστων αρχείων πηγαίου κώδικα ή σχεδιασμό αλλαγών
Περιλαμβάνεται επίσης ένας general υποπράκτορας για σύνθετες αναζητήσεις και πολυβηματικές διεργασίες.
Χρησιμοποιείται εσωτερικά και μπορεί να κληθεί χρησιμοποιώντας @general στα μηνύματα.
Μάθετε περισσότερα για τους πράκτορες.
Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση του OpenCode, πλοηγήσου στον οδηγό χρήσης μας.
Εάν ενδιαφέρεσαι να συνεισφέρεις στο OpenCode, διαβάστε τα οδηγό χρήσης συνεισφοράς πριν υποβάλεις ένα pull request.
Εάν εργάζεσαι σε ένα έργο σχετικό με το OpenCode και χρησιμοποιείτε το "opencode" ως μέρος του ονόματός του, για παράδειγμα "opencode-dashboard" ή "opencode-mobile", πρόσθεσε μια σημείωση στο README σας για να διευκρινίσεις ότι δεν είναι κατασκευασμένο από την ομάδα του OpenCode και δεν έχει καμία σχέση με εμάς.

{ "$schema": "https://opencode.ai/config.json", // Οποιοσδήποτε διακομιστής συμβατός με OpenAI: llama.cpp, Ollama, vLLM, LM Studio, ... "providers": { "local": { "package": "aisdk:@ai-sdk/openai-compatible", "settings": { "baseURL": "http://127.0.0.1:8080/v1" }, "models": { "qwen3-coder": { "limit": { "context": 131072, "output": 8192 } } }, }, }, "qwen": { "base_url": "http://127.0.0.1:8080/v1", "model": "qwen3-coder", "provider": "local" }, "routing": { "enabled": true, "preference": "balanced", // Προαιρετικό. Οι ρόλοι που δεν έχουν οριστεί βρίσκονται από τον κατάλογο. "roles": { "local": "local/qwen3-coder", "routine": "deepseek/deepseek-chat", "pro": "deepseek/deepseek-reasoner" }, "step_routing": true, }, }