Codex orchestration-এর জন্য একটি open-source spec: Symphony
Alex Kotliarskyi, Victor Zhu, এবং Zach Brock-এর লেখা
ছয় মাস আগে, একটি অভ্যন্তরীণ productivity tool-এ কাজ করার সময়, আমাদের টিম একটি বিতর্কিত (তখনকার হিসেবে) সিদ্ধান্ত নিয়েছিল: আমরা আমাদের repo মানব-লিখিত কোনো কোড ছাড়া তৈরি করব। আমাদের project repository-র প্রতিটি লাইন Codex দ্বারা তৈরি হতে হবে.
এটি কার্যকর করতে, আমরা একেবারে ভিত্তি থেকে আমাদের engineering workflow নতুন করে ডিজাইন করেছি। আমরা একটি agent-friendly repository তৈরি করেছি, automated test এবং guardrail-এ বড় বিনিয়োগ করেছি, এবং Codex-কে পূর্ণাঙ্গ একজন teammate হিসেবে বিবেচনা করেছি। সেই যাত্রা আমরা আগের harness engineering নিয়ে ব্লগ পোস্টে নথিভুক্ত করেছি.
এবং এটি কাজ করেছে, কিন্তু তারপর আমরা পরের bottleneck-এ পড়লাম: context switching.
এই নতুন সমস্যার সমাধানে, আমরা Symphony নামে একটি system তৈরি করেছি। Symphony(একটি নতুন উইন্ডোতে খোলে) হলো একটি এজেন্ট orchestrator, যা Linear-এর মতো project-management board-কে coding agent-দের জন্য একটি control plane-এ পরিণত করে। প্রতিটি খোলা কাজ একটি এজেন্ট পায়, এজেন্টরা অবিরাম চলে, এবং মানুষ ফলাফল পর্যালোচনা করে.
এই পোস্টে ব্যাখ্যা করা হয়েছে আমরা কীভাবে Symphony তৈরি করেছি—যার ফলে কিছু টিমে merged pull request 500% বেড়েছে—এবং কীভাবে এটি ব্যবহার করে আপনি আপনার নিজস্ব issue tracker-কে সবসময় সক্রিয় এজেন্ট orchestrator-এ পরিণত করতে পারেন.
Interactive coding agent-দের সীমা
ব্যবহার করা সহজতর হলেও, coding agent—ওয়েব অ্যাপ বা CLI যেখান থেকেই ব্যবহার করা হোক—এখনও interactive tool.
OpenAI-এ agentic কাজের পরিসর বাড়ার সঙ্গে সঙ্গে, আমরা নতুন ধরনের একটি চাপ খুঁজে পাই। প্রতিটি engineer কয়েকটি Codex session খুলত, কাজ দিত, output review করত, এজেন্টকে steer করত, এবং আবার একই কাজ করত। বাস্তবে, context switching কষ্টকর হয়ে ওঠার আগে অধিকাংশ মানুষ একসময়ে স্বাচ্ছন্দ্যে তিন থেকে পাঁচটি session পরিচালনা করতে পারত। এর বেশি হলে productivity কমে যেত। কোন session কী করছে তা আমরা ভুলে যেতাম, এজেন্টদের আবার পথে ফেরাতে terminal থেকে terminal-এ যেতাম, এবং মাঝপথে আটকে যাওয়া দীর্ঘমেয়াদি কাজ debug করতাম.
এজেন্টরা দ্রুত ছিল, কিন্তু আমাদের system bottleneck ছিল: মানুষের মনোযোগ। আমরা কার্যত অত্যন্ত সক্ষম junior engineer-দের একটি দল তৈরি করেছিলাম, তারপর আমাদের মানব engineer-দের তাদের micromanage করার দায়িত্ব দিয়েছিলাম। এটি স্কেল করত না.
দৃষ্টিভঙ্গির পরিবর্তন
আমরা বুঝলাম আমরা ভুল জিনিস optimize করছি। আমরা আমাদের system-কে coding session এবং merged PRs-কে কেন্দ্র করে সাজাচ্ছিলাম, অথচ PRs ও session আসলে উদ্দেশ্য পূরণের মাধ্যম মাত্র। সফটওয়্যার workflow মূলত deliverable-কে ঘিরে সংগঠিত হয়: issue, task, ticket, milestone.
তাই আমরা নিজেদের জিজ্ঞেস করলাম, যদি আমরা এজেন্টদের সরাসরি supervise করা বন্ধ করি এবং তার বদলে তাদেরকে আমাদের task tracker থেকে কাজ টেনে নিতে দিই, তাহলে কী হবে.
এই ধারণাই Symphony-তে রূপ নেয়, একটি লিখিত spec যা agentic কাজ orchestrate করার জন্য supervisor হিসেবে কাজ করে.
আমাদের issue tracker-কে এজেন্ট orchestrator-এ রূপান্তর করা
Symphony শুরু হয়েছিল একটি সহজ ধারণা দিয়ে: যেকোনো খোলা কাজ একটি এজেন্ট তুলে নেবে এবং সম্পন্ন করবে। একাধিক tab-এ Codex session পরিচালনার বদলে, আমরা আমাদের issue tracker-কেই control plane বানিয়েছি.
এই সেটআপে, প্রতিটি খোলা Linear issue একটি নির্দিষ্ট এজেন্ট ওয়ার্কস্পেসের সাথে মিলে যায়। Symphony ক্রমাগত task board পর্যবেক্ষণ করে এবং নিশ্চিত করে যে প্রতিটি সক্রিয় কাজ শেষ না হওয়া পর্যন্ত loop-এ একটি এজেন্ট চালু থাকে। কোনো এজেন্ট crash করলে বা আটকে গেলে, Symphony সেটিকে পুনরায় চালু করে। নতুন কাজ দেখা দিলে, Symphony সেটি তুলে নিয়ে কাজ সংগঠিত করা শুরু করে.
আমরা ticket status-এর ভিত্তিতে আমাদের workflow তৈরি করেছি, যেখানে task manager Linear-কে একটি state machine হিসেবে ব্যবহার করা হয়েছে.
বাস্তবে, Symphony কাজকে session এবং pull request—দুটো থেকেই আলাদা করে। কিছু issue বিভিন্ন repo জুড়ে একাধিক PR তৈরি করে; অন্যগুলো পুরোপুরি investigation বা analysis, যা কখনও codebase-এ স্পর্শই করে না.
কাজকে এভাবে বিমূর্ত করা হলে, ticket অনেক বড় কাজের একককে প্রতিনিধিত্ব করতে পারে.
আমরা নিয়মিতভাবে Symphony ব্যবহার করি জটিল feature এবং infrastructure migration orchestrate করতে। উদাহরণস্বরূপ, আমরা এমন একটি task দাখিল করতে পারি যেখানে এজেন্টকে codebase, Slack, বা Notion বিশ্লেষণ করে একটি implementation plan তৈরি করতে বলা হয়। পরিকল্পনায় আমরা সন্তুষ্ট হলে, এজেন্ট কাজের একটি tree তৈরি করে, কাজকে ধাপে ভাগ করে এবং কাজগুলোর মধ্যে dependency নির্ধারণ করে.
এজেন্টরা শুধু সেই কাজগুলোই শুরু করে যেগুলো blocked নয়, তাই এই DAG-এর (execution step-এর একটি sequence) জন্য কাজ স্বাভাবিকভাবে ও সর্বোত্তমভাবে সমান্তরালে এগোয়। নিচের উদাহরণে, আমরা React upgrade-কে Vite-এ migration-এর ওপর blocked হিসেবে চিহ্নিত করেছি। প্রত্যাশামতো, Vite-এ migration সম্পূর্ণ হওয়ার পরেই এজেন্টরা React upgrade শুরু করেছে.এজেন্টরা নিজেরাও কাজ তৈরি করতে পারে।
implementation বা review চলাকালে, তারা প্রায়ই এমন উন্নতির সুযোগ খেয়াল করে যা বর্তমান কাজের পরিধির বাইরে: performance issue, refactoring opportunity, বা আরও ভালো architecture। এমন হলে, তারা সহজেই একটি নতুন issue দাখিল করে, যা আমরা পরে মূল্যায়ন ও schedule করতে পারি—এমন অনেক follow-up task-ও পরে এজেন্টরা তুলে নেয়। আমরা এই প্রক্রিয়াটি তদারকি করলেও, এজেন্টরা সংগঠিত থাকে এবং কাজ এগিয়ে নিয়ে যায়.
এভাবে কাজ করার ফলে অস্পষ্ট কাজ শুরু করার cognitive cost নাটকীয়ভাবে কমে যায়। এজেন্ট কিছু ভুল করলেও, সেটিও মূল্যবান তথ্য, আর আমাদের জন্য এর খরচ প্রায় শূন্য। আমরা খুব কম খরচে এজেন্টের জন্য prototype ও explore করার ticket দাখিল করতে পারি, এবং যে exploration পছন্দ না হয় তা ফেলে দিতে পারি.
কারণ orchestrator devbox-এ চলে এবং কখনও ঘুমায় না, আমরা যেকোনো জায়গা থেকে task যোগ করতে পারি এবং জানি যে একটি এজেন্ট সেটি তুলে নেবে। উদাহরণ হিসেবে, আমাদের টিমের একজন engineer দুর্বল wifi-সহ একটি আরামদায়ক cabin-এ বসে ফোনের Linear app থেকেই তিনটি গুরুত্বপূর্ণ পরিবর্তন করেছিলেন.
এভাবে কাজ করার ফলে অনুসন্ধান বেড়েছে
Symphony-এর সঙ্গে কাজ করার প্রভাব পর্যবেক্ষণ করতে গিয়ে সবচেয়ে স্পষ্ট পরিবর্তন ছিল output। OpenAI-এর কিছু টিমে, প্রথম তিন সপ্তাহে landed PRs-এর সংখ্যা 6X বেড়েছে। OpenAI-এর বাইরে, Symphony প্রকাশের পর Linear-এর প্রতিষ্ঠাতা Karri Saarinen তৈরি হওয়া ওয়ার্কস্পেসে একটি spike(একটি নতুন উইন্ডোতে খোলে) উল্লেখ করেছেন। তবে আরও গভীর পরিবর্তন হলো টিমগুলো কাজকে কীভাবে ভাবছে.
যখন আমাদের engineer-রা আর Codex session supervise করতে সময় ব্যয় করে না, তখন code change-এর অর্থনীতি পুরোপুরি বদলে যায়। প্রতিটি পরিবর্তনের অনুমিত খরচ কমে যায়, কারণ implementation পরিচালনায় আমরা আর মানব প্রচেষ্টা বিনিয়োগ করছি না.
এতে আমাদের আচরণ বদলেছে। Symphony-তে speculative task চালু করা এখন খুবই সহজ হয়ে গেছে। একটি idea চেষ্টা করুন, refactor explore করুন, hypothesis test করুন, এবং শুধু সেই ফলাফলগুলো রাখুন যেগুলো আশাব্যঞ্জক দেখায়.
এটি আরও বিস্তৃত করে কারা কাজ শুরু করতে পারে। আমাদের product manager এবং designer এখন সরাসরি Symphony-তে feature request দাখিল করতে পারেন। তাদের repo check out করতে বা Codex session manage করতে হয় না। তারা feature বর্ণনা করেন এবং একটি review packet ফিরে পান, যেখানে বাস্তব product-এর ভেতরে feature কাজ করছে এমন একটি video walkthrough-ও থাকে.
Symphony বড় monorepo-তেও (যেমন OpenAI-তে আমাদের যেটি আছে) বিশেষভাবে কার্যকর, যেখানে একটি PR merge করার শেষ ধাপটি ধীর এবং ঝুঁকিপূর্ণ হতে পারে। সিস্টেমটি CI পর্যবেক্ষণ করে, প্রয়োজন হলে rebase করে, conflict সমাধান করে, flaky checks পুনরায় চালায় এবং সামগ্রিকভাবে পরিবর্তনগুলোকে pipeline-এর মাধ্যমে এগিয়ে নিয়ে যায়। একটি ticket যখন Merging পর্যায়ে পৌঁছায়, তখন আমাদের যথেষ্ট আত্মবিশ্বাস থাকে যে পরিবর্তনটি মানুষের অতিরিক্ত নজরদারি ছাড়াই মূল branch-এ সফলভাবে যুক্ত হবে।
Symphony ইমপ্লিমেন্ট করার পর, আমরা এজেন্টদের কাছে আরও বেশি কাজ অর্পণ করি এবং আরও কঠিন, বেশি অনুসন্ধানধর্মী কাজের ওপর মনোযোগ দিই.
অগ্রগতির সঙ্গে আসে নতুন, ভিন্ন সমস্যা
এই স্তরে কাজ করার সঙ্গে কিছু tradeoff আসে। যখন আমরা interactiveভাবে এজেন্ট steer করা থেকে ticket স্তরে তাদের কাজ দেওয়ার দিকে গেলাম, তখন প্রয়োজনে মাঝপথে তাদের ক্রমাগত ধাক্কা দেওয়া এবং course-correct করার ক্ষমতা হারালাম। কখনও কখনও এজেন্ট এমন কিছু তৈরি করেছে যা পুরোপুরি লক্ষ্যভ্রষ্ট ছিল। সেটাও উপকারী ছিল—সেসব ব্যর্থতা system-এর ফাঁকগুলো প্রকাশ করেছে এবং এটিকে আরও robust করতে আমাদের সাহায্য করেছে.
ফলাফল manually patch করার বদলে, আমরা guardrail এবং skill যোগ করেছি যাতে এজেন্টরা পরের বার সফল হতে পারে। সময়ের সঙ্গে এটি আমাদের harness-এ নতুন capability যোগ করতে নিয়ে গেছে, যেমন end-to-end test চালানো, Chrome DevTools-এর মাধ্যমে app চালানো, এবং QA smoke test পরিচালনা করা। আমরা আমাদের documentation উল্লেখযোগ্যভাবে উন্নত করেছি এবং ভালো ফলাফল দেখতে কেমন তা আরও স্পষ্ট করেছি.
সব কাজ Symphony-শৈলীর workflow-এর সঙ্গে মানানসই নয়। কিছু সমস্যা এখনও engineer-দের interactive Codex session-এর সঙ্গে সরাসরি কাজ করা প্রয়োজন, বিশেষ করে অস্পষ্ট সমস্যা বা এমন কাজ যেখানে শক্ত judgment ও expertise দরকার। বাস্তবে, সাধারণত এগুলোই আমাদের engineer-দের সময় দেওয়ার জন্য সবচেয়ে আকর্ষণীয় ও উপভোগ্য কাজ.
পার্থক্য হলো Symphony routine implementation কাজের বড় অংশ সামলাতে পারে। এতে engineer-রা ছোট ছোট কাজের মধ্যে বারবার context-switching করার বদলে এক সময়ে একটি কঠিন সমস্যায় মনোযোগ দিতে পারে.
আমরা আরও শিখেছি যে এজেন্টদের state machine-এর অনমনীয় নোড হিসেবে বিবেচনা করা ভালো কাজ করে না। মডেল আরও বুদ্ধিমান হয় এবং আমরা তাদের যে বাক্সে ঢোকাতে চাই তার চেয়ে বড় সমস্যা সমাধান করতে পারে। উদাহরণস্বরূপ, প্রাথমিক সংস্করণগুলোতে সব GitHub integration বাইরের harness-এর অংশ ছিল—যেমন, প্রাথমিক সংস্করণগুলোতে ধরা হতো Codex শুধু code change করবে, আর বাকি প্রক্রিয়া (change submit করা, test চালানো) কোডে নির্দিষ্ট করা থাকত। agentic কাজের আমাদের প্রাথমিক সংস্করণগুলোতে Codex-কে শুধু task ইমপ্লিমেন্ট করতে বলা হতো। এই পদ্ধতি খুব সীমাবদ্ধ প্রমাণিত হয়েছে। Codex একাধিক PR তৈরি করতে, review feedback পড়তে এবং সেটি সমাধান করতেও পুরোপুরি সক্ষম। তাই আমরা তাকে tool দিয়েছি—gh CLI, CI log পড়ার skill, ইত্যাদি—and now we can ask Codex to do more, like closing old PRs or pulling reports on completed vs. abandoned work. এই ধরনের কাজ প্রাথমিক feature implementation-এর সীমার অনেক বাইরে ছিল.
তাই শেষ পর্যন্ত আমরা এজেন্টদের কঠোর transition-এর বদলে objective দেওয়ার দিকে এগিয়েছি, অনেকটা যেমন একজন ভালো manager তার টিমের direct report-কে একটি goal দেয়। মডেলের শক্তি আসে তাদের reasoning করার ক্ষমতা থেকে, তাই তাদের tool ও context দিন এবং কাজ করতে দিন.
Symphony ব্যবহার করে Symphony তৈরি করা
আপনি যখন Symphony রিপোজিটরি খুলবেন, প্রথমেই লক্ষ্য করবেন যে প্রযুক্তিগতভাবে Symphony আসলে শুধু একটি SPEC.md file—সমস্যা এবং উদ্দেশ্যপ্রণোদিত সমাধানের একটি সংজ্ঞা। জটিল supervision system তৈরি করার বদলে, আমরা সমস্যা এবং উদ্দেশ্যপ্রণোদিত সমাধানগুলো সংজ্ঞায়িত করেছি, যাতে এজেন্টদের উচ্চ-স্তরের steering দেওয়া যায়.
রেফারেন্স ইমপ্লিমেন্টেশনটি Elixir-এ লেখা—কারণ কোড কার্যত ফ্রি হয়ে গেলে, আপনি শেষ পর্যন্ত ভাষা বেছে নিতে পারেন তাদের শক্তির ভিত্তিতে, যেমন Elixir-এর concurrency—তবে মূল ধারণাটি একটি সহজ Markdown ডকুমেন্টেই প্রকাশ করা যায়। আমরা আপনাকে উৎসাহিত করি আপনার পছন্দের coding agent-কে spec-এর দিকে নির্দেশ করতে এবং সেটিকে নিজের সংস্করণ ইমপ্লিমেন্ট করতে বলতে.
Symphony-এর প্রথম সংস্করণটি ছিল শুধু tmux-এ চলা একটি Codex session, যা Linear poll করত এবং নতুন কাজের জন্য sub-agent চালু করত। এটি কাজ করত, কিন্তু খুব বেশি নির্ভরযোগ্য ছিল না। দ্বিতীয় সংস্করণটি ছিল আমাদের প্রধান project repository-এর ভেতরে, যা এজেন্টকে মাথায় রেখে তৈরি করা হয়েছিল। আমরা আগে থেকেই agent harness তৈরি করেছিলাম যাতে এজেন্টরা এই repo-তে উচ্চমানের কাজ করার জন্য প্রয়োজনীয় দক্ষতা ও context পায়, তাই Symphony শুধু সবকিছু একসাথে যুক্ত করে.
মৌলিক কার্যকারিতা তৈরি হয়ে গেলে, আমরা Symphony ব্যবহার করে Symphony তৈরি করেছি.
যখন আমরা অভ্যন্তরীণভাবে system-টি task manage করা এবং তার proof-of-work video সংযুক্ত করা ডেমো করলাম, প্রতিক্রিয়া ছিল অত্যন্ত ইতিবাচক: আমাদের Symphony project channel বড় হলো, এবং প্রতিষ্ঠানের বিভিন্ন টিম এটি স্বতঃস্ফূর্তভাবে ব্যবহার শুরু করল। OpenAI-এ বাইরে launch করার আগে অভ্যন্তরীণ product market fit একটি পূর্বশর্ত। OpenAI-এ আমরা যে ব্যবহার দেখেছি, তার ভিত্তিতে স্পষ্ট হয়ে যায় যে কোম্পানির সীমানার বাইরেও Symphony ভাগ করে নেওয়া উচিত.
তাই আমরা ধারণাটিকে আলাদা একটি SPEC.md-এ বের করে আনলাম এবং Codex-কে এটি ইমপ্লিমেন্ট করতে বললাম। রেফারেন্স ইমপ্লিমেন্টেশনের জন্য আমরা Elixir বেছে নিয়েছিলাম, তুলনামূলকভাবে niche একটি ভাষা, যাতে concurrent process orchestrate ও supervise করার জন্য চমৎকার primitives আছে। Codex একবারেই Elixir ইমপ্লিমেন্টেশন তৈরি করে, এবং সেখান থেকে আমরা spec ও implementation—দুটোর ওপরই iteration চালিয়ে যাই। spec-টিকে আরও পরিশীলিত করতে, আমরা Codex-কে আরও কয়েকটি ভাষায়—TypeScript, Go, Rust, Java, Python—এটি ইমপ্লিমেন্ট করতে বলেছিলাম এবং ফলাফল ব্যবহার করে দ্ব্যর্থতা শনাক্ত ও system সরল করেছি। এটি প্রতিটি ভাষাতেই সফল হয়েছে.
Codex তৈরি করার প্রক্রিয়ায়, আমরা অনেক incidental complexity সরিয়ে দিয়েছি, যেমন নির্দিষ্ট repository বা Linear MCP-এর ওপর নির্ভরতা। Symphony আর আমাদের অভ্যন্তরীণ রিপোজিটরি বা workflow-এর ওপর নির্ভর করে না। মূল পদ্ধতিটি সহজ হয়ে দাঁড়াল:
প্রতিটি খোলা কাজের জন্য, নিশ্চয়তা দিন যে একটি এজেন্ট তার নিজস্ব ওয়ার্কস্পেসে চলছে.
সক্রিয় কাজের সহায়তার পাশাপাশি, development workflow এখন এমন কিছু যা এজেন্টরা জানে এবং অনুসরণ করে। development workflow—একটি issue-তে কাজ করা, একটি repo check out করা, এটিকে in progress করা যাতে PM জানে এটির ওপর কাজ হচ্ছে, PR যোগ করা, এটিকে Review status-এ নেওয়া, video সংযুক্ত করা, ইত্যাদি—এখন একটি সহজ WORKFLOW.md file-এ ধারণ করা হয়েছে। এসবই ছিল এমন একটি প্রক্রিয়া যা মানুষ অনুসরণ করত, কিন্তু এটি কখনও নথিভুক্ত ছিল না। এই অন্তর্নিহিত ধাপগুলোর ওপর নির্ভর করার বদলে, আমরা এখন এটি নথিভুক্ত করি, এবং Symphony নিশ্চিত করে যে এজেন্টরা এটি অনুসরণ করে। এটি আমাদের এমন এজেন্ট তৈরি করতে দেয় যারা আমাদের পাশাপাশি কাজ করে। যদি আমরা সিদ্ধান্ত নিই যে এজেন্টদের শেষ হওয়া কাজের সঙ্গে self-reflection-ও সংযুক্ত করা উচিত, আমরা সেটি WORKFLOW.md-এ যোগ করব, এবং Symphony এজেন্টদের সেই ধাপে নিয়ে যাবে.
আমরা Codex-কে app server mode(একটি নতুন উইন্ডোতে খোলে)-এও ব্যবহার করতে পেরেছি, যা Codex-এর একটি built-in headless mode। এই mode আমাদের Codex চালাতে এবং thread শুরু করা বা turn-এ প্রতিক্রিয়া জানানোর মতো কাজের জন্য একটি ভালোভাবে documented JSON-RPC API-এর মাধ্যমে programmatically এর সঙ্গে কথা বলতে দিয়েছে। CLI বা live tmux session-এর মাধ্যমে Codex-এর সঙ্গে ইন্টারঅ্যাক্ট করার চেষ্টা করার চেয়ে এটি অনেক বেশি সুবিধাজনক এবং scalable উপায়.
Codex App Server আমাদের use case-এর জন্য একদম উপযুক্ত ছিল: আমরা Codex যে harness দেয় তার সুবিধা নিই, আবার plug in করার জন্য knob ও hook-ও পাই। উদাহরণস্বরূপ, subagent-দের কাছে Linear access token প্রকাশ করা এড়াতে, আমরা dynamic tool calls(একটি নতুন উইন্ডোতে খোলে) ব্যবহার করি, যাতে Linear-এর বিরুদ্ধে arbitrary request চালানো raw linear_graphql function expose করা যায়, MCP-এর ওপর নির্ভর না করে বা container-এ access token প্রকাশ না করেই.
এরপর কী
Symphony একটি ইচ্ছাকৃতভাবে minimal orchestration layer। Linear-এর মতো বিভিন্ন workflow tool-এর সঙ্গে pair করা হলে Codex App Server-এর শক্তি প্রদর্শনের জন্য আমরা এটি open source করছি। সে হিসেবে, Symphony-কে standalone product হিসেবে রক্ষণাবেক্ষণ করার পরিকল্পনা আমাদের নেই। এটিকে একটি reference implementation হিসেবে ভাবুন। যেমন অনেক developer তাদের repository scaffold করতে harness engineering post-এ তাদের coding agent নির্দেশ করেছিলেন, তেমনি আমরা আশা করি আপনি আপনার প্রিয় coding agent-কে Symphony spec(একটি নতুন উইন্ডোতে খোলে) এবং repository(একটি নতুন উইন্ডোতে খোলে)-এর দিকে নির্দেশ করবেন, যাতে আপনার পরিবেশের উপযোগী নিজস্ব সংস্করণ তৈরি করতে পারেন.
শক্তি আসে Codex এবং এর app server থেকে। Symphony ছিল Codex-কে Linear-এর সঙ্গে যুক্ত করার একটি উপায়, দুটি জিনিস যা আমরা আগে থেকেই ব্যবহার করতাম, কাজ ব্যবস্থাপনার সমস্যা সমাধান করতে। coding agent-রা reasoning এবং instruction অনুসরণে আরও ভালো হয়ে উঠলে, আমাদের ধারণা অন্যান্য কোম্পানিতেও bottleneck কোড লেখা থেকে সরে agentic কাজ পরিচালনার দিকে যাবে। উত্তেজনাপূর্ণ বিষয় হলো, এই coding agent system-গুলো নিয়ে পরীক্ষা-নিরীক্ষা করার বাধা এখন আশ্চর্যজনকভাবে কম। আপনি Codex দিয়ে সরাসরি জিনিস তৈরি করতে পারেন.
কমিউনিটি থেকে উল্লেখযোগ্য প্রতিক্রিয়া
রিলিজের পরের কয়েক সপ্তাহে engineering community-কে Symphony ব্যবহার করতে দেখে আমরা রোমাঞ্চিত, এবং 23 এপ্রিল পর্যন্ত এটি 15K-এর বেশি GitHub star(একটি নতুন উইন্ডোতে খোলে) অর্জন করেছে.