Pereiti prie pagrindinio turinio
OpenAI

2025 m. gegužės 16 d.

LeidimasProduktas

Pristatome „Codex“

Debesijos pagrindu veikiantis programinės įrangos inžinerijos agentas, kuris gali lygiagrečiai vykdyti daug užduočių ir kurį valdo „codex-1“. Jau šiandien prieinamas „ChatGPT Pro“, „Business“ ir „Enterprise“ naudotojams, o netrukus – ir „Plus“ naudotojams.

Dashboard asking ‘What should we code next?’ with a prompt box, repo/branch selectors, and a task list on a pastel code-themed backdrop.
Įkeliama...

2025 m. birželio 3 d. atnaujinimas: „Codex“ dabar prieinamas „ChatGPT Plus“ naudotojams. Taip pat įgaliname naudotojus suteikti „Codex“ prieigą prie interneto vykdant užduotis. Daugiau informacijos rasite pakeitimų žurnale(atsidaro naujame lange) ir dokumentacijoje(atsidaro naujame lange).


Šiandien pristatome „Codex“ tyrimų peržiūrą – debesijos pagrindu veikiantį programinės įrangos inžinerijos agentą, galintį lygiagrečiai vykdyti daugybę užduočių. „Codex“ gali atlikti užduotis už jus, pavyzdžiui, rašyti funkcijas, atsakyti į klausimus apie jūsų kodų bazę, taisyti riktus ir siūlyti peržiūrėti išsiuntimo užklausas; kiekviena užduotis vykdoma atskiroje debesijos „sandbox“ aplinkoje, kurioje iš anksto įkelta jūsų saugykla.

„Codex“ valdomas „codex-1“ – „OpenAI o3“ versijos, optimizuotos programinės įrangos inžinerijai. Jis buvo mokomas naudojant pastiprinimo mokymąsi atliekant realias programavimo užduotis įvairiose aplinkose, kad generuotų kodą, kuris labai primena žmogaus stilių ir PR pageidavimus, tiksliai laikosi instrukcijų ir gali iteratyviai vykdyti testus, kol gauna teigiamą rezultatą. Nuo šiandien pradedame diegti „Codex“ aplinką „ChatGPT Pro“, „Enterprise“ ir „Business“ naudotojams, o netrukus bus palaikomi ir „Plus“ bei „Edu“ naudotojai.

Kaip veikia „Codex“

Šiandien galite pasiekti „Codex“ per šoninę juostą „ChatGPT“ sistemoje ir priskirti jam naujas programavimo užduotis įvesdami raginimą ir spustelėdami Code. Jei norite užduoti „Codex“ klausimą apie savo kodų bazę, spustelėkite Ask. Kiekviena užduotis apdorojama nepriklausomai atskiroje, izoliuotoje aplinkoje, kurioje iš anksto įkelta jūsų kodų bazė. „Codex“ gali skaityti ir redaguoti failus, taip pat vykdyti komandas, įskaitant testavimo aplinkas, kodų tikrintuvus (angl. linter) ir tipų tikrintuvus. Užduotį atlikti paprastai trunka nuo 1 iki 30 minučių, atsižvelgiant į sudėtingumą. „Codex“ pažangą galite stebėti realiuoju laiku.

Kai „Codex“ užbaigia užduotį, jis patvirtina pakeitimus savo aplinkoje. „Codex“ pateikia patikrinamus savo veiksmų įrodymus cituodamas terminalo žurnalus ir testų išvestis, leidžiančius atsekti kiekvieną žingsnį, atliktą vykdant užduotį. Tada galite peržiūrėti rezultatus, paprašyti tolesnių pataisymų, atidaryti „GitHub“ išsiuntimo užklausą arba tiesiogiai integruoti pakeitimus į savo vietinę aplinką. Produkte galite sukonfigūruoti „Codex“ aplinką taip, kad ji kuo labiau atitiktų jūsų realią kūrimo aplinką.

