通過ClaudeCode進行one-api系統(tǒng)改造的實踐過程總結 原創(chuàng)
前言
最近參加了CSDN舉辦的《2025全球機器學習技術大會》,大會中很多會議議題都與??Vibe Coding???有關,同時近期圍繞??Cursor???、??Claude Code??等AI編程工具的話題也比較火熱。
因此,本篇內容將以一個項目改造實戰(zhàn)為例,介紹??Claude Code??的實踐過程。
問題
通過大會以及近期項目中的交流,AI編程在企業(yè)難以落地的問題主要有以下幾個:
1. 垂類的業(yè)務不了解。對于一些比較垂直的領域(比如內部??CRM??系統(tǒng)、教育課件制作系統(tǒng)等),模型會因為對垂直領域業(yè)務知識不了解,無法勝任的問題。
2.歷史代碼資產不能復用。很多自媒體在介紹??Cursor??等AI編程時,往往都是以編寫??一個小游戲??或者一個??新的項目??(如購物網(wǎng)站等)為例,這類任務模型一般是可以勝任的。但是,如果是在一個已有的項目上進行編程,模型可能是無法勝任的,比如:模型在使用庫函數(shù)時會使用最新的庫函數(shù),而既有項目的庫函數(shù)可能是舊版本,甚至模型可能會從頭開始編程實現(xiàn)相關功能,這就導致了企業(yè)內部之前歷史資產代碼不能復用。
3.代碼質量差。如果直接交由模型生成代碼,模型為了完成任務,往往代碼是缺少架構設計的,可能會生成很多冗余的代碼,最終開發(fā)人員不得不重構優(yōu)化模型生成的屎山代碼,導致效率并沒有提升。
4. 安全考慮。代碼有敏感性內容,不能直接交由大模型處理,會存在核心技術泄密的問題。
......
接下來,我將嘗試借助Claude Code的改造One-api系統(tǒng)的實踐過程,解決上述的問題1~3。
項目背景介紹
項目簡介:??one-api???系統(tǒng)是一個??LLM API??? 管理 & 分發(fā)系統(tǒng),通過該系統(tǒng)可以將多種 ??LLM???(例如:??DeepSeek???、??智譜???、??Qwen???、??OpenAI???、??Google Gemini??)等主流模型,進行統(tǒng)一地 API key 管理,并且實現(xiàn)二次分發(fā)。
項目地址:https://github.com/songquanpeng/one-api
項目問題:目前隨著??Claude Code???的火熱,與之相關的??anthropic???協(xié)議也逐步成為主流,但是??one-api???系統(tǒng)目前僅支持??openai???以及??openai-compatible??協(xié)議。
因此,我們需要對??one-api???系統(tǒng)進行改造,使其支持??anthropic??協(xié)議。
開發(fā)流程

