Devika AI:一款開源代理式人工智慧軟體工程師
總覽
Devika AI 是一款開源的代理式人工智慧軟體工程師。它的設計宗旨是理解複雜的人類指令,將其分解為可執行的步驟,進行研究,並編寫程式碼以實現指定目標。Devika 旨在成為 Cognition AI 開發的專有 AI 軟體工程師 Devin 的具競爭力開源替代品,並立下宏大目標,要在 SWE-bench 等基準測試中達到並最終超越其性能。
主要目的和目標使用者群體
- 主要目的:透過提供一個能夠在最少人類指導下處理複雜編碼任務的 AI 配對程式設計師,(包括建立新功能、修復錯誤或開發整個專案),徹底改變軟體開發。
- 目標使用者群體:開發人員、軟體工程師和團隊,他們正在尋找一種先進的 AI 助手,以自動化和簡化其編碼工作流程,特別是那些對開源解決方案以及利用大型語言模型進行軟體工程任務感興趣的人。
功能詳情與操作
- 指令理解:解釋針對軟體開發任務的高階人類指令。
- 任務分解:將複雜目標分解為可管理的順序步驟。
- 資訊研究:利用網路瀏覽功能和上下文關鍵字提取來收集相關資訊。
- 程式碼生成:根據研究和任務要求以多種程式語言編寫程式碼。
- LLM 支援:支援各種大型語言模型,包括 {Claude 3}, {GPT-4}, {Gemini}, {Mistral}, {Groq},以及透過 {Ollama} 支援本地 {LLMs}。建議為獲得最佳性能使用 {Claude 3} 模型。
- 動態狀態追蹤:視覺化並追蹤代理的進度與目前狀態。
- 聊天介面:實現自然語言互動,用於提供指令和接收更新。
- 專案管理:以專案為基礎組織和管理軟體開發任務。
- 可擴展架構:易於整合新功能。
- 網路介面:可透過網路瀏覽器存取,用於使用者互動和專案管理。
- 配置:允許使用者配置各種服務({Bing}, {Google Search}, {OpenAI}, {Gemini}, {Claude}, {Mistral}, {Groq}, {Netlify})的 {API} 金鑰和 {API} 端點({Bing}, {Google}, {Ollama}, {OpenAI})。
使用者利益
- 提高效率:自動化軟體開發過程的重大部分,加速專案完成。
- 減少手動工作:最小化編碼和研究任務中人為干預的需求。
- 增強生產力:作為 {AI} 配對程式設計師,讓開發人員專注於更高層次的設計和問題解決。
- 存取先進 AI:利用最先進的 {LLMs} 和 {AI} 規劃能力進行複雜程式碼生成。
- 開源靈活性:提供對專有解決方案透明且可自訂的替代方案。
- 簡化工作流程:將研究、規劃和編碼整合到一個單一、連貫的流程中。
相容性和整合
- 作業系統:需要 {Python} >= 3.10 和 < 3.12、{NodeJs} >= 18 以及 {Bun}。
- 瀏覽器整合:使用 {Playwright} 進行瀏覽功能。
- API 整合:可配置 {API} 金鑰,用於各種搜尋引擎({Bing}, {Google Search})和 {LLM} 提供商({OpenAI}, {Gemini}, {Anthropic}, {Mistral}, {Groq})。
- 部署:支援 {Netlify API} 金鑰,用於部署和管理網路專案。
- 本地 LLM 支援:與 {Ollama} 整合,用於執行本地語言模型。
客戶回饋和案例研究
- 目前處於早期開發/實驗階段,許多功能尚未實作或有錯誤。
- 旨在成為 {Cognition AI} 開發的 {Devin} 的具競爭力開源替代品,其目標「過於雄心勃勃」,希望達到並最終超越其 {SWE-bench Benchmarks} 分數。
- 歡迎社群貢獻以加速開發和功能實作。
- 提供演示(例如,
devika-pygame-demo.mp4),展示其能力。
存取和啟用方法
- 原始碼:可在 {GitHub} 上取得:
https://github.com/stitionai/devika。 - 安裝:
- 複製 {GitHub} 儲存庫。
- 導航到專案目錄。
- 建立虛擬環境並使用
uv venv和uv pip install -r requirements.txt安裝依賴項。 - 安裝 {Playwright} 以進行瀏覽功能:
playwright install --with-deps。 - 啟動 {Devika} 伺服器:
python devika.py。 - 對於前端,導航到
ui/目錄,執行bun install,然後執行bun run start。
- 存取:在網路瀏覽器中導航到
http://127.0.0.1:3001即可存取 {Devika} 網路介面。 - 配置:{API} 金鑰和端點透過 {UI} 中的設定頁面進行配置,該頁面會在根目錄中建立一個
config.toml文件。