„Codex“ gali būti valdomas AGENTS.md failais, patalpintais jūsų saugykloje. Tai tekstiniai failai, panašūs į README.md, kuriuose galite informuoti „Codex“, kaip naršyti jūsų kodų bazėje, kokias komandas vykdyti testavimui ir kaip geriausiai laikytis jūsų projekto standartinės praktikos. Kaip ir žmonės programuotojai, „Codex“ agentai geriausiai veikia, kai jiems suteikiama sukonfigūruota kūrimo aplinka, patikima testavimo sąranka ir aiški dokumentacija. 

Atliekant programavimo vertinimus ir vidinius lyginamuosius testus, „codex-1“ rodo stiprų našumą net ir be AGENTS.md failų ar pasirinktinių karkasų (angl. scaffolding) naudojimo.

23 „SWE-Bench Verified“ pavyzdžiai, kurių nebuvo galima paleisti mūsų vidaus infrastruktūroje, buvo pašalinti. „codex-1“ buvo testuojamas esant maksimaliam 192 tūkst. prieigos raktų konteksto ilgiui ir vidutinėms „samprotavimo pastangoms“ – tai nustatymas, kuris šiandien bus prieinamas produkte. Daugiau informacijos apie „o3“ vertinimus rasite čia.

Mūsų vidinis SWE užduočių lyginamasis standartas yra kuruojamas realių vidinių SWE užduočių rinkinys „OpenAI“ įmonėje.

Saugių ir patikimų agentų kūrimas

„Codex“ išleidžiame kaip tyrimų peržiūros versiją, laikydamiesi mūsų iteratyvaus diegimo strategijos. Kurdami „Codex“ pirmenybę teikėme saugumui ir skaidrumui, kad naudotojai galėtų patikrinti jo išvestis – tai apsaugos priemonė, kuri tampa vis svarbesnė, kai DI modeliai savarankiškai tvarko sudėtingesnes programavimo užduotis ir keičiasi saugos aspektai. Naudotojai gali patikrinti „Codex“ darbą per citatas, terminalo žurnalus ir testų rezultatus. Kai „Codex“ agentas nėra tikras arba susiduria su testų nesėkmėmis, jis aiškiai praneša apie šias problemas, leisdamas naudotojams priimti pagrįstus sprendimus, kaip elgtis toliau. Vis dar būtina, kad naudotojai rankiniu būdu peržiūrėtų ir patvirtintų visą agento sugeneruotą kodą prieš integruodami ir vykdydami.

Code-review screenshot with a test-file overlay verifying quoted filenames, plus summary and passing tests on a blue backdrop.
Code-review screenshot with a black terminal overlay showing one passing test for quoted filenames; summary and diff of the ‘Fix /diff error with special characters’ change visible on a blue-pastel background.

Suderinimas su žmogaus pageidavimais

Vienas pagrindinių tikslų mokant „codex-1“ buvo glaudžiai suderinti išvestis su žmonių programavimo pageidavimais ir standartais. Palyginti su „OpenAI o3“, „codex-1“ nuosekliai kuria švaresnes pataisas, paruoštas tiesioginei žmogaus peržiūrai ir integravimui į standartines darbo eigas.

Please fix the following issue in the astropy/astropy repository. Please resolve the issue in the problem below by editing and testing code files in your current code execution session. The repository is cloned in the /testbed folder. You must fully solve the problem for your answer to be considered correct. Problem statement:Modeling's `separability_matrix` does not compute separability correctly for nested CompoundModels Consider the following model: ```python from astropy.modeling import models as m from astropy.modeling.separable import separability_matrix cm = m.Linear1D(10) & m.Linear1D(5) ``` It's separability matrix as you might expect is a diagonal: ```python >>> separability_matrix(cm) array([[ True, False], [False, True]]) ``` If I make the model more complex: ```python >>> separability_matrix(m.Pix2Sky_TAN() & m.Linear1D(10) & m.Linear1D(5)) array([[ True, True, False, False], [ True, True, False, False], [False, False, True, False], [False, False, False, True]]) ``` The output matrix is again, as expected, the outputs and inputs to the linear models are separable and independent of each other. If however, I nest these compound models: ```python >>> separability_matrix(m.Pix2Sky_TAN() & cm) array([[ True, True, False, False], [ True, True, False, False], [False, False, True, True], [False, False, True, True]]) ``` Suddenly the inputs and outputs are no longer separable? This feels like a bug to me, but I might be missing something?
Codex
OpenAI o3

