Craft-Agent:把 LangGraph 深度研究與一鍵建站綁在一起的自架開源框架

Craft-Agent(ipvoov/Craft-Agent)是一個把 LangGraph 深度研究 agent 與網站產生器綁在一個中文介面裡、採 Docker 自架加 BYOK 金鑰的開源框架。本文從 GitHub 原始碼看清研究側八節點圖的工程深度、建站側的陽春,以及採用前要釐清的三件事:README 掛 MIT 卻沒有 LICENSE、執行要自備三套模型金鑰、官方 demo 已退化成只能瀏覽。

用 AI 摘要這篇文章:

給它一個研究問題,它規劃步驟、上網找資料、讀頁面、整理成一份結構化報告;再給它一段網站描述,它把對應的專案程式碼生出來讓你預覽。Craft-Agent(GitHub 倉庫 ipvoov/Craft-Agent)想做的就是這兩件事,而且把它們塞進同一個中文介面、一套 Docker 自架的框架裡。下面是從它的原始碼與設定檔看出來的能力與邊界;本文給的是認識,不是評測,我沒有在本機跑起來,所有判斷都標得到出處,效果與穩定度要你自己架了才知道。

先把座標點出來,方便你判斷要不要繼續看。深度研究 agent 這一側,開源世界已經有 GPT-Researcher 這類被廣泛引用的標竿,走的是多來源、長篇、帶引用的研究報告路線;網站與程式碼產生器那一側,則是 v0、bolt.new、Lovable 這些主流產品的戰場,幾十秒生出可預覽的前端。Craft-Agent 把這兩個本來各自獨立的領域綁在一個自架框架裡,差異化在於「兩者都要、而且要華語自架版」這個小眾交集。它是不是你的交集,取決於後面幾段會講到的三條採用門檻。

研究是本體:LangGraph 八節點串起一條研究鏈

讀它的原始碼會先看到一件事:研究側是貨真價實的多節點 agent,不是套皮的單次模型呼叫。src/graph/builder.py 把工作流拆成八個節點:協調者(coordinator)、規劃者(planner)、研究員(researcher)、報告者(reporter)、寫程式(coder)、研究小組(research\_team)、背景調查(background\_investigator)、人類回饋(human\_feedback)。這是 LangGraph 常見的多步編排樣式:一個問題進來先決定要不要做、拆成子任務、分頭找資料、再彙整成報告,中間留一個 human-feedback 節點讓你介入調研究方向。requirements.txtlanggraph==1.0.4langchain==1.1.0 也對得上,不是只在 README 寫寫。

Craft-Agent 深度研究工作流架構圖:LangGraph 多節點把協調者、規劃者、研究員、報告者等角色串成一條從問題到結構化報告的研究鏈(官方倉庫 docs/DeepResearch.png)Pin
Craft-Agent 深度研究架構圖(取自官方倉庫 docs/DeepResearch.png)。八節點工作流是它與套皮單次呼叫的主要差別。

這條研究鏈要能上網抓資料,靠的是一組爬蟲工具。src/crawler/jina_client.pyr.jina.ai 發請求拿原始 HTML(可選擇帶自己的 Jina API 金鑰),再交給 src/crawler/readability_extractor.py,用 readabilipy 把頁面噪音剝掉、抽出主文。作者在 README 把這組合形容成「自動清洗頁面噪音、保留核心內容」,這句是作者宣稱,清洗品質要到你自己跑過才知道;但「用 Jina 取 HTML、再用 Readability 抽正文」這條鏈是我在原始碼親眼看到、可以自己按圖索驥去核對的。研究側另外掛了一個 Python 程式碼執行工具,作者在設定說明裡誠實標示 ENABLE_PYTHON_REPL 有安全風險、建議只在受信任環境開啟,這個分寸拿捏值得肯定。

human-feedback 那個節點值得多講一句,因為它是這類研究 agent 用得順不順的關鍵。多數純自動的深度研究工具把問題丟進去就一路跑到底,方向偏了也只能等它跑完再看;Craft-Agent 在規劃與彙整之間留了一個讓你插手的接點,作者在 README 示範的是讓你調整研究計畫、關注重點與輸出形式。能不能真的攔得準、介面好不好操作,這部分要實際跑了才能評價,我沒有親自走過這個流程;但從工作流設計看,把人類介入做成一個正式節點,不用事後手改,方向是對的。研究鏈最終彙整成的報告,作者在 src/config/report_style.py 留了輸出樣式的設定,前端另有中英文切換(web/messages/zh.jsonen.json,中文為簡體),這也是它敢說自己是華語自架版的那層底氣。

