跳到主要內容
maxstudioNews
AI 自動化DEV Community (Claude Code)約 7 分鐘

Origin 讓 AI 代理在你的電腦上自動處理程式問題

Origin 是一個新平台,讓開發者能將軟體開發問題交給 AI 代理處理。這些代理會在開發者的本地機器上執行,自動生成程式碼、建立分支並開啟合併請求。Origin 還會記錄代理的執行狀況、成本與結果,大幅提升開發效率。

Origin 讓 AI 代理在你的電腦上自動處理程式問題
圖片來源:DEV Community (Claude Code)

現在,我們大部分的工單都以相同的方式結束。有人會將問題文字複製到 Claude Code 或 Codex 中,加上「先查看記憶筆記」,然後等待,推送一個分支,開啟一個合併請求(PR),再將連結貼回工單。實際工作由 AI 代理完成,但周邊的串接工作仍需手動操作,而且沒有記錄哪次執行產生了哪個 PR、花費多少,或為何第一次嘗試失敗。

為了解決這個問題,我們將這些串接工作整合到 Origin 平台中。現在,每個問題都有一個「使用...啟動」按鈕。它會將問題交給一個在您自己機器上、獨立工作樹中運行的 AI 代理。這次執行會被記錄在問題上,包括執行者、使用的代理和模型、耗時、成本、修改的行數,以及其 PR 是否被合併。這篇文章將展示它的外觀和功能,而另一篇文章則會說明我們是如何建構它的。

所有問題都來自五個來源,並匯集到一個列表中:GitHub 和 GitLab 的問題(雙向同步)、Jira、在 Origin 中建立的問題、來自 Dependabot 和程式碼掃描的安全警報,以及 AI 代理在儲存庫記憶筆記中留下的待辦事項(TODO)。這個列表可以依優先順序排序,並依儲存庫、來源和負責人進行篩選。

每一列會顯示來源、標籤、優先順序,以及在 AI 代理處理過後,執行的會話次數和 AI 成本。原始平台(如 GitHub 或 GitLab)仍保有其擁有的資訊,例如標題、內容、標籤、負責人和開啟/關閉狀態,Origin 會將負責人寫回。Origin 則負責管理原始平台沒有的狀態,例如「進行中」、「審核中」和「已阻擋」。

選單中列出了 Origin 可以以無頭模式啟動的 AI 代理,包括 Claude Code、Codex、Gemini CLI、Cursor、Copilot CLI 和 Antigravity。選擇其中一個後,您會看到「啟動」對話框。提示詞會根據問題和儲存庫的記憶(例如,這裡有 4,418 個字元,其中 10 行是記憶內容)自動生成,您可以在啟動前進行編輯。

在提示詞下方,會顯示按鈕執行的確切指令,因此您也可以從終端機執行相同的指令:origin issue start OR-44 --agent claude --background。如果沒有選擇「在背景執行」,Origin 會在您的程式碼庫中開啟一個終端機,其中包含 AI 代理和提示詞,您可以像往常一樣工作。

如果選擇「在背景執行」,則不會有終端機。AI 代理會在一個新的工作樹中,以無頭模式在 issue/OR-44-... 分支上運行,這樣您自己的程式碼庫就可以保持未提交的狀態。當 AI 代理乾淨地退出時,Origin 會推送該分支並開啟一個合併請求(PR)。它絕不會自動合併,也不會強制推送。

所有執行都在您的機器上進行,使用您安裝的 AI 代理命令列介面(CLI)和您的代理帳戶。Origin 的伺服器絕不會執行任何程式碼。該按鈕會開啟一個 getorigin:// 連結,其中只包含儲存庫和問題 ID;您機器上的 Origin CLI 會使用您自己的金鑰讀取問題並啟動 AI 代理。

完整的日誌會保存在 ~/.origin/agent-runs/ 中,而伺服器只會收到狀態、退出碼和最後幾行日誌。

在啟動之前,Origin 會檢查 AI 代理是否已登入,以及任務是否足夠明確。過去,未登入的 Claude Code 會在一秒內以「未登入」訊息退出,但該次執行仍會被視為已完成。現在,背景執行會先檢查 AI 代理是否已登入。如果未登入,則不會啟動任何程序,也不會建立工作樹,問題頁面會顯示執行失敗及原因。

「代理」頁面會顯示每台機器的相同檢查結果;例如,上圖中這台 MacBook 上次背景執行的 Claude 代理未能登入。第二項檢查是關於任務的明確性。一個只有一行的問題會讓 AI 代理難以判斷,而背景執行的代理也無法詢問。

因此,在背景執行之前,Claude 或 Codex 會以唯讀模式讀取儲存庫,不帶任何鉤子(hooks)也不保存會話,並回答一個問題:這個任務是否足夠明確可以執行?如果答案是肯定的,它會將一份簡短的摘要(涉及的檔案和方法)寫入提示詞中。如果否,它會提出最多三個問題。