Piktnaudžiavimo prevencija

Apsauga nuo piktavališko DI pagrįstos programinės įrangos inžinerijos taikymo, pavyzdžiui, kenkėjiškų programų kūrimo, tampa vis svarbesnė. Tuo pat metu svarbu, kad apsaugos priemonės nepagrįstai netrukdytų teisėtiems ir naudingiems taikymams, kuriuose gali būti naudojami metodai, kartais taip pat naudojami kenkėjiškų programų kūrimui, pavyzdžiui, žemo lygio branduolio inžinerijai.

Siekiant subalansuoti saugą ir naudingumą, „Codex“ buvo mokomas atpažinti ir tiksliai atmesti prašymus, skirtus kenkėjiškos programinės įrangos kūrimui, kartu aiškiai atskiriant ir palaikant teisėtas užduotis. Taip pat patobulinome savo politikos sistemas ir įtraukėme griežtus saugos vertinimus, kad veiksmingai sustiprintume šias ribas. Paskelbėme „o3“ sistemos kortelės priedą, kad atspindėtume šiuos vertinimus.

Saugus vykdymas

„Codex“ agentas veikia visiškai saugioje, izoliuotoje programinėje vykdymo aplinkoje debesyje. Vykdant užduotį interneto prieiga yra išjungta, apribojant agento sąveiką tik kodu, aiškiai pateiktu per „GitHub“ saugyklas, ir iš anksto įdiegtomis priklausomybėmis, kurias naudotojas sukonfigūravo per sąrankos scenarijų. Agentas negali pasiekti išorinių interneto svetainių, API ar kitų paslaugų.

Ankstyvieji naudojimo atvejai

„OpenAI“ techninės komandos pradėjo naudoti „Codex“ savo kasdieniame įrankių rinkinyje. „OpenAI“ inžinieriai dažniausiai jį naudoja pasikartojančioms, tinkamai apibrėžtoms užduotims, tokioms kaip pertvarkymas, pervadinimas ir testų rašymas, kurios kitu atveju blaškytų dėmesį. Jis taip pat naudingas kuriant naujų funkcijų griaučius, sujungiant komponentus, taisant riktus ir rengiant dokumentaciją. Komandos formuoja naujus įpročius: rūšiuoja per budėjimą kylančias problemas, planuoja užduotis dienos pradžioje ir perkelia foninius darbus, kad judėtų pirmyn. Mažindamas konteksto perjungimą ir iškeldamas pamirštus darbus, „Codex“ padeda inžinieriams greičiau pristatyti produktus ir susitelkti į tai, kas svarbiausia.

