📌 项目地址stitionai/devika | ⭐ 19,509 颗星 | 🔧 Python | 📜 MIT

项目现状:README第一行就告诉你别抱期待

今年3月Cognition Labs发布Devin演示后,开源社区两周内推出Devika。README直接致敬Devin,目标是在SWE-bench上追平甚至超越Devin。但到9月,项目获得19509颗星的同时,README第一行写的是“Checkout Opcode, the second iteration of Devika. New version out soon!”。紧接着是红色警告:“当前处于极早期开发/实验阶段,大量功能未实现或损坏。”这不是谦虚,是事实。

Devika的架构看起来很美:Planner、Searcher、Coder、Tracker四个模块通过事件总线协作。但实际跑三轮就暴露了问题——它能在40秒内完成“写一个冒泡排序”,却在“写Flask博客”这类多步任务中连续失败。下面我拆开来讲。

架构拆解:Planner-Searcher-Coder-Tracker,典型但脆弱

Devika把工作流切成四个独立模块:

  • Planner:接收人类指令,分解成子任务队列,按顺序执行
  • Searcher:根据Planner给出的关键词联网搜索,返回文本
  • Coder:把Searcher结果和任务描述拼成prompt,调用LLM写代码
  • Tracker:记录每个agent的状态变化,通过Web UI实时展示

模块之间用事件总线通信,模型层做了抽象,支持Claude 3、GPT-4、Gemini、Mistral、Groq以及Ollama托管的本地模型。README特别指出“最佳性能使用Claude 3系列”。

这套设计在写单步任务时能跑通(比如冒泡排序),但多步任务一上压力就崩。原因在于:

  • Planner没有回溯或容错机制。子任务失败后不会重试或回滚,整个项目卡住不动。
  • Searcher不设超时,碰到慢页面直接挂死。返回的搜索结果噪声大,比如搜索“Flask用户认证教程”时抓了一堆Flask简介和Django教程。
  • Coder上下文窗口有限。当Searcher返回大量无关内容,prompt长度超标,LLM开始虚构不存在的Flask扩展。
  • Tracker存在内存泄漏——长时间运行会堆积状态快照,日志里没看到清理逻辑。

代码里随处可见TODO和临时hacks。这些缺陷并不是Devika特有,而是当前“LLM+搜索+代码生成”Agent的普遍瓶颈:规划缺乏鲁棒性、搜索结果无法有效过滤、上下文长度硬限制。Devika没有解决任何一个,但它把失败点清晰地暴露在代码里。

实际测试:单步可行,多步崩溃

我按README建议配了Claude 3 Sonnet(API密钥在UI设置页配置),跑了三轮测试。

第一轮:写一个冒泡排序。Planner拆成“理解需求-搜索-生成代码”。Searcher抓了Wikipedia的Python排序页面,Coder输出可执行脚本。三个模块各司其职,40秒跑完。这是Devika的最优场景——任务明确,搜索范围窄,代码短。

第二轮:写一个带用户登录的Flask博客,SQLite存数据。Planner拆出12个子任务。执行到第4步“搜索Flask用户认证教程”时,Searcher返回5个不相关页面(包括Flask简介、SQLAlchemy文档、Django教程)。Coder拿到上下文后提示超限,开始编造不存在的Flask扩展。前端报“Planner error”,不是改API密钥能解决的问题。这是典型的多步累积错误——搜索噪声导致上下文污染,LLM胡说八道,Planner无法恢复。

第三轮:把第二轮重跑两次。一次直接崩溃,日志显示Planner状态机卡在等待子任务完成的循环里,超时后抛出异常。另一次生成了一些碎片代码,但没有把app.py、models.py、templates整合成项目目录。Coder只输出单文件,忽略项目结构。

三轮下来,结论很清晰:当前版本只适用于单步、简单的代码生成任务。任何需要多步规划、多文件协调、且依赖外部信息检索的任务,成功率极低。

安装指南:准备好心理准备

官方Requirements:

  • Python >= 3.10
  • Node.js == 18(我用20报错,换nvm切到18才通过)
  • 安装uv(Python包管理器,链接:github.com/astral-sh/uv)
  • 安装bun(JavaScript运行时,链接:bun.sh/docs/installation)
  • 若用本地模型,按ollama配置指南(docs/Installation/ollama.md)
  • 若用API模型,在Web UI设置页填密钥

uv和bun不算常见工具,如果没用过,配置时间至少加15分钟。macOS上安装顺利,但README没有给Windows用户任何指引。目前没有Docker镜像。考虑到README已宣布停止大修当前版本,投时间配置这个版本,前期收益很低。

谁该试试,谁该等新版

适合三类人:

  1. 研究Agent系统的学生或工程师。Devika的架构是很好的教学案例——建一个最简单的任务(比如“打印当前时间”),跟踪模块间事件通信和状态流转,从实际bug和TODO中学到的东西比读论文多。
  2. 愿意动手修bug的开发者。项目明确欢迎贡献。早期项目的特点是大量可改进点。修一个issue就能把系统通信逻辑摸清楚。
  3. 做架构设计参考的人。如果你想设计一个联网查资料并写代码的工具,它的模块拆分方式值得借鉴。同时关注它没解决的问题:如何防止LLM生成不可运行代码、如何处理搜索结果噪声、如何做上下文长度控制。Devika自己也没解决,但你能从它的失败里总结设计原则。

以下人群不建议碰:

  • 普通开发者,想用AI自动写代码提效。我花两小时搭环境,跑三次“排序算法”成功一次,第四次“写一个Flask API加测试”直接崩。浪费时间比手写还多。

关注Opcode:第二代重构中

README第一句话就在推Opcode,称为“the second iteration of Devika”。从命名看,Opcode可能从底层重写架构,修复规划不稳定、状态泄漏、上下文溢出等核心问题。等新版发布后,我会再写一篇实际测评。

当前版本更适合“收藏等更新”,而不是“下载跑任务”。

这篇文章对你有帮助吗?

发表回复