換句話說,研究這一半有真正的工程深度:八節點的狀態機、可插換的工具鏈、可介入的迴圈。它與 Coworker 這類開源 AI 桌面代理 走的是同一條「把 agent 工作流做扎實」的路,差別在 Craft-Agent 的產出偏向一份研究報告,跑完就交付,不當常駐助理用。

建站是附帶:從描述到單一專案程式碼加預覽

相較於研究側的八節點圖,網站產生這一半就明顯節制,但也不是只有一個節點。README 的描述是:你在 Web Dev 頁面用自然語言講想要什麼網站(結構、內容、風格),後端走一條線性管線,先產大綱、再產碼、最後留一個中斷點讓你選擇續改或定案,前端讓你查看程式碼並用 /api/preview 預覽。換成白話,它比「描述進去、一份專案碼出來」多了一層大綱與編輯迴圈,整體仍是線性推進,沒有研究側那種條件路由與多角色協調的複雜度。

Craft-Agent 網站產生工作流架構圖:Web Dev 頁面從自然語言描述走到專案程式碼與預覽,相較研究側的八節點圖明顯精簡(官方倉庫 docs/WebGenerate.png)Pin
Craft-Agent 網站產生架構圖(取自官方倉庫 docs/WebGenerate.png)。建站側是一條單線流程,沒有研究側那種多步拆解與協作。

這個落差決定你對它的期待。如果你被「一鍵建站引擎」這幾個字吸引,期待的是 v0 或 bolt.new 那種輸入一段話、幾十秒看到一個接近成品的互動前端,Craft-Agent 目前看起來給的是更樸素的東西:一份可以下來改的專案骨架與原始碼,加上一個本地預覽。它更接近「研究報告做完之後,順手把成果轉成一個可以看的網站」的延伸,當不了獨立的 AI 建站主力。要做前端的快速原型,你還是會想另外看 AI coding 方案的比較 或乾脆回到 v0/bolt 那一側。

這個「研究深、建站淺」的不對稱,其實就是它與兩邊標竿真正的距離。研究側它能站上同一張桌子討論(機制完整、可自架),建站側比較像附帶模組。把它當「研究 agent 順手送你網站產生」用,心態會比較準;把它當「兩個都頂級的二合一」,落差就會出現在網站那一半。

想跑起來,先準備三套模型金鑰和一臺 Docker 主機

很多人看到「開源、免費」就直接聯想到打開就用,這裡要把話講清楚:Craft-Agent 的程式碼是公開的,執行時不會免費。它的 config.yaml.example 要你填三套模型角色:BASIC_MODELREASONING_MODELCODER_MODEL,每一組都是 OpenAI 相容的 base_urlmodelapi_key,分別扔回答、深度推理、寫程式這三件事。除此之外還要 TAVILY_API_KEY(搜尋)和 PEXELS_API_KEY(圖片),Jina 與 LangSmith 的金鑰則是選填。沒有任何內建或免費的模型,設定範例裡的 qwen3-coder-plusdeepseek-r1 都只是佔位,金鑰與帳單你自己帶。

這代表它的成本結構跟 DeepSeek API 監測 那類接 LLM API 的工具是同一種:框架免費,每次研究與生成都吃你自己的 API 額度。一份多步驟深度研究會反覆呼叫推理模型與搜尋,帳單不會是零;如果你長期要跑,先盤點一下每月的 API 預算,或像 Freellmapi 那條找免費額度的路 先試水。也因為它會在你自己的機器上跑爬蟲、還可能開 Python 執行工具,這套框架不該隨便丟到公開暴露的主機上裸跑,放在內網或鎖好埠的環境、再把 REPL 預設關掉(範例檔出貨時是開的),是比較穩當的自架姿態。

部署本身不算難,作者給了 Docker Compose 一鍵起來的路。docker-compose.yml 拉兩個映像檔:前端 ipvoov/craft-agent-frontend、後端 ipvoov/craft-agent-backend,分別佔 3001 與 8001 兩個埠,本機立刻能用。但這裡有一個會讓人第一次就卡住的坑,值得先講:README 的文字把映像檔名寫成 pveev/craft-agent-*,而 Docker Hub 上 pveev/ 那兩個根本不存在(查過是 404),實際能拉的是 compose 檔裡的 ipvoov/craft-agent-*。照 README 文字打指令會失敗,照 docker-compose.yml 跑才對。

README 沒講清楚的三件事

這是採用前最該停下來看的一段,因為它會直接改變你能不能安心用。三件事都是我在倉庫原始碼與設定檔裡實際核對到的,有出處可查。

