DATAGEN 評測:LangGraph 多代理研究流程的實際邊界
DATAGEN: AI-driven multi-agent research assistant automating hypothesis generation, data analysis, and report writing.
秒懂
- 它是什麼?
- DATAGEN 用 LangGraph 把假設生成、程式撰寫、視覺化、搜尋與報告撰寫串成一條狀態圖,並用 agent_models.yaml 讓每個代理各自指定模型供應商。它的價值在流程編排,不在分析品質本身。
- 適合誰用?
- DATAGEN 適合已經有明確 CSV 資料集、想觀察多代理分工如何落地,並且願意自己讀 LangGraph 狀態圖與代理提示詞的工程師。不適合把資料分析當黑箱外包、或需要可重現統計推論的團隊,因為流程中有人類選擇假設這一關,輸出取決於提示詞與模型版本,README 也沒有提供任何評估數據。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫在最近一天內有新的提交。
- 用什麼語言寫的?
- 主要是 Python(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
DATAGEN 想取代的是研究流程裡的手動接力
一份 CSV 丟進來,通常要經過幾個人工環節:先猜變數之間可能有什麼關係,再寫 pandas 或 scikit-learn 程式驗證,接著畫圖,最後把圖表和結論寫成報告。DATAGEN 把這條鏈拆成八個具名代理,README 列出的分工是 hypothesis_agent 產生研究假設、process_agent 監督整個研究過程、visualization_agent 負責圖表、code_agent 寫分析程式、searcher_agent 做文獻與網路搜尋、report_agent 寫報告、quality_review_agent 做品質審查、note_agent 記錄研究過程。
目標讀者是願意接受「代理產出草稿、人類驗收」這種工作模式的人。專案用 Python 撰寫,需要 3.10 以上,授權為 MIT。它處理的不是即時資料管線,也不是排程任務,而是一次性的研究任務:給定資料檔與一句自然語言指令,跑出一份帶圖的報告。
這裡有個容易被行銷語言蓋過的事實:README 的標題區塊寫「revolutionizes data analysis」,但整份文件沒有提供任何準確度、執行時間或與人工分析對照的數字。判斷這個專案值不值得用,只能從流程設計與設定彈性去看,不能從效果宣稱去看。
狀態圖與八個代理:資料怎麼流動
README 說明系統用 LangGraph 建立 state graph 來管理整個研究過程,流程有五個步驟:假設生成、人類選擇(繼續或重新生成假設)、處理階段(含資料分析、視覺化、搜尋與報告撰寫)、品質審查、視需要修訂。
這裡的關鍵設計是第二步。它不是全自動流程,而是一個帶中斷點的圖:hypothesis_agent 先產出候選假設,由人類決定要採用哪一個或要求重新生成,之後才進入 process_agent 監督的處理階段。這個中斷點決定了 DATAGEN 的定位,它是一個人機協作的研究助手,而不是無人值守的分析服務。任何想把它包進自動化排程的嘗試,都得先處理這個人工介入環節。
note_agent 的角色在 README 裡被描述為記錄研究過程,屬於跨階段的上下文保留機制。品質審查之後若需要修訂,流程會回到處理階段。整個架構的複雜度集中在編排層,而非分析演算法層:真正做統計與建模的程式由 code_agent 生成,DATAGEN 本身不提供分析方法的實作。這一點對評估風險很重要,輸出品質會直接綁定在生成程式碼的模型能力上。
安裝與 .env 裡那些不能留空的欄位
安裝步驟在 README 中相當制式。先複製倉庫,再建 Conda 環境,然後安裝依賴:
git clone https://github.com/starpig1129/DATAGEN.git conda create -n datagen python=3.10 conda activate datagen pip install -r requirements.txt
接著把 .env Example 改名為 .env 並填入所有值。README 把欄位分成 required 與 optional 兩類。標為 required 的有三項:WORKING_DIRECTORY 指向資料儲存路徑,預設 ./data/,同時被 filesystem MCP server 使用;CONDA_ENV 是 Conda 環境名稱;CHROMEDRIVER_PATH 指向 ChromeDriver 執行檔,預設路徑寫成 ./chromedriver-linux64/chromedriver。
optional 的部分包含 FIRECRAWL_API_KEY、CRW_API_KEY 與 CRW_API_URL、OPENAI_API_KEY、ANTHROPIC_API_KEY、GOOGLE_API_KEY、LANGCHAIN_API_KEY,以及 MCP 相關的 TAVILY_API_KEY 與 GITHUB_TOKEN。README 對 FIRECRAWL_API_KEY 的說明是:缺少這個 key 時查詢能力可能受限。CRW_API_URL 預設指向託管雲端 https://fastcrw.com/api,自架時可改成本機位址。
CONFIG_DIRECTORY 是選填,所有設定檔(agent_models.yaml、agents/、mcp.yaml)都相對於這個目錄,預設為 config/,README 建議本機開發時改用 config_local 以免被 Git 追蹤。執行方式是在 data 目錄放入資料檔,修改 main.py 中 main() 函式的 user_input 變數,格式為 datapath 加一句指令,例如指定用機器學習做分析並產出完整圖形報告,然後執行 python main.py。
要注意的是,main.py 的 user_input 是硬寫在程式碼裡的,README 沒有提到命令列參數或 API 介面。想批次跑多個資料集,得自己改這一段。
agent_models.yaml:把模型選擇下放到單一代理
這個專案在設定上的主要設計,是讓每個代理各自指定供應商與模型。README 給的範例結構如下:
agents: hypothesis_agent: provider: openai model_config: model: gpt-5-nano temperature: 1.0 note_agent: provider: google model_config: model: gemini-2.5-pro temperature: 1.0 code_agent: provider: anthropic model_config: model: claude-haiku-4-5 temperature: 1.0
provider 欄位支援 openai、google、anthropic、ollama、groq。model_config 裡有 model 與 temperature,README 註明 temperature 範圍是 0.0 到 2.0。
這個設計的實際意義是成本與能力的分配可以分開處理。寫程式的代理需要較強的推理能力,寫報告的代理可以便宜一點,筆記代理則需要穩定的長上下文。範例裡三個代理用了三家供應商,這也意味著 .env 中對應的 API key 都得填,否則該代理會失敗。
README 另外提到一個 Progressive Disclosure 架構用於代理設定,但提供的文件在此處被截斷,只寫到 insp 為止。agents/ 目錄底下究竟放什麼、格式是提示詞還是別的結構,從現有材料無法確認。這是評估時必須自己去倉庫看的部分。
相依於外部服務與瀏覽器驅動的脆弱面
DATAGEN 的執行路徑上掛了不少外部依賴,任何一項失效都會讓流程停在中途。CHROMEDRIVER_PATH 是 required 欄位,表示搜尋或抓取環節需要瀏覽器自動化;README 的預設路徑是 Linux 版 ChromeDriver,在 macOS 或 Windows 上必須自行替換,而且驅動版本要與本機瀏覽器相符。這種相依的失敗模式很單純:版本不對就啟動失敗,錯誤訊息通常不會直接指向 DATAGEN 的程式碼。
搜尋能力則綁在 Firecrawl 或 fastCRW 上。README 明講缺少 FIRECRAWL_API_KEY 時查詢能力可能受限,這代表 searcher_agent 的產出會隨金鑰狀態變動。同一份 user_input 在不同金鑰配置下跑出不同深度的報告,是可預期的結果。
另一個結構性限制是資料規模。README 沒有提到分散式運算、資料庫連接器或串流處理,WORKING_DIRECTORY 與 filesystem MCP server 共用同一個路徑,暗示工作模式是把檔案放在本機目錄再讀取。超過記憶體能承載的資料集,不在這個流程的設計範圍內。
最後是模型版本的漂移。agent_models.yaml 指向具體模型名稱,供應商淘汰或更名舊模型時,設定檔就得跟著改,而流程行為也會隨之改變。README 沒有提供任何鎖定版本或回歸測試的機制。
與 Jupyter 加上 LangChain 自建流程的差異
真正要比較的對象不是另一個多代理框架,而是工程師自己用 Jupyter notebook 加 LangChain 拼出來的流程。兩者都用 LLM 寫分析程式,差別在控制流放在哪裡。
自建流程通常是一條直線腳本:讀檔、呼叫模型生成程式、執行、畫圖、再呼叫模型寫摘要。狀態存在 Python 變數裡,出錯就整段重跑。DATAGEN 把控制流交給 LangGraph 的 state graph,並在假設生成後插入人類選擇節點,讓修訂可以回到處理階段而不必從頭開始。note_agent 則是為了在代理之間傳遞上下文而存在,自建流程裡這通常靠把前幾輪對話塞進 prompt 解決。
代價是透明度。直線腳本裡每一行做什麼一目了然,LangGraph 的狀態轉移則要讀圖的定義才能追。當報告結論有問題時,在自建流程中可以直接看生成的那段 pandas 程式;在 DATAGEN 中得先確定問題出在哪個代理、哪一輪修訂。
如果你的分析方法是固定的,例如每週跑同一組統計檢定,自建腳本更省事。DATAGEN 的優勢在於探索性任務:假設還不確定、需要來回修改、報告要反覆調整的場合。
維護成本與 MIT 授權的實際含意
倉庫最後一次推送時間是 2026 年 8 月,沒有檢索到任何 release。這表示沒有版本標籤可以鎖定,採用時只能綁定 commit hash,否則上游一改,你的環境就跟著變。對於需要重現性的研究用途,這是必須自己補上的工程措施。
維護成本主要來自三處。一是模型設定:agent_models.yaml 裡每個代理的 model 名稱都會隨供應商政策失效,八個代理意味著八個要盯的欄位。二是外部服務:Firecrawl、fastCRW、Tavily、GitHub token 任一變更都會影響對應代理。三是 ChromeDriver 與瀏覽器版本的同進退。這些都不是 DATAGEN 能控制的,但都會表現為 DATAGEN 執行失敗。
授權是 MIT,允許商用、修改與再散布,條件是保留著作權聲明與授權條款。需要注意的是,MIT 只涵蓋這個倉庫的程式碼。DATAGEN 會呼叫 OpenAI、Anthropic、Google 等供應商的模型,也會經由 MCP server 存取外部服務,那些服務各自的條款與資料處理政策與 MIT 無關。若分析資料含有個資或機密內容,資料會送到你設定的模型供應商,這一點在設定 agent_models.yaml 時就決定了。以上不構成法律意見,實際條款請自行確認。
編輯結論
DATAGEN 適合已經有明確 CSV 資料集、想觀察多代理分工如何落地,並且願意自己讀 LangGraph 狀態圖與代理提示詞的工程師。不適合把資料分析當黑箱外包、或需要可重現統計推論的團隊,因為流程中有人類選擇假設這一關,輸出取決於提示詞與模型版本,README 也沒有提供任何評估數據。採用前先確認三件事:requirements.txt 是否鎖定版本、config 目錄下 agents/ 與 mcp.yaml 的實際內容、以及 CHROMEDRIVER_PATH 指向的 ChromeDriver 版本是否與環境相符。
社群筆記