Ruošdamiesi išleidimui, taip pat dirbome su nedidele išorinių testuotojų grupe, kad geriau suprastume, kaip „Codex“ veikia įvairiose kodų bazėse, kūrimo procesuose ir komandose.

  • Cisco(atsidaro naujame lange) tiria, kaip „Codex“ gali padėti jų inžinerijos komandoms greičiau įgyvendinti ambicingas idėjas. Būdama ankstyvoji projektavimo partnerė, „Cisco“ padeda formuoti „Codex“ ateitį, vertindama jį realiais naudojimo atvejais visame savo produktų portfelyje ir teikdama atsiliepimus „OpenAI“ komandai.
  • Temporal(atsidaro naujame lange) naudoja „Codex“, kad paspartintų funkcijų kūrimą, šalintų problemas, rašytų ir vykdytų testus bei pertvarkytų dideles kodų bazes. Tai taip pat padeda išlaikyti dėmesį, vykdant sudėtingas užduotis fone – leidžiant inžinieriams nenutrūkstamai dirbti ir spartinant iteracijas.
  • Superhuman(atsidaro naujame lange) naudoja „Codex“, kad pagreitintų mažas, bet pasikartojančias užduotis, pavyzdžiui, testų aprėpties gerinimą ir integravimo nesėkmių taisymą. Tai taip pat padeda greičiau pristatyti produktus, leidžiant produktų vadovams prisidėti prie nedidelių kodo pakeitimų, o inžinierių įtraukiant tik kodo peržiūrai.
  • Kodiak(atsidaro naujame lange) naudoja „Codex“, kad padėtų rašyti derinimo įrankius, gerinti testų aprėptį ir pertvarkyti kodą – spartinant „Kodiak Driver“, jų autonominio vairavimo technologijos, kūrimą. „Codex“ taip pat tapo vertinga informacine priemone – jis padeda inžinieriams suprasti jiems nepažįstamas sistemos dalis, pateikdamas susijusį kontekstą ir ankstesnių pakeitimų informaciją.

Remdamiesi ankstyvųjų testuotojų patirtimi, rekomenduojame priskirti tinkamai apibrėžtas užduotis keliems agentams vienu metu ir eksperimentuoti su įvairių tipų užduotimis bei raginimais, kad efektyviai ištirtumėte modelio galimybes.

„Codex CLI“ atnaujinimai

Praėjusį mėnesį pristatėme „Codex CLI“ – lengvą atvirojo kodo programavimo agentą, veikiantį jūsų terminale. Jis integruoja tokius modelius kaip „o3“ ir „o4-mini“ į jūsų vietinę darbo eigą, leisdamas lengvai dirbti poroje su jais ir greičiau atlikti užduotis. 

Šiandien taip pat išleidžiame mažesnę „codex-1“ versiją – „o4-mini“, sukurtą specialiai naudoti „Codex CLI“. Šis naujas modelis palaiko spartesnes darbo eigas CLI sąsajoje ir yra optimizuotas mažos delsos kodo klausimams ir atsakymams bei redagavimui, išlaikant tuos pačius privalumus instrukcijų laikymosi ir stiliaus srityse. Dabar jį galima naudoti kaip numatytąjį modelį „Codex CLI“ ir API sąsajoje kaip „codex-mini-latest“. Pagrindinė momentinė nuotrauka bus nuolat atnaujinama toliau tobulinant Codex-mini“ modelį.

Taip pat gerokai palengviname jūsų programuotojo paskyros susiejimą su „Codex CLI“. Užuot rankiniu būdu generavę ir konfigūravę API prieigos raktą, dabar galite prisijungti naudodami savo „ChatGPT“ paskyrą ir pasirinkti norimą naudoti API organizaciją. Automatiškai sugeneruosime ir sukonfigūruosime API raktą už jus. „Plus“ ir „Pro“ naudotojai, prisijungę prie „Codex CLI“ su „ChatGPT“, vėliau šiandien taip pat galės pradėti naudoti atitinkamai 5 USD ir 50 USD vertės nemokamus API kreditus per ateinančias 30 dienų.

„Codex“ prieinamumas, kainos ir apribojimai

Nuo šiandien pradedame diegti „Codex“ aplinką „ChatGPT Pro“, „Enterprise“ ir „Business“ naudotojams visame pasaulyje, o netrukus bus palaikomi ir „Plus“ bei „Edu“ naudotojai. Ateinančiomis savaitėmis naudotojai turės plačią prieigą be papildomo mokesčio, kad galėtų ištirti, ką gali „Codex“, o vėliau įvesime apribotos spartos prieigą ir lanksčias kainodaros parinktis, leidžiančias įsigyti papildomų naudojimo paketų pagal poreikį. Netrukus planuojame išplėsti prieigą „Plus“ ir „Edu“ naudotojams.

