Yeqa uye kokuyinhloko
Izifundo ze-AI

Ukuqalisa nge-opencode-rust: I-ejenti Yokubhala Ikhodi ye-AI Esekelwe ku-Rust

Funda ukufaka i-opencode-rust, ukumisa umhlinzeki, ukusebenzisa i-TUI nezindlela zokuqalisa, ukuphatha ama-ejenti, ukuxhuma amathuluzi e-MCP, nokusebenzisa izici ezithuthukile njengokuthululwa kwemisebenzi yangemuva nama-proxy ajikelezayo.

Ukuqalisa nge-opencode-rust: I-ejenti Yokubhala Ikhodi ye-AI Esekelwe ku-Rust

Yini i-opencode-rust?

opencode-rust iyi-ejenti yokubhala ikhodi ye-AI enomthombo ovulekile eyakhiwe nge-Rust. Ihlinzeka ngesixhumi esibonakalayo somsebenzisi setheminali, ukusetshenziswa kwemiyalo kanye kuphela, iseva ye-HTTP, ukwesekwa kweWeb, nokuhlanganiswa kwe-ACP kokugeleza komsebenzi kwama-ejenti e-AI asebenza endaweni.

Injini ihlanganisa amasessioni, ukusetshenziswa kwamathuluzi, i-MCP, i-LSP, ukuqondiswa kwabahlinzeki, isitoreji se-SQLite, nebhuloho lama-plugin e-TypeScript. Isebenza ngaphandle kwe-Docker noma enye injini yeziqukathi. I-Rust isetshenziselwa ukugcina ukusetshenziswa kwezinsiza kungadluli imingcele ngokusebenzisa imizimba yezicelo egeleza, umlando wezingxoxo osekelwe ku-SQLite, ama-schema amathuluzi agcinwe kunqolobane, nesimo esiqoqwe ngokohla lwemibhalo sisebenzisa ukukhishwa kwe-LRU ne-TTL.

Khetha indlela yokufaka

Zonke izindlela zokufaka ezisekelwayo zihlinzeka ngomyalo we-opr, kodwa umyalo uziphatha ngendlela ehlukile kuye ngokuthi ufakwe kanjani.

Faka nge-npm

I-npm isekela i-Linux, i-macOS, ne-Windows futhi ilanda iphakheji kanambambili eyakhelwe kusengaphambili yesikhulumi samanje. Ayihlanganisi iphrojekthi ngesikhathi sokufaka.

npm install -g opencode-rust

Isiqalisi se-npm siyi-script ye-Node ethumela imiyalo enjinini. Amaphakheji ezikhulumi atholakalayo afaka i-macOS ARM64 ne-x64, i-Linux x64 ne-ARM64 GNU, i-Linux x64 musl, kanye ne-Windows x64 MSVC.

Faka nge-Homebrew

Ku-macOS noma ku-Linux, faka ifomula ye-Homebrew ngalo myalo:

brew install vakandi/tap/opencode-rust

Lokhu kufaka i-opr ngaphandle kokubeka kanambambili ye-opencode ku-prefix ye-Homebrew, ngakho ayifihli i-CLI ye-OpenCode esemthonjeni wokuqala. I-Homebrew yakha kusuka emthonjeni, ngakho ifaka i-toolchain ye-Rust njengokuncika kokwakha.

Yakha kusuka emthonjeni

Clone-a i-repository bese usebenzisa isifaki:

git clone https://github.com/vakandi/opencode-rust.git
cd opencode-rust
./install.sh

Isifaki sakha kanambambili yokukhishwa bese sifaka i-opr kanye nezinqamuleli zama-ejenti. Sihlola iminwe yemithombo ye-Rust namafayela e-manifest e-Cargo, ngakho iphrojekthi engashintshanga ayakhiwa kabusha. Sebenzisa i---force ukuze wakhe kabusha kungakhathaliseki lokho.

Uma usebenzisa i-Homebrew noma isifaki somthombo, i-opr iyikanambambili yenjini uqobo. Sebenzisa i-subcommand ecacile lapho udlulisa amafulegi:

opr tui --some-flag

Nge-npm, isiqalisi sidlulisela amafulegi ku-TUI, ngakho i-opr --some-flag ihunyushwa ngendlela ehlukile.

Lungisa imvelo

I-Node.js 18 noma entsha iyadingeka kwibhuloho lama-plugin nasekuqaliseni amaseva e-MCP nge-npx, kungakhathaliseki indlela yokufaka.

Udinga futhi ukhiye womhlinzeki ngaphambi kokusebenzisa okokuqala. Isibonelo, setha ukhiye we-Anthropic ku-shell yakho:

export ANTHROPIC_API_KEY=sk-ant-...

Sebenzisa ukucushwa komhlinzeki nemininingwane yokufinyelela esekelwa ukusethwa kwakho kwe-OpenCode. Gcina okhiye ngaphandle kolawulo lomthombo nomlando we-shell lapho kungenzeka khona.

Qalisa iseshini yakho yokuqala

Qalisa i-TUI esebenzisanayo

