從零打造類 Claude Code 智能程式碼助手:手把手教你建立自己的 AI 程式碼助理
嘿,各位熱愛程式碼的台灣朋友們!想過自己動手打造一個像 Claude Code 一樣的 AI 程式碼助理嗎? 今天要來介紹一個超棒的資源,讓你從最基礎的程式碼迴圈開始,一步一步建構出功能強大的 AI 程式碼助手。 這就像是在廚房裡從零開始學做菜,最終也能端出一道美味料理一樣!
什麼是 Claude Code?
Claude Code 是一個由 Anthropic 開發的 AI 程式碼助理,它能協助你完成各種程式碼相關的工作,例如生成程式碼、除錯、重構等等。 它的核心理念是將任務分解成小的、可管理的步驟,然後透過工具和迴圈來完成。
為什麼要自己打造?
市面上已經有許多現成的 AI 程式碼助理了,那為什麼還要自己動手打造呢?
- 學習核心概念: 透過自己動手,你可以更深入地了解 AI 程式碼助理的運作原理,掌握其核心概念,而不是僅僅停留在使用的層面。
- 客製化: 你可以根據自己的需求和喜好,客製化你的 AI 程式碼助理。 例如,你可以選擇自己喜歡的 LLM (大型語言模型) 、添加特定的工具,或是調整工作流程。
- 創造力與成就感: 從零開始打造,你能體會到程式碼帶來的樂趣和成就感。
- 提升技能: 這個過程可以幫助你提升 Python 編程、AI 相關知識,以及解決問題的能力。
介紹:Learn Claude Code — 從零打造
這次要介紹的專案是 learn-claude-code,它是一個專為教學設計的專案,讓你從零開始,逐步建構一個類似 Claude Code 的 AI 程式碼助理。 這個專案用簡單易懂的方式,逐步引導你了解 AI 程式碼助理的核心原理。
專案連結: https://github.com/shareAI-lab/learn-claude-code
這個專案提供了一系列的課程,每個課程都專注於一個特定的機制。 透過這些課程,你將學會:
- 基本迴圈: 這是 AI 程式碼助理的基礎,負責接收使用者指令、呼叫 LLM、執行工具,以及回覆使用者。
- 工具整合: 如何將各種工具 (例如,程式碼產生器、除錯器、文件檢視器) 整合到你的 AI 程式碼助理中。
- 任務規劃: 如何讓 AI 程式碼助理具有規劃能力,將複雜的任務分解成小的、可管理的步驟。
- 上下文管理: 如何有效地管理 AI 程式碼助理的上下文,避免資訊混亂。
- 多代理人協作: 如何讓你的 AI 程式碼助理可以與其他代理人 (agents) 協同工作,共同完成任務。
- 文件與程式碼隔離: 確保每個任務在獨立的環境中運行,避免干擾。
快速上手
- 環境設定
- 首先,你需要安裝 Python 和
pip(Python 的套件管理工具)。 - 接下來,克隆 (clone) 這個專案到你的電腦上:
git clone https://github.com/shareAI-lab/learn-claude-code cd learn-claude-code - 然後,安裝專案所需的 Python 套件:
pip install -r requirements.txt - 設定你的 Anthropic API 金鑰: 這個專案使用了 Anthropic 的 LLM。 你需要申請一個 Anthropic API 金鑰。 將你的金鑰設定在
.env檔案中 (如果沒有,可以複製.env.example建立一個)。cp .env.example .env # 使用你自己的 API 金鑰編輯 .env # 例如:ANTHROPIC_API_KEY=sk-xxxx
- 首先,你需要安裝 Python 和
- 開始學習
- 這個專案提供了 12 個逐步進展的程式碼範例 (sessions),從最簡單的迴圈到複雜的多代理人協作。
- 你可以從
agents/s01_agent_loop.py開始,這是最基本的迴圈。 - 然後,依序執行其他的範例,例如
agents/s02_tool_use.py,agents/s03_todo_write.py等等,逐步了解各種機制。 - 最完整的程式碼是
agents/s12_worktree_task_isolation.py,它包含了所有機制。 - 此外,專案還提供了一個總覽所有機制整合的
agents/s_full.py。
- 瀏覽文件
- 專案提供了豐富的文件,方便你理解每個程式碼範例。 文件以 “mental-model-first” 的方式呈現,也就是說,先說明問題,然後提供解決方案、ASCII 圖表,最後是程式碼範例。
- 文件有英文、中文和日文版本。 你可以在
docs/zh/資料夾中找到中文文件。 - 文件按順序排列,你可以按照順序閱讀,也可以根據你的興趣跳躍式閱讀。
核心概念:Agent 模式
這個專案的核心是「Agent 模式」。 了解這個模式,就能理解 AI 程式碼助理的工作原理。
Agent 模式的核心流程如下:
- 使用者輸入 (User Input): 使用者輸入指令。
- 訊息列表 (messages[]): 將使用者指令轉換成訊息,傳遞給 LLM。
- LLM 產生回覆 (LLM –> Response): LLM 根據訊息產生回覆,包含程式碼、文本、或其他指令。
- 判斷是否需要使用工具 (stop_reason == “tool_use”?):
- 否 (No): 直接回傳文字。
- 是 (Yes):
- 執行工具 (execute tools): 根據 LLM 的指示,執行工具。
- 儲存結果 (append results): 將工具的執行結果儲存起來。
- 迴圈 (loop back): 將結果加入訊息列表,再次傳遞給 LLM。
這個迴圈會不斷重複,直到 LLM 不再需要使用工具為止。
用 Python 程式碼表示如下:
def agent_loop(messages):
while True:
response = client.messages.create(
model=MODEL, system=SYSTEM,
messages=messages, tools=TOOLS,
)
messages.append({"role": "assistant",
"content": response.content})
if response.stop_reason != "tool_use":
return
results = []
for block in response.content:
if block.type == "tool_use":
output = TOOL_HANDLERS[block.name](**block.input)
results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": output,
})
messages.append({"role": "user", "content": results})
逐步深入:每個 session 的核心理念
這個專案的每個 session 都會增加一個新的機制,讓你的 AI 程式碼助理越來越強大。 每個 session 都有一個口號,幫助你理解這個機制的重點。
- s01: The Agent Loop (一個迴圈和 Bash 就夠了)
- 學習核心的 Agent 迴圈。 只需要一個迴圈和一個工具 (例如 Bash)。
- s02: Tool Use (新增工具,即增加一個處理器)
- 學習如何將新的工具 (例如程式碼產生器) 加入到你的 AI 程式碼助理中。
- s03: TodoWrite (沒有計畫的 Agent 會迷失方向)
- 學習如何讓 AI 程式碼助理具有規劃能力,例如先列出步驟,然後再執行。
- s04: Subagents (將大型任務分解)
- 學習如何使用子代理人,讓你的 AI 程式碼助理可以處理更複雜的任務。 每個子代理人都有自己的訊息列表,保持對話的清晰。
- s05: Skills (隨需載入知識,而不是預先載入)
- 學習如何讓 AI 程式碼助理可以根據需要載入知識 (例如,從檔案中讀取說明)。
- s06: Context Compact (上下文會爆滿,你需要清理空間)
- 學習如何管理上下文,避免信息過載,例如使用壓縮策略。
- s07: Tasks (將大目標拆分成小任務,並排序,持久化到磁碟)
- 學習如何使用基於檔案的任務系統來管理你的程式碼助手。
- s08: Background Tasks (在後台運行緩慢的操作,agent 繼續思考)
- 學習如何讓 AI 程式碼助理在後台執行長時間運行的操作。
- s09: Agent Teams (當任務太大時,委派給隊友)
- 學習如何創建代理人團隊來協同工作。
- s10: Team Protocols (隊友需要共享的通訊規則)
- 學習代理人團隊之間的通訊協議,例如請求-回應模式。
- s11: Autonomous Agents (隊友掃描任務並自行認領)
- 學習讓團隊中的代理人能夠自主地認領任務。
- s12: Worktree + Task Isolation (每個代理人在自己的目錄中工作,沒有干擾)
- 學習如何讓每個代理人在獨立的工作目錄中工作,避免相互干擾。
個人實作心得
我親自嘗試了這個專案,真的覺得非常棒! 以下是我的一些心得:
- 從最簡單的開始: 不要急著一次看完所有程式碼。 建議從
s01開始,逐步深入。 - 邊看程式碼邊實驗: 不要只是讀文件,也要親自執行程式碼,修改程式碼,看看會發生什麼變化。
- 勇敢嘗試: 遇到問題是正常的。 試著自己解決,或是上網搜尋相關資訊。
- 多做筆記: 記錄你學習到的內容,以及遇到的問題。 這可以幫助你更好地理解和記憶。
- 善用文件和範例: 文件和範例都是非常好的學習資源。 好好利用它們。
- 享受樂趣: 打造 AI 程式碼助理的過程很有趣,享受這個過程吧!
錯誤排除指南
在學習的過程中,你可能會遇到一些問題。 以下是一些常見問題的解決方案:
- API 金鑰錯誤: 請確認你已經正確地設定了 API 金鑰,並且金鑰有效。
- 套件安裝錯誤: 檢查你是否已安裝了所有的 Python 套件。 可以重新執行
pip install -r requirements.txt。 - 程式碼錯誤: 仔細檢查程式碼,看看是否有拼寫錯誤或語法錯誤。 可以使用程式碼編輯器的錯誤檢查功能。
- LLM 回覆錯誤: LLM 有時候會產生錯誤的回覆。 嘗試重新執行,或者調整提示詞。
- 權限問題: 確保你有執行程式碼的權限,特別是在使用檔案操作的時候。
結論
learn-claude-code 是一個非常棒的資源,讓你從零開始,逐步建構 AI 程式碼助理。 透過這個專案,你可以學習 AI 程式碼助理的核心概念,並且提升你的程式設計技能。
還在等什麼呢? 趕快開始你的 AI 程式碼助理之旅吧! 祝你學習愉快!
參考閱讀
https://github.com/shareAI-lab/learn-claude-code