Programuotojams, kuriantiems su „codex-mini-latest“, modelis prieinamas „Responses API“ sąsajoje ir kainuoja 1,50 USD už 1 mln. įvesties prieigos raktų ir 6 USD už 1 mln. išvesties prieigos raktų, taikant 75 proc. raginimų talpyklos nuolaidą.

„Codex“ kūrimas vis dar ankstyvoje stadijoje. Kaip tyrimų peržiūrai, jam šiuo metu trūksta tokių funkcijų kaip vaizdo įvestys išorinės sąsajos darbams ir galimybės koreguoti agento kursą jam dirbant. Be to, delegavimas nuotoliniam agentui trunka ilgiau nei interaktyvus redagavimas, todėl prie to gali tekti priprasti. Laikui bėgant sąveika su „Codex“ agentais vis labiau primins asinchroninį bendradarbiavimą su kolegomis. Tobulėjant modelio galimybėms, tikimės, kad agentai tvarkys sudėtingesnes užduotis ilgesniais laikotarpiais.

Kas toliau?

Įsivaizduojame ateitį, kurioje programuotojai valdo darbą, kurį nori atlikti patys, o visa kita deleguoja agentams – taip dirbama greičiau ir produktyviau pasitelkus DI. Siekdami tai įgyvendinti, kuriame „Codex“ įrankių rinkinį, palaikantį tiek bendradarbiavimą realiuoju laiku, tiek asinchroninį delegavimą. 

Darbas poroje su DI įrankiais, tokiais kaip „Codex CLI“ ir kiti, greitai tapo norma, padedančia programuotojams greičiau rašyti kodus. Tačiau tikime, kad „Codex“ pristatyta asinchroninė, daugelio agentų darbo eiga „ChatGPT“ sistemoje taps de facto būdu, kuriuo inžinieriai kuria aukštos kokybės kodą.

Galiausiai matome šių dviejų sąveikos būdų – porinio darbo realiuoju laiku ir užduočių delegavimo – konvergenciją. Programuotojai bendradarbiaus su DI agentais savo IDE ir kasdieniuose įrankiuose, kad užduotų klausimus, gautų pasiūlymus ir perduotų ilgesnes užduotis, viską atlikdami vieningoje darbo eigoje.

Žvelgiant į ateitį, planuojame pristatyti interaktyvesnes ir lankstesnes agentų darbo eigas. Programuotojai netrukus galės teikti gaires vykdydami užduotį, bendradarbiauti dėl įgyvendinimo strategijų ir gauti iniciatyvius atnaujinimus apie pažangą. Taip pat numatome gilesnes integracijas įrankiuose, kuriuos jau naudojate: šiandien „Codex“ jungiasi su „GitHub“, o netrukus galėsite priskirti užduotis iš „Codex CLI“, „ChatGPT Desktop“ ar net tokių įrankių kaip problemų stebėjimo sistema ar CI sistema.

Programinės įrangos inžinerija yra viena iš pirmųjų sričių, patyrusių reikšmingą našumo padidėjimą dėl DI, kuris atvėrė naujas galimybes pavieniams asmenims ir mažoms komandoms. Nors šią pažangą vertiname optimistiškai, taip pat bendradarbiaujame su partneriais, kad geriau suprastume plataus agentų pritaikymo poveikį programuotojų darbo eigoms ir įgūdžių ugdymui įvairiose žmonių grupėse, lygiuose ir geografinėse vietovėse. 

Tai tik pradžia – nekantraujame pamatyti, ką sukursite naudodamiesi „Codex“.

Tiesioginės transliacijos pakartojimas

Priedas

Sistemos pranešimas

