我們閱讀每一份回饋,並非常認真地看待您的意見。

若要查看所有可用的限定詞,請參閱我們的文件。

透過從頭開始用 Swift 重建 Claude Code 式的 CLI,來探索程式碼代理的架構。

一個包含 9 個部分的學習系列涵蓋了 ivanmagda.dev 上的建構過程。

Claude Code 的表現比我用過的大多數程式碼代理都好,我認為原因是「克制」。我研究了它的工具介面,並追蹤了它的迴圈,以隔離哪些設計選擇起到了作用。

我的工作理論是:程式碼代理從一組少量但優秀的工具和一個緊密的迴圈中獲益,而不是從大型的協調層中獲益。

Claude Code 提供的工具很少,而且它們都很簡單:一個搜尋工具,一個檔案編輯器。它們運作良好。系統信任模型,並跳過了大多數代理堆疊的腳手架。

這個專案用 Swift 重建了這些機制,一次一個階段,以找出完成這項工作所需的架構有多麼精簡。

這個專案測試了關於程式碼代理的幾個特定想法:

每個階段都隔離了一個機制,以便我能看到它帶來了什麼。

整個過程歸結為一個迴圈:

迴圈是固定的;工具是變化的。每個階段都會在 API 呼叫之前向工具處理器字典和注入點添加條目,但迴圈主體本身保持不變。

Git 標籤追蹤進度。路線圖分為兩個階段:首先是核心機制,然後是產品級功能。

最低可行代理:一個迴圈和一組少量的好工具。

讓代理感覺像一個可用產品的功能:上下文、記憶體管理和持久化。

雙目標 Swift 套件管理器專案:

核心是函式庫:API 客戶端、Shell 執行器、代理迴圈、工具。

CLI 是入口點。可執行檔命名為 agent。

該代理透過原始 HTTP 與 POST https://api.anthropic.com/v1/messages 通訊,建構在 AsyncHTTPClient 之上。它運行在 macOS 和 Linux 上。

這是一個程式碼代理架構的分階段探索。其中的間隙是刻意為之。

Claude Code 式程式碼代理的 Swift 重寫,分階段建構以探索程式碼代理的運作機制