說明:上圖是一個 ??傳統(tǒng)開發(fā)流程??? 與 ??使用AI編程工具的人機協(xié)作流程?? 對比。相比較傳統(tǒng)開發(fā)流程會有一些不同之處:
- 人的職責由之前的?
?執(zhí)行?? 演變?yōu)??審查與決策??,而AI的職責曾承擔更多的??執(zhí)行?? 工作,當然AI也可以利用不同的大模型進行交叉評審。 - 整體的流程概括起來是:?
?熟悉理解(需求/設計/測試)任務內容??-->??沉淀任務內容為持久化的文檔??-->??人機協(xié)同審查??-->??執(zhí)行任務內容??-->??驗證??-->??迭代??。
接下來,我們通過Claude Code介紹上述流程的具體過程。
具體內容
1. 環(huán)境準備
1.1 配置Claude Code開發(fā)環(huán)境
由于本次開發(fā)改造使用的是Claude Code,因此我們需要在本地環(huán)境配置一個Claude Code開發(fā)環(huán)境。
上述流程屬于人機系統(tǒng)的通用范式,所以我們也可以使用其他的AI編程工具來實現(xiàn),比如Cursor、Codex、BuddyCode等等。
具體開發(fā)環(huán)境搭建流程有很多資料,本章不再贅述,詳情可以查看《Claude Code+Deepseek模型的配置使用方法》
1.2 拉取對應的代碼
我們需要拉取??one-api??系統(tǒng)代碼,所以拉取對應的代碼到本地。
git clone https://github.com/songquanpeng/one-api.git2. 理解項目并生成分析文檔
2.1 核心目的
在開發(fā)流程中,我們提到了在需求開始之前,AI有一個??理解項目并生成分析文檔??,其核心目的是讓AI對當前項目進行深入地分析,以便在后續(xù)的開發(fā)過程中,可以更加精準的給出解決方案。
2.2 解決的問題
解決的問題:這一步驟對應主要是解決??## 問題???中的第一個問題:??垂類的業(yè)務不了解??。
2.3 具體方法
- 在當前項目創(chuàng)建?
?docs?? 目錄,用于存放文檔 - 通過提示詞,驅動?
?Claude Code??進行項目梳理分析,生成相應的文檔。
請根據(jù)我提出的需求,進項項目文檔梳理。
背景信息:
1、one-api系統(tǒng)是一個LLMAPI管理&分發(fā)系統(tǒng),通過該系統(tǒng)可以將多種LLM(例如:DeepSeek、智譜、Qwen、OpenAI、GoogleGemini)等主流模型,進行統(tǒng)一地APIkey管理,并且實現(xiàn)二次分發(fā)。
目標:
請根據(jù)我提供的代碼路徑,進行相關項目的梳理,生成核心邏輯梳理。
流程:
1、你需要閱讀該項目下的README.md文件
2、你需要仔細閱讀項目下的代碼
3、基于上述1和2的信息,梳理項目的核心邏輯,并生成相應的文檔。
代碼路徑:
/Users/deadwalk/Code/ai_proj_llm/one-api
文檔輸出路徑:
/Users/deadwalk/Code/ai_proj_llm/one-api/docs
具體要求:
1、文檔中一定要包含整體的架構圖
2、文檔中一定要包含項目核心邏輯的詳細描述
3、如果涉及數(shù)據(jù)庫信息,請梳理數(shù)據(jù)庫表結構以及對應字段的信息備注:這一步驟是提供詳細的文檔信息讓AI了解,所以如果沒有文檔的情況,需要讓AI自己閱讀項目理解;如果有歷史文檔,那么可以將已有文檔提供給AI。
通過上述的方式,??Claude Code??? 對項目核心內容進行了梳理,同時使用我提供的數(shù)據(jù)庫地址、用戶名、密碼等信息,對 ??PostgreSQL?? 數(shù)據(jù)庫進行了仔細的分析,最終輸出了如下的文檔。


3. 需求澄清
3.1 核心目的
這一步驟主要是類比傳統(tǒng)開發(fā)流程中的需求撰寫和需求澄清,其核心目的主要是解決在AI編程工具運作的過程中,由于不斷增大的上下文內容,會導致模型的能力下降而產生幻覺。
所以將需求和方案設計沉淀下來,在AI可能產生幻覺的時候使其重新閱讀文檔,可以最大限度避免幻覺問題。
3.2 具體方法
- 在?
?docs??目錄下創(chuàng)建??prd?? 目錄,用于存放需求。 - 通過提示詞,詳細說明需求并生成相應的文檔。
我一般使用的提示詞如下:
請根據(jù)我提出的需求,進行相應的需求梳理并形成文檔。
問題:
1、one-api系統(tǒng)目前僅支持openai以及openai-compatible協(xié)議,但是不支持anthropic協(xié)議。具體問題為:
1)本地啟動了one-api系統(tǒng),例如:http://localhost:3000
2)我在one-api系統(tǒng)上配置了第三方的deepseek模型,并配置了相應的APIkey渠道
3)我在one-api系統(tǒng)上生成了對應的令牌
4)當我使用openAI-compatible協(xié)議調用deepseek-chat模型時,一切正常
curl-XPOST"http://localhost:3000/v1/chat/completions"\
-H"Content-Type: application/json"\
-H"Authorization: Bearer sk-zYUecvRm5cVnxzLnEe35Ff4a49Ae4110Aa9dA30a2d9eDa65"\
-d'{
"model": "deepseek-chat",
"messages": [
{"role": "user", "content": "你好,請簡單介紹一下你自己"}
],
"max_tokens": 1000,
"temperature": 0.7
}'
2、但是我使用claudecode配置如下環(huán)境使用本地one-api系統(tǒng)后,claudecode無法使用,具體為:
exportANTHROPIC_BASE_URL=http://localhost:3000/anthropic
exportANTHROPIC_AUTH_TOKEN=sk-zYUecvRm5cVnxzLnEe35Ff4a49Ae4110Aa9dA30a2d9eDa65
exportANTHROPIC_MODEL=deepseek-chat
配置以上環(huán)境變量后,啟動claude code,與模型對話無法使用。注意:
- 以上提示詞應該盡可能詳細地提供信息,讓AI準確地理解需求,切不可以只是簡單的一句"請?zhí)砑觓nthropic協(xié)議"。(一句話需求在現(xiàn)實中,也會被程序員打回去的....)