Qalisa isixhumi esibonakalayo setheminali ngalo myalo:

opr

I-TUI iyindawo ezenzakalelayo yokusebenzisana. Ibonisa i-ejenti nemodeli esebenzayo, isakaza okukhiphayo komsizi, futhi inikeza ukuqedelwa kwemiyalo nge-popup ye-/.

Qalisa i-prompt eyodwa

Nge-prompt ezenzakalelayo esebenza ize iqede, sebenzisa i-run:

opr run "check this repo for risks"

Ngokungafani nekholi elula yomhlinzeki, i-run iqhuba umjikelezo ophelele we-prompt yeseshini. Amathuluzi ayasebenza, ama-subagent alindelwe ayaqeda, futhi umsebenzi wangemuva uyaphela ngaphambi kokuthi inqubo iphume.

Qalisa iseva ye-HTTP

Ukuveza injini ngeseva yayo ye-HTTP, sebenzisa:

opr serve --port 3000

Iseva isebenzisa injini yeseshini efanayo futhi isekela ingqalasizinda ye-HTTP, yokusakaza, neyama-ejenti yephrojekthi.

Sebenzisa ama-ejenti aqanjwe ngamagama

I-TUI inama-ejenti akhelwe ngaphakathi e-build ne-plan. I-ejenti ye-build iyi-ejenti ezenzakalelayo yokuthuthukisa enokufinyelela okugcwele, kanti i-plan ihloselwe ukuhlaziya nokuhlola okufundwa kuphela. Cindezela u-Tab ukuze ushintshe ama-ejenti ku-TUI.

Isifaki somthombo sakha nezinqamuleli zama-ejenti aqanjwe ngamagama:

gilfoyle "fix this failing test"
setbon "write 5 ad hooks"
googlebot "audit my meta tags"

Lezi zinqamuleli zisebenzisa i-prompt eyodwa enenani elihambisanayo le---agent. Ukubiza eyodwa ngaphandle kwe-prompt kuphrinta imininingwane yokusetshenziswa ku-standard error bese kuphuma ngesimo 2.

Amanye ama-ejenti angacushwa ekucushweni kwakho kwe-OpenCode nasezitolo zama-ejenti ze-oh-my-opencode ku-~/.omo/omo.jsonc noma ku-~/.config/omo/omo.jsonc. Ukucushwa kwama-ejenti kulezi zindawo kungabhala phezu kokuzenzakalelayo kwe-plugin, futhi ama-ejenti afaniswa kusetshenziswa ama-slug asemthethweni ngisho nalapho amagama awo aboniswayo ehlukile.

Hlela amaphrojekthi namaseshini

Amafayela okucushwa ayahlanganiswa ngesikhathi kuseshwa kuya phezulu kusukela ku-directory esebenzayo. Amagama asekelwayo ezingeni lephrojekthi yilawa:

  • opencode.jsonc
  • opencode.json
  • .opencode/opencode.jsonc
  • .opencode/opencode.json

Ukucushwa okuzenzakalelayo komhlaba wonke kugcinwa ku-~/.config/opencode/opencode.json noma kokulingana kwayo kwe-JSONC. Izincazelo zama-ejenti zingagcinwa nasezindaweni ze-oh-my-opencode ezichazwe ngenhla.

Amaseshini agcinwa ku-SQLite futhi asekela ukudalwa, ukuqhubeka, ukuhlukanisa, ukungenisa nokuthekelisa, kanye nobudlelwano bomzali nengane. Ukuhlola indawo yesizindalwazi, sebenzisa:

opr db path

Ukuhlola ezinye izindawo zesikhathi sokusebenza, kuhlanganise ne-directory yedatha esetshenziswa yi-proxy pool, sebenzisa:

opr debug paths

Sebenzisa amathuluzi e-MCP

i-opencode-rust isekela i-MCP nge-stdio nange-HTTP. Amaseva e-MCP alayishwa ekucushweni, aqaliswe ngokufana ngaphansi komkhawulo wokuqalisa wamasekhondi angu-90, futhi abhaliswe ku-registry efanayo yamathuluzi asetshenziswa yi-ejenti ngesikhathi ngasinye.

Lokhu kusho ukuthi amathuluzi avezwe yiseva ye-MCP angafinyelela kumodeli futhi asebenze njengengxenye yokujika kwe-agent. Qinisekisa ukuthi i-Node.js namaphakheji adingekayo eseva ye-MCP ayatholakala ngaphambi kokuqala iseshini.

Iphrojekthi isebenzisa i-JSON ehlukaniswe ngemigqa ekuthuthweni kwe-MCP stdio. Lokhu kwehlukile ekufakweni kwe-LSP kusetshenziswa i-Content-Length, ngakho ukulungiselelwa kweseva ye-MCP kufanele kubhekise kwezokuthutha nezincazelo ezihambisana ne-MCP.

Qinisekisa ukuthi umsebenzi wangemuva uyaphothulwa

Umyalo we-run wamukela isikhathi sokulinda sokukhipha imisebenzi yangemuva:

opr run --wait-background-timeout 120 "run the requested task"

Ngemva kokujika okuyinhloko, injini ilinda iseshini ize ingasasebenzi, isakaze ama-frame ezingane aqoshwe yi-oh-my-opencode, bese ihlola isimo sokuqhubeka. Isikhathi esizenzakalelayo sokulinda yimizuzwana engu-120.

Ukukhipha imisebenzi kuvuleka ngokwehluleka kunokuba kulenge: imininingwane egciniwe engekho, ama-ledger angekho, i-JSON eyonakele, kanye nokufakiwe okudala okusasebenza kuthathwa njengokungenamsebenzi osele. Sebenzisa isikhathi esifushane noma eside kuye ngemikhawulo edingwa ukugeleza komsebenzi wakho.

Lungiselela i-proxy ejikelezayo

Injini ihlanganisa i-forwarder yasendaweni ye-HTTP ne-CONNECT ejikeleza phakathi kwabazongenela ama-proxy asezindaweni zokuhlala. Ikhetha i-upstream esetshenziswe kudala kakhulu cishe njalo ngemizuzwana engu-120, ihlole abazongenela ngaphambi kokusetshenziswa, futhi ibeke eceleni okuf rechazayo.

Ifayela le-pool elizenzakalelayo liku:

  • macOS: ~/Library/Application Support/opencode/proxy-pool.txt
  • Linux: ~/.local/share/opencode/proxy-pool.txt
  • Windows: %LOCALAPPDATA%\opencode\proxy-pool.txt

Setha OPENCODE_PATHS_ROOT ukuze uhambise indawo yedatha. Indlela ye-pool ephumayo iba $OPENCODE_PATHS_ROOT/opencode/proxy-pool.txt.

Okufakiwe kusebenzisa i-host ne-port, kanye nemininingwane yokungena nemetadata ngokuzikhethela:

198.51.100.10:8080
203.0.113.24:1080
198.51.100.31:3128:myuser:mypass
203.0.113.77:8000 | note:rotates hourly

Gcina ifayela linokufakiwe okuyisisekelo kuphela. Nakuba imigqa eqala ngo-# ikhonjiswa kwezinye izibonelo njengamazwana, i-parser ayisekeli uhlelo lwamazwana; leyo migqa ayinakwa njengokufakiwe okungalungile. Abazongenela abahlulekile kanye nolwazi lobunikazi kugcinwa kumafayela angomakhelwane athi proxy-quarantine.json kanye ne-proxy-claims.json.

Ukuqalisa i-proxy kufanele kwenziwe nge-opencode_proxy::start() kunokuthekelisa ngesandla okuguquguqukayo kwe-proxy. Iklayenti kufanele lithole ukulungiselelwa kwe-proxy ngaphambi kokwakhiwa kwe-registry yabahlinzeki. I-pool engenalutho noma engafundeki ibuyisa iphutha esikhundleni sokuqala i-listener ezohluleka kuzo zonke izicelo.

Hlola indawo yemiyalo

I-CLI ihlanganisa imiyalo yokusetshenziswa ngokuhlanganyela, amasession, amasevisi, ukulungiselela, ukuqinisekisa, ama-agent, ukulungisa amaphutha, i-MCP, ukudluliswa kwedatha, nokugcinwa:

tui      attach   run      serve    web      acp      models
session  stats    db       config   auth     agent    debug
mcp      export   import   github   pr       upgrade  uninstall
generate version

Izinketho eziwusizo ze-run zifaka i---continue, --session, --fork, --agent, --format, --title, --dir, --port, --variant, --thinking, kanye ne---wait-background-timeout.

Ukuthuthukisa nokuqinisekisa

Uma usebenza kule repository, sebenzisa izivivinyo nokuhlolwa kwendawo yokusebenza ngale miyalo:

cargo test --workspace
cargo build --release --bin opencode
cargo clippy --workspace --all-targets

I-repository ihlelwe yaba ama-crate e-CLI, iseva, amasession, ama-agent, amathuluzi, abahlinzeki, i-MCP, ama-plugin, i-LSP, isitoreji, i-TUI, izimvume, izindlela, ama-proxy, kanye nezinsiza ezihlobene. Imibhalo ye-crate ngayinye iyatholakala kumkhombandlela we-docs/.

Isiphetho

opencode-rust ihlinzeka ngenjini ye-OpenCode esekelwe ku-Rust ene-TUI esebenzisanayo, ukwenziwa okuphelele kwamasession, ama-agent alungisekayo, ukuhlanganiswa kwe-MCP nama-plugin, isitoreji se-SQLite, kanye nokufinyelela nge-HTTP. Qala nge-npm, i-Homebrew, noma ukwakha kusuka emthonjeni, lungiselela ukhiye womhlinzeki, bese usebenzisa i-opr, opr run, noma i-opr serve kuye ngokugeleza komsebenzi wakho.

Iphrojekthi ikhishwa ngaphansi kwelayisensi ye-MIT futhi ayihlangene nethimba le-OpenCode.