這些問題會顯示在問題頁面上,此時不會啟動任何程序,您可以直接在頁面上或使用指令回答:origin issue answer OR-44 "Keep v1 readable; consumers must handle both"。

執行過程中也可能中途停止並提出問題。當您回答後,如果該會話仍在同一台電腦上,下次啟動會恢復相同的代理會話(claude --resume、codex exec resume),這樣代理就能保留它已讀取的內容。否則,它會根據提示詞中的每個答案重新開始。

這個問題並非由人工撰寫。Claude Code 在之前的會話中將其作為一個待辦事項(TODO)留在儲存庫的記憶中(「標頭的 tokens、成本和工具晶片仍來自舊的會話總計」),而 Origin 將其轉化為一個問題。Antigravity 代理處理了兩次。

第一次執行失敗,表格中也清楚顯示了這一點;在我們記錄執行之前,如果代理在第一個鉤子觸發前就終止,則不會留下任何痕跡。第二次執行持續了 30 分鐘,並開啟了 PR #2487,其中包含 9 個檔案中增加 846 行、刪除 70 行的變更。該問題自動轉為「審核中」狀態。

每一列都連結到捕獲的會話,因此您可以查閱該次執行的每個提示詞、工具呼叫和差異。狀態會隨著工作進度而變化:啟動或認領 → 進行中,PR 開啟 → 審核中,PR 合併 → 已關閉,PR 關閉但未合併 → 返回進行中。AI 代理也可以以類似 [Origin: Outcome] blocked,which schema version? 的訊息結束,此時問題會轉為「已阻擋」狀態,並附帶該問題。

如果您不確定哪個 AI 代理最適合某項任務,可以將任務交給兩到四個代理。每個代理都會在背景中,從相同的基礎分支上運行自己的分支,並且每個乾淨完成的代理都會開啟自己的合併請求(PR)。合併最好的那個,問題就會關閉。

這個例子是一個針對 source-map-js 的 Dependabot 警報。Origin 將其轉化為一個包含驗收標準的問題(鎖定檔案不再解析到易受攻擊的版本,測試通過)。Claude 的 PR 以 0.50 美元的成本被合併。Codex 的 PR 則被關閉,它花費了 0.96 美元,並使用了大約十倍的 tokens。

經過幾十個問題的測試,這個表格可以告訴您哪種工作應該交給哪個代理。對於已關閉的問題,頁面還提供了一個 origin benchmark replay-tasks 指令,讓您可以在之後將問題在其他代理上重播,並根據合併的 PR 所添加的測試來評分它們。

「啟動」按鈕是進入系統的一種方式,另一種方式是透過佇列。Origin 的 MCP 伺服器提供 list_tasks、take_task、finish_task 和 release_task 等功能給 AI 代理。

會話中的代理可以領取下一個準備好的問題,而且兩個代理絕不會領取同一個問題:領取(claim)是一個單一的條件式資料庫寫入操作,因此只有一個代理會成功,其他代理會收到「已被領取」的訊息。領取是一個租約(預設為 30 分鐘),透過會話的心跳機制續約。如果代理終止,租約就會到期,任務會再次變為可用,無需清理作業。有未解決依賴關係的問題不會被分配。

Origin 不會做以下事情:

在 Origin 的伺服器上執行任何程式碼。AI 代理會在您的機器上,使用您安裝的命令列介面(CLI)和您的帳戶執行。

使用全面的權限繞過。每個代理都會獲得其最嚴格的無人值守模式:Claude 的 --permission-mode auto、Codex 的工作區寫入沙盒、每個執行 Antigravity 專案只允許 Git 和唯讀命令且無網路存取,以及範圍受限的 .cursor/cli.json。

合併或強制推送。它只會開啟一個合併請求(PR)然後停止。

無限期運行。背景執行預設會在 120 分鐘後停止,同時終止代理啟動的所有程序。

將完整的日誌發送到伺服器。只會發送狀態和最後幾行日誌。

您需要 Origin CLI 並且至少有一個 AI 代理 CLI 已登入。請先執行一次 origin url-handler install,以便「啟動」按鈕可以連接到您的機器,然後開啟「問題」頁面並按下「使用...啟動」。從終端機執行指令則為 origin issue start --agent codex --background、origin issue race --agents claude,codex,以及 origin issue runs 來查看正在運行的任務。

Share

覺得值得一看?分享給朋友。

以上為 AI 自動翻譯導讀。原文版權歸 DEV Community (Claude Code) 所有, 建議透過「閱讀原文」前往原始網站,以取得最完整資訊並支持原作者。

Newsletter

不用每天追,AI 重點每週寄給你

43 個來源、每 2 小時更新,太多看不完。電子報每週挑最值得看的幾則,附上 Max 的看法。

每週一封。Email 只用來寄電子報,每封信都能一鍵退訂。