最該先看的是授權。README 最上方掛了一個 MIT 徽章,看起來是標準 MIT 開源專案。但倉庫根目錄沒有 LICENSE 檔案(GitHub 的授權 API 與檔案介面都查不到),GitHub 偵測到的授權狀態是 None。在多數司法管轄區,沒有附授權條款的程式碼預設是「保留所有權利」,不等於可以隨意改作或商用。所以精準的說法是:原始碼看得到,但還沒有正式宣告授權。要拿去商用或改作,第一步是去 issue 區問作者一句「授權到底是什麼」,白紙黑字定下來再動;只是自架來用、產出自己留著,風險低很多,但授權這件事建議先釐清。這不是 Craft-Agent 獨有的狀況,前陣子看過的 Open Scouts 開源監控平台 也遇過 README 寫 MIT、倉庫授權欄位卻空的同一種落差,習慣自己查證比較穩。

環境版本也有個會咬人的落差。README 的徽章寫 Python 3.11+,但 pyproject.toml 實際要求 requires-python = ">=3.13"。你用 3.11 或 3.12 的機器照 README 裝,會在相依解析那一步就卡住;想跑就直接上 3.13,別被徽章誤導。前端那一側的 Next.js 15、React 19、Tailwind v4、shadcn 系元件,我從 web/package.json 裡逐項對過,版本屬實,這部分 README 沒有灌水。

官方 demo 則是另一回事。README 把 demo 連結放在最顯眼的位置,但作者自己加了一句但書:線上 demo 已經撐不住,只能瀏覽頁面效果,有些 API 呼叫要花錢,請你自己找免費 API 在本地架。這句我照原意轉述,意思是那個 demo 比較像看個介面長相,稱不上完整研究流程的現場展示;要真正感受它找資料、生報告、再產網站的完整鏈,只能本地自架。

它落在哪個位置

把它放回競爭地景裡看,會更清楚誰該裝、誰不該。

領域代表作主打Craft-Agent 的位置
開源深度研究 agentGPT-Researcher多來源、長篇、帶引用的研究報告機制完整可自架,但更年輕、社群更小
AI 網站與程式碼產生v0、bolt.new、Lovable幾十秒生可預覽前端偏陽春,是研究鏈的延伸而非主力
華語自架二合一(缺乏直接同類)研究加建站綁一套中文介面目前這個交集幾乎沒有同類

這張表是定位用的,不是品質排名;我沒有把三者放在一起實測過,誰的研究品質高、誰的網站比較好看,都需要你用同一個問題各自跑一輪才知道。能說的是:如果只要研究,直接上 GPT-Researcher 生態更成熟;如果只要建站,v0/bolt/Lovable 的體驗更完整。Craft-Agent 真正的賣場,是「我兩個都要、而且都要能放在自己機器上、介面要是中文」這個目前沒什麼人顧的交集。

另外兩個背景條件會影響你的判斷。一是它還年輕:倉庫 2025 年 11 月成立,到撰文時大約兩個多月,156 顆星、18 個 fork、2 個開 issue,關注度與社群貢獻都還在起步,CookHero 這類自架代理 早期也是這種規模,要等到一群人持續回報問題、補文件才會穩。二是它的生態位置偏中國開發者圈:作者在 FAQ 建議用國內 Docker 映像檔加速、設定範例推薦通義、智譜、DeepSeek、月之暗面這些華語圈模型,demo 也架在阿里雲。這對想用華語模型自架的人是順路,對其他地區的人只是要知道映像檔來源與設定慣例會跟著這個圈子的習慣走。

動手前的第一個確認

裝之前,給自己一個快速的分流。你手上已經有 OpenAI 相容的模型端點、Tavily 與 Pexels 金鑰,也願意讓一臺機器跑 Python 3.13 與 Docker,而且你想同時要研究報告與可改的網站骨架,Craft-Agent 值得架來玩,研究那一半特別能看出多節點 agent 的味道。反過來,如果你只是要一份快速研究摘要,GPT-Researcher 那條路更省事;只要前端原型,回到 v0 或 bolt.new 更直接。

真的要動手,順序是這樣:先把 config.yaml 裡三套模型金鑰、Tavily、Pexels 填好,再用 docker-compose up -d(記得用 compose 裡的 ipvoov/ 映像檔,別照 README 的 pveev/),前端開在 localhost:3001、後端在 localhost:8001。授權那邊,建議動手前先去 issue 區跟作者確認一次,把商用與改作的底線定下來。這套框架最有意思的地方是它的研究 agent,最大的不確定也在它的授權與年紀;把這兩件事一起放進你的決定裡,會比只看 README 的功能列表準得多。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 810

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...