Dalijamės „codex-1“ sistemos pranešimu, kad padėtume programuotojams suprasti numatytąją modelio elgseną ir pritaikyti „Codex“ efektyviam darbui pasirinktinėse darbo eigose. Pavyzdžiui, „codex-1“ sistemos pranešimas skatina „Codex“ vykdyti visus AGENTS.md faile nurodytus testus, tačiau jei turite mažai laiko, galite paprašyti „Codex“ praleisti šiuos testus.

Paprastas tekstas

1
# Instructions
2
- The user will provide a task.
3
- The task involves working with Git repositories in your current working directory.
4
- Wait for all terminal commands to be completed (or terminate them) before finishing.
5

6
# Git instructions
7
If completing the user's task requires writing or modifying files:
8
- Do not create new branches.
9
- Use git to commit your changes.
10
- If pre-commit fails, fix issues and retry.
11
- Check git status to confirm your commit. You must leave your worktree in a clean state.
12
- Only committed code will be evaluated.
13
- Do not modify or amend existing commits.
14

15
# AGENTS.md spec
16
- Containers often contain AGENTS.md files. These files can appear anywhere in the container's filesystem. Typical locations include `/`, `~`, and in various places inside of Git repos.
17
- These files are a way for humans to give you (the agent) instructions or tips for working within the container.
18
- Some examples might be: coding conventions, info about how code is organized, or instructions for how to run or test code.
19
- AGENTS.md files may provide instructions about PR messages (messages attached to a GitHub Pull Request produced by the agent, describing the PR). These instructions should be respected.
20
- Instructions in AGENTS.md files:
21
- The scope of an AGENTS.md file is the entire directory tree rooted at the folder that contains it.
22
- For every file you touch in the final patch, you must obey instructions in any AGENTS.md file whose scope includes that file.
23
- Instructions about code style, structure, naming, etc. apply only to code within the AGENTS.md file's scope, unless the file states otherwise.
24
- More-deeply-nested AGENTS.md files take precedence in the case of conflicting instructions.
25
- Direct system/developer/user instructions (as part of a prompt) take precedence over AGENTS.md instructions.
26
- AGENTS.md files need not live only in Git repos. For example, you may find one in your home directory.
27
- If the AGENTS.md includes programmatic checks to verify your work, you MUST run all of them and make a best effort to validate that the checks pass AFTER all code changes have been made.
28
- This applies even for changes that appear simple, i.e. documentation. You still must run all of the programmatic checks.
29

30
# Citations instructions
31
- If you browsed files or used terminal commands, you must add citations to the final response (not the body of the PR message) where relevant. Citations reference file paths and terminal outputs with the following formats:
32
1) `【F:<file_path>†L<line_start>(-L<line_end>)?】`
33
- File path citations must start with `F:`. `file_path` is the exact file path of the file relative to the root of the repository that contains the relevant text.
34
- `line_start` is the 1-indexed start line number of the relevant output within that file.
35
2) `【<chunk_id>†L<line_start>(-L<line_end>)?】`
36
- Where `chunk_id` is the chunk_id of the terminal output, `line_start` and `line_end` are the 1-indexed start and end line numbers of the relevant output within that chunk.
37
- Line ends are optional, and if not provided, line end is the same as line start, so only 1 line is cited.
38
- Ensure that the line numbers are correct, and that the cited file paths or terminal outputs are directly relevant to the word or clause before the citation.
39
- Do not cite completely empty lines inside the chunk, only cite lines that have content.
40
- Only cite from file paths and terminal outputs, DO NOT cite from previous pr diffs and comments, nor cite git hashes as chunk ids.
41
- Use file path citations that reference any code changes, documentation or files, and use terminal citations only for relevant terminal output.
42
- Prefer file citations over terminal citations unless the terminal output is directly relevant to the clauses before the citation, i.e. clauses on test results.
43
- For PR creation tasks, use file citations when referring to code changes in the summary section of your final response, and terminal citations in the testing section.
44
- For question-answering tasks, you should only use terminal citations if you need to programmatically verify an answer (i.e. counting lines of code). Otherwise, use file citations.

Autorius

OpenAI