4 設計方案
4.1 核心目的
這一步驟是基于上述的需求,實現(xiàn)相關的開發(fā)方案并持久化為文檔,一方面便于人類進行方案合理性的審核,另一方面也是解決模型的幻覺問題。
4.2 具體方法
- 在?
?docs?? 目錄下創(chuàng)建??arch?? 目錄,用于存放設計方案。 - 通過提示詞,生成詳細的設計方案。
- 使用其他大模型(例如?
?GPT-5??)對既有的設計方案進行審查。
這一步驟與上述需求類似,也是通過提示詞來驅動 ??Claude Code?? 干活。我經常使用的提示詞如下:
請根據(jù)我提供的信息,進行相關功能的架構設計。
問題:
1、由于one-api系統(tǒng)目前僅支持openai以及openai-compatible協(xié)議,但是不支持anthropic協(xié)議。
目標:
1、請你根據(jù)我提出的問題和需求信息,結合行業(yè)目前anthropic協(xié)議的使用方法,生成一份one-api系統(tǒng)支持anthropic協(xié)議的方案。
流程:
1、你需要仔細閱讀當前one-api系統(tǒng)的架構實現(xiàn)
2、你需要仔細閱讀需求文檔
3、你需要查詢ClaudeCode以及anthropic協(xié)議資料
4、基于上述你的了解,輸出相應的實現(xiàn)方案
相關資料:
1、前端代碼:docs/archeive/核心邏輯梳理.md
2、需求文檔:docs/prd/需求文檔.md
3、Deepseek官網(wǎng)關于anthropic協(xié)議資料:https://api-docs.deepseek.com/zh-cn/guides/anthropic_api
要求:
1、架構設計文檔應該包含整體的架構設計框架圖
2、架構設計文檔應該包含數(shù)據(jù)格式
3、架構設計文檔應該包含核心實現(xiàn)流程
輸出位置:
輸出方案文檔到docs/arch
為了確保上述方案的可靠性,我們還可以借助其他大模型對上述方案進行評審,指出問題和給出修改建議。
5. 構建防護網(wǎng)(測試框架及測試用例設計)
5.1 核心目的
在開始編碼之前,構建比較完善的防護網(wǎng),確保模型修改代碼時不會引入新的問題。
5.2 具體方法
- 在工程目錄下創(chuàng)建?
?test?? 目錄,用于存放測試用例。 - 通過提示詞,讓模型對當前項目的代碼進行分析,生成相應的單元測試用例和接口測試用例。
- 人工走查用例,對用例的合理性進行修正。
- 運行測試用例,確保用例都是有效且通過的。
我一般使用的提示詞如下:
請根據(jù)我提供的信息,進行測試用例的完善和運行
背景:
當前項目已經進行了相關的方案設計,相關資料請見
1、需求文檔:{{需求路徑}}
2、實現(xiàn)方案:{{實現(xiàn)方案路徑}}
目標:
1、請根據(jù)既有的代碼,生成并調試并運行測試用例,用例請輸出到tests目錄下
要求:
1、代碼要符合實現(xiàn)方案規(guī)劃的內容
2、代碼文件組織形式,要符合當前項目的文件目錄組織結構,你需要對當前項目工程目錄組織有個了解,不要在根目錄隨意創(chuàng)建新的文件夾
3、代碼文件在符合文件目錄結構的要求前提下,最好將新增代碼維護在同一目錄下,便于維護
4、代碼要符合行業(yè)規(guī)范,向業(yè)界最佳實踐看齊
5、代碼的測試用例要符合當前項目的測試用例規(guī)范要求,即:tests/README.md
補充信息:
1、我已經啟動了接口測試所需要的數(shù)據(jù)庫docker容器
2、你在執(zhí)行用例前需要在執(zhí)行測試用例的命令中,增加DB_HOST=localhost,方可鏈接到數(shù)據(jù)庫
3、后端服務日志保存在:項目根目錄下的logs目錄下,你可以借助后端服務日志了解執(zhí)行用例失敗的原因
6. 編碼&調試&測試
6.1 核心目的
讓AI按照既定的方案,逐步完成對應的功能實現(xiàn)并執(zhí)行對應的測試用例,確保沒有引入新的問題。
6.2 具體方法
- 讓模型對既定方案進行開發(fā)計劃拆解,分步驟進行開發(fā)實現(xiàn)。
- 在提示詞中明確開發(fā)實現(xiàn)的要求。
我一般使用的提示詞如下:
請根據(jù)我提供的信息,進行相應的開發(fā)工作。
背景:
當前項目已經進行了比較詳細的需求梳理、實現(xiàn)方案設計以及開發(fā)計劃拆分,相應的內容請見:
1、實現(xiàn)方案:{{實現(xiàn)方案路徑}}
2、開發(fā)計劃:{{開發(fā)計劃路徑}}
目標:
1、請根據(jù)實現(xiàn)方案進行{{第一階段}}的開發(fā)工作
流程:
1、請你仔細閱讀對應的實現(xiàn)方案
2、請你仔細閱讀目前的代碼實現(xiàn)
3、基于以上1和2的了解,請開發(fā)實現(xiàn)對應的代碼
要求:
1、代碼要符合實現(xiàn)方案規(guī)劃的內容
2、代碼要符合行業(yè)規(guī)范,向業(yè)界最佳實踐看齊
3、代碼的目錄組織結構要符合既定方案中的要求
工具:
1、對于API查詢,你可以使用mcp工具context7進行查詢通過以上提示詞,??Claude Code?? 基本就開始干活了。基于個人的開發(fā)習慣,我通常是它每修改一筆代碼我會進行Review代碼改動,以確保它實現(xiàn)過程是合理的。
代碼實現(xiàn)的示意圖:

這個過程是一個持續(xù)迭代的過程,有一些注意事項:
- 每開發(fā)一部分功能則進行小的功能驗證和代碼Review,確保新增的代碼是可靠的。
- 利用好Git,對新增的代碼及時進行版本控制,防止在開發(fā)過程中代碼被污染。
- 可以在代碼關鍵位置增加日志,這樣可以讓AI觀察代碼執(zhí)行過程,提升修復問題的效率。
最終,經過不斷迭代和修改,我們在one-api系統(tǒng)上添加了anthropic協(xié)議的支持。

7. 文檔梳理
最后一步,當所有功能完成之后,讓AI對相關內容進行文檔梳理和更新,比如:
- API設計可能與項目之初的方案不一致...
- 數(shù)據(jù)庫的表結構可能實現(xiàn)過程中新增了更多字段...
- 測試用例的執(zhí)行方法可能需要記錄下來,方便后續(xù)快速執(zhí)行。
- ....

總結
- 在 AI編程 興起的今天,借助人機協(xié)同的方式,可以方便項目的整體開發(fā)流程
- 整體流程大致分為:
a.項目理解階段:讓 AI 對當前項目進行深度了解,生成持久化的文檔,以解決對于領域知識不了解的問題
b.需求澄清階段:通過多次澄清迭代,在項目目錄下創(chuàng)建對應的需求文檔,以解決大模型幻覺的問題
c.方案設計階段:讓 AI 根據(jù)需求設計相應的實現(xiàn)方案,同時對方案進行人機系統(tǒng)的評審,以解決歷史代碼不能復用的問題
d.構建防護網(wǎng):通過生成單元測試、接口測試用例以及代碼走查,使得 AI 在迭代的過程中輸出的代碼質量可靠
e.編碼&調試&測試:通過小的功能迭代、驗證、測試的過程,逐步完成相關的功能
f.文檔梳理:在功能完成之后,對相關的方案文檔、API文檔、數(shù)據(jù)庫設計文檔、測試用例維護方法、項目部署運行等信息進行更新,以便更加方便開展下一次的迭代。
本文轉載自公眾號???一起AI技術??? 作者:熱情的Dongming

















