Devika:开源 AI 代码审计与修复助手
关键词:Devika、AI Agent、代码审计、自动修复、开源、Devin 替代方案、Claude 3、GPT-4、Ollama([Devika AI][1])
摘要
Devika 是由 Stition.ai 开发的开源 Agentic AI 软件工程师,旨在理解高级人类指令,将其分解为可执行的步骤,进行相关信息的研究,并编写代码以实现给定的目标。([GitHub][2])
Devika 的核心优势在于其对安全性和代码质量的关注,能够自动识别潜在的安全漏洞,并提供修复建议。
本文将深入探讨 Devika 的架构、功能、部署方式以及实际应用场景,帮助开发者了解如何利用 Devika 提升代码安全性和开发效率。
目录
- 项目介绍与定位
- 核心功能与架构解析
- 部署与配置指南
- 实际应用案例
- 与其他工具的对比分析
- 常见问题与解决方案
- 未来发展方向
- 总结与实践建议
第一章|项目介绍与定位
GitHub 地址:https://github.com/stitionai/devika
Devika 是由 StitionAI 开源推出的一款多模态 Agentic 编程助手,目标是成为 Devin 的开源替代方案。它通过整合高级语言模型(如 Claude 3、GPT-4、Gemini 等)与任务分解、多步执行控制、文件系统交互能力,打造一个能够从自然语言指令中自动构建项目、审计代码并进行修复优化的 AI 软件工程师。
该项目强调“实际可落地”的全流程智能体工作流,尤其在安全性相关的代码修复、模糊性问题定位、代码功能说明生成等场景表现突出,适合嵌入到 DevSecOps 流水线或 AI 编程辅助平台中使用。
定位特点
- 类 Devin 开源 Agent 实践路径:具备规划、检索、执行、代码操作等子智能体协作流程。
- 安全感知代码生成与审计能力:内置文件解析、敏感信息识别与 LLM 纠错分析策略。
- 支持多种 LLM 接入:兼容 Claude 3、GPT-4、Gemini、Mistral、本地 Ollama(如 LLaMA3)等模型,适配不同资源与隐私需求。
- 结构清晰、插件式架构:任务分解、状态管理、上下文缓存与执行器模块均可自定义扩展,易集成至企业级系统。
- 前端可视化任务流追踪界面:通过 WebUI 显示任务进度、Agent 状态、生成代码及文件变化。
Devika 的目标不仅是构建一个能“写代码”的 LLM 接口,而是一个面向多任务、多模型、多轮指令环境下的 AI 工程助理,为开源社区提供可验证、可部署的全栈智能体基座。
第二章|核心功能与架构解析
Devika 采用模块化结构设计,从 Prompt 接收到最终代码落盘执行,贯穿“语言 → 意图识别 → 任务规划 → 文件操作 → 多轮迭代”完整链条,整体系统架构包括:
1. 智能体协作引擎(Agent Engine)
- 将用户输入分解为带上下文的多步任务;
- 根据任务语义动态调用合适的模型与插件;
- 支持状态追踪(Memory)与进程回滚(Undo Stack)机制;
- 所有 Agent 操作都持久化记录,便于审计与回溯。
架构示意:
User Prompt → Planner → Task Graph → Executor → File Ops → LLM Feedback → Update Graph
2. 多模型集成与动态调用策略
支持通过统一接口接入以下模型:
模型类型 | 引擎名称 | 接入方式 |
---|---|---|
API 模型 | OpenAI | openai API |
API 模型 | Claude | anthropic API |
API 模型 | Gemini | google API |
本地模型 | LLaMA3 | Ollama (RESTful) |
可拓展 | 自定义模型 | 通过 models/ 插件新增 |
用户可通过 .env
文件配置默认模型,运行时也可通过前端界面切换。模型调用具备超时兜底与回退机制。
3. 项目文件系统交互模块
- 可自动创建、修改、读取、审查项目文件;
- 拥有沙盒模式与文件变更预览机制;
- 支持对当前目录进行静态审计与高亮问题区域定位;
- 输出代码均以“差异补丁”形式应用,避免全文件覆盖式破坏。
典型指令处理流程:
User: 请检查我的 utils.py 是否存在安全漏洞
→ Devika 分析函数 → 调用 LLM 审计 → 定位 XSS / Hardcode 问题 → 输出修复建议与 diff
4. WebUI 与自然语言交互界面
前端基于 React + FastAPI WebSocket 实现:
- 展示任务流图(含嵌套子任务);
- 支持代码预览、文件打开、指令历史记录;
- 支持直接编辑已生成代码并反馈至 Agent;
- 支持 Chat 形式连续任务链构建与修改。
5. 审计与安全修复能力设计
- 内置模型 Prompt 构造规范,优先启发 LLM 输出函数级别问题点;
- 结合 OSSInsight 数据与语料,构建真实场景代码审查训练集;
- 支持命令如“请修复依赖中的不安全版本”“识别 hardcoded secret”等问题自动审计。
Devika 的架构设计更倾向于开发者主导、Agent 辅助的交互闭环,而非完全自动化执行流程,确保在 AI 介入安全与代码修改场景中保持可控性。
第三章|部署与配置指南
Devika 提供基于本地开发环境的完整部署方案,主要包括 Python 后端、LLM 模型调用配置、环境变量设置及前端界面启动。适用于 Mac、Linux 和 Windows WSL 环境。
1. 系统环境要求
- 操作系统:MacOS / Linux / Windows (WSL2 推荐)
- Python ≥ 3.10
- Node.js ≥ 18(用于前端构建)
- Poetry(用于后端依赖管理)
- Docker(如需本地部署 Ollama 模型)
2. 克隆并安装依赖
git clone https://github.com/stitionai/devika.git
cd devika
poetry install
若未安装 Poetry,可先执行:
pip install poetry
安装完成后激活虚拟环境:
poetry shell
3. 环境变量配置(.env)
Devika 使用 .env
文件加载所有模型 Key 和服务端口等信息。参考 .env.example
复制为本地配置文件:
cp .env.example .env
根据所用模型服务选择填写:
OPENAI_API_KEY=sk-xxxx
ANTHROPIC_API_KEY=
OLLAMA_BASE_URL=http://localhost:11434
(如使用本地模型)
如使用 Ollama,本地需运行模型服务:
ollama run mistral
支持的模型包括 mistral、llama3、codellama 等。
4. 启动后端服务
python devika/app.py
默认监听端口为 localhost:8000
,服务启动成功后等待前端连接。
5. 构建与启动前端(可选)
前端用于可视化展示任务流与交互面板:
cd frontend
npm install
npm run dev
前端默认运行在 localhost:3000
,可通过浏览器访问。
6. 常见配置说明
变量名 | 说明 |
---|---|
MODEL_PROVIDER | 选择默认模型,如 openai/ollama |
PROJECT_DIR | Devika 操作的项目根目录路径 |
TIMEOUT | 模型响应超时时间(秒) |
ALLOW_FILE_WRITE | 是否允许写入本地文件 |
确保 .env
文件中所有路径真实存在,避免运行时找不到目标文件或生成目录异常。
通过上述部署步骤,Devika 即可在本地完成 LLM 驱动的任务执行与代码处理链路。
第四章|实际应用案例
以下列举几个 Devika 在实际工程中的典型使用场景,展示其代码生成、审计、修复与文件交互的核心能力。
案例一:Python 工具函数安全审计与修复
背景:项目中存在一组处理日志的工具函数,历史维护人员存在 hardcoded 密钥与不安全路径拼接逻辑。
操作流程:
-
在项目根目录启动 Devika;
-
输入指令:
Please audit utils/logger.py for hardcoded secrets and unsafe path usage.
-
Devika 自动读取文件 → 拆分函数级结构 → 调用模型审计;
-
高亮指出如下问题:
- 明文字符串
API_KEY = 'abcd1234'
; os.path.join
使用拼接外部输入路径无检查;
- 明文字符串
-
自动生成如下修复建议:
- 建议使用环境变量替代硬编码;
- 加入
os.path.abspath()
和os.path.exists()
判断逻辑;
-
修复结果以 diff 格式展示,用户可一键应用或选择跳过。
案例二:自然语言生成项目结构与示例文件
背景:某开发者需构建一个包含爬虫脚本、日志系统、HTML 渲染模板的项目原型。
操作流程:
-
输入指令:
Build a scaffold for a web scraping tool that logs to a file and renders results in HTML.
-
Devika 执行以下任务:
- 创建项目目录结构(scraper/, templates/, logs/);
- 生成主脚本
scraper.py
,包含 requests + BeautifulSoup 示例; - 创建
log_handler.py
,封装 file logger; - 输出
result.html
模板文件及简单渲染逻辑。
-
所有文件在项目目录中可见,用户可继续使用 Chat 指令进行二次修改,如“Add pagination logic to scraper.py”。
该场景体现 Devika 在任务分解、语义生成与项目级落盘方面的完整闭环能力。
案例三:审计外部依赖与版本修复建议
指令:
Please check requirements.txt for vulnerable or outdated packages.
结果:
- Devika 分析 pip 包依赖;
- 调用 CVE 数据源模型评估版本风险;
- 输出建议如“Upgrade flask from 1.0 → 2.3.3 due to CVE-2022-xxxx”;
- 支持自动更新 requirements.txt。
Devika 在真实项目中的表现证明其在开发者与 LLM 之间构建了可控、真实、工程可落地的中介链路。
第五章|与其他工具的对比分析
Devika 所定位的“AI 代码助手 + 多轮任务执行智能体”赛道中,已存在多个代表性产品与开源项目,如 Devin、OpenDevin、Continue、Code Interpreter 模块等。以下将从功能、部署、控制性与工程可落地性四个维度进行对比。
1. 与 Cognition Devin(闭源)对比
对比项 | Devika(开源) | Devin(闭源) |
---|---|---|
是否开源 | ✅ 完全开源 | ❌ 闭源,仅视频演示 |
模型灵活性 | ✅ 可切换 Claude / GPT / Gemini / Ollama | ❌ 固定模型配置,用户无法控制 |
可控性 | ✅ 所有中间步骤可查看和编辑 | ❌ 多为黑盒执行 |
安全审计能力 | ✅ 明确内置敏感内容检测、代码结构检查流程 | ❓ 未公开细节 |
部署门槛 | ✅ Docker + 本地 Python 依赖 | ❌ 无法部署,未开放接口 |
结论:Devin 提供了视频级“AI 接管 IDE”的形态展示,而 Devika 提供了真实工程路径下用户可部署、可验证、可扩展的替代实践方案。
2. 与 OpenDevin(开源)对比
OpenDevin 是 Devin 开源仿制版本,强调工作区建模、Shell 命令执行等功能,核心由 Tauri + LangChain 驱动。
对比项 | Devika | OpenDevin |
---|---|---|
架构复杂度 | 中等,集中于任务与代码层 | 偏重“开发桌面仿真”架构,组件较重 |
安全审计 | ✅ 明确内嵌 | ❌ 偏重 CLI + Shell,安全机制依赖宿主环境 |
UI 交互能力 | ✅ Web UI,任务可视化状态流 | 中等,使用 Electron / Tauri 本地渲染 |
Shell 调用能力 | ✅ 支持 fileOps + Python subprocess | ✅ 主打 Shell 管控(但需用户配置沙箱) |
落地复杂度 | ✅ 普通 LLM 工程师可 1 小时内部署使用 | 偏重硬件资源和系统权限控制 |
结论:OpenDevin 适合重度模拟操作系统开发环境,Devika 更适合代码层操作、审计、文件任务链搭建。
3. 与 Continue.dev(代码 IDE 插件)对比
Continue 是 VSCode / JetBrains 的 LLM 辅助插件,强调 IDE 内交互,而 Devika 为独立 Agent 交互式平台。
对比项 | Devika | Continue.dev |
---|---|---|
使用方式 | 独立 WebUI + API + 文件系统结合 | 插件形式,依赖 IDE |
多轮任务规划 | ✅ 支持,任务链可嵌套 | ❌ 仅单轮上下文调用 |
代码修复建议 | ✅ 提供差异修复、理由说明 | ✅ 支持修改建议,但依赖 IDE 当前 buffer |
文件变更持久化 | ✅ 有独立 sandbox 与 fileOps 模块 | ❌ 无持久化机制,需手动保存 |
结论:Continue 更偏向“轻量交互”,适合已有 IDE 用户,而 Devika 更适合独立工程流与完整任务链编排。
第六章|常见问题与解决方案
问题一:Devika 无法访问模型接口(超时或返回空)
原因:
.env
配置错误;- 模型服务未启动或 API Key 失效;
- 本地网络请求异常(代理 / DNS);
解决方案:
- 检查
.env
文件内容与密钥是否正确; - 使用 curl 测试模型 API 是否可用;
- 更换模型 provider 测试 fallback;
问题二:前端界面白屏或任务不可用
可能原因:
- Node.js 环境不符合版本要求;
npm install
安装依赖失败;- 后端 WebSocket 服务未连接成功;
解决方案:
- 建议使用 Node.js ≥ 18;
- 清除
node_modules
重新安装; - 查看
devika/app.py
是否正常运行,确认 8000 端口是否启动。
问题三:文件系统读写失败或无响应
原因:
PROJECT_DIR
未设置或不存在;- 权限不足(Linux/macOS);
ALLOW_FILE_WRITE=false
;
解决方案:
- 创建
.env
中指定的PROJECT_DIR
; - 设置权限:
chmod -R 755 ./project
; - 确保运行 Devika 的用户具有写入权限;
- 设置
ALLOW_FILE_WRITE=true
开启写入功能。
问题四:生成代码语义偏差大或重复输出
原因:
- Prompt 不够结构化;
- 模型响应冗余,未经过后处理裁剪;
- 上下文状态未清除导致冲突;
解决方案:
- 使用精简明确的英文指令;
- 在指令前加
# Instruction:
标签引导; - 使用 Devika 的
reset()
指令清空状态; - 检查任务链是否存在重复路径或循环依赖。
通过以上问题与解决方案的梳理,可有效提升 Devika 在企业部署、个人开发与教育训练中的可用性与稳定性。
第七章|未来发展方向
Devika 作为开源 Agentic 编程助手,其技术架构已具备稳固的功能模块,但整体生态仍处于快速演进阶段。以下从模型融合、插件架构、安全闭环、Agent 多角色演化等方面展开未来升级方向的分析。
1. 支持 Agent 多角色分工协作机制
目前 Devika 为单智能体主导的任务处理结构,后续将引入多 Agent 协作模型:
- 规划者(Planner):负责解析用户意图、任务拆分;
- 审计者(Auditor):专注安全漏洞扫描、性能瓶颈提示;
- 执行者(Executor):负责生成代码与落盘;
- 回顾者(Reviewer):负责验证输出、回溯上下文并给出改进建议。
多 Agent 框架将通过内部 Task Graph 结构串联,构建真实软件工程中类似“产品-开发-安全-审查”的角色模拟系统。
2. 本地推理能力强化与资源调度适配
面向企业内部私有部署与数据隔离要求,Devika 将强化本地模型推理支持:
- 深度整合 Ollama 运行时框架,支持 GPU 加速与并发控制;
- 提供模型路由插件,可根据任务类型动态选择模型(代码生成用 Claude、审计用 GPT-4 等);
- 构建 Prompt 优化器,根据任务内容实时调整 prompt 模板与 temperature、max_token 等参数。
此能力将为 Devika 在数据敏感性高或离线环境(如金融、政企)中提供更高的可控性。
3. 插件生态系统建设
为了适应不同开发者与项目场景,Devika 计划支持以下类型的插件:
- 模型插件(支持 HuggingFace 模型、llama.cpp 等);
- 工具插件(如执行命令行、调用外部 API、数据库查询);
- 文件系统插件(支持 GitOps、只读挂载、NAS 同步等);
- 审计规则插件(支持 OWASP、自定义规则扫描);
- UI 插件(支持自定义前端交互、任务流渲染主题)。
插件以 Python module + JSON manifest 形式加载,用户通过 CLI 或 WebUI 可便捷添加与启用。
4. 多轮语义补偿机制与状态记忆增强
在多轮交互任务中,Devika 当前上下文窗口受限,未来将引入以下机制:
- 长时记忆支持:集成 LangChain memory store / SQLite 存储历史上下文摘要;
- 增强语义补偿:结合前轮执行失败信息,自动优化下一轮指令构造;
- Prompt Repair 模块:当模型输出结构异常时,触发自愈修复流程,提升鲁棒性。
此类能力将显著提升复杂任务执行中模型链式响应的连贯性和成功率。
第八章|总结与实践建议
Devika 的核心价值在于:将复杂软件工程流程拆解为可控、可审计、可调用的多轮交互任务链,并通过多模型接入能力与结构化执行器实现“Agent 真正落地工程实践”的路径构建。
从当前架构和使用情况总结出以下实践建议:
1. 在中小项目中进行功能试点
可用于如下实际任务:
- 自动构建项目脚手架;
- 现有代码的安全漏洞扫描与修复建议;
- 多模块文件批量重构(如重命名、分层);
- 自动生成代码注释与接口文档草案。
通过本地部署 Devika 并接入轻量项目代码仓库,可快速验证其实际代码操作与语义理解能力。
2. 企业环境部署时注意安全隔离
如用于企业实际代码仓库建议配置如下:
- 使用 Ollama 本地模型,避免代码泄露;
- 关闭 WebSocket 调试模式,仅保留 API 接口;
- 禁止写入敏感目录,使用
sandbox/project
虚拟目录操作; - 启用所有审计器插件,构建“AI × 安全开发”闭环。
3. 多模型融合建议场景配置
场景 | 推荐模型 | 说明 |
---|---|---|
代码生成 | Claude 3, GPT-4 | 保守风格,结构清晰 |
安全审计 | GPT-4, Command R | 支持 CVE 检索与代码模式识别 |
修复建议 | Claude, Gemini | 语言表达自然,语义精度高 |
本地部署 | LLaMA3 via Ollama | 性能可控,隐私安全 |
Devika 是目前最具工程落地可行性的 AI 编程智能体开源项目之一。其在 Agent 框架完整度、文件系统交互、安全审计能力、跨模型适配与部署灵活性方面均表现优异,适合希望构建自有 AI 开发平台、增强 IDE 智能辅助能力或打造 LLM DevOps 工具链的团队采用并深度改造。未来,随着插件机制与角色演化的逐步完善,Devika 有望在软件智能体生态中占据关键地位。
个人简介
作者简介:全栈研发,具备端到端系统落地能力,专注人工智能领域。
个人主页:观熵
个人邮箱:privatexxxx@163.com
座右铭:愿科技之光,不止照亮智能,也照亮人心!
专栏导航
观熵系列专栏导航:
AI前沿探索:从大模型进化、多模态交互、AIGC内容生成,到AI在行业中的落地应用,我们将深入剖析最前沿的AI技术,分享实用的开发经验,并探讨AI未来的发展趋势
AI开源框架实战:面向 AI 工程师的大模型框架实战指南,覆盖训练、推理、部署与评估的全链路最佳实践
计算机视觉:聚焦计算机视觉前沿技术,涵盖图像识别、目标检测、自动驾驶、医疗影像等领域的最新进展和应用案例
国产大模型部署实战:持续更新的国产开源大模型部署实战教程,覆盖从 模型选型 → 环境配置 → 本地推理 → API封装 → 高性能部署 → 多模型管理 的完整全流程
Agentic AI架构实战全流程:一站式掌握 Agentic AI 架构构建核心路径:从协议到调度,从推理到执行,完整复刻企业级多智能体系统落地方案!
云原生应用托管与大模型融合实战指南
智能数据挖掘工程实践
Kubernetes × AI工程实战
TensorFlow 全栈实战:从建模到部署:覆盖模型构建、训练优化、跨平台部署与工程交付,帮助开发者掌握从原型到上线的完整 AI 开发流程
PyTorch 全栈实战专栏: PyTorch 框架的全栈实战应用,涵盖从模型训练、优化、部署到维护的完整流程
深入理解 TensorRT:深入解析 TensorRT 的核心机制与部署实践,助力构建高性能 AI 推理系统
Megatron-LM 实战笔记:聚焦于 Megatron-LM 框架的实战应用,涵盖从预训练、微调到部署的全流程
AI Agent:系统学习并亲手构建一个完整的 AI Agent 系统,从基础理论、算法实战、框架应用,到私有部署、多端集成
DeepSeek 实战与解析:聚焦 DeepSeek 系列模型原理解析与实战应用,涵盖部署、推理、微调与多场景集成,助你高效上手国产大模型
端侧大模型:聚焦大模型在移动设备上的部署与优化,探索端侧智能的实现路径
行业大模型 · 数据全流程指南:大模型预训练数据的设计、采集、清洗与合规治理,聚焦行业场景,从需求定义到数据闭环,帮助您构建专属的智能数据基座
机器人研发全栈进阶指南:从ROS到AI智能控制:机器人系统架构、感知建图、路径规划、控制系统、AI智能决策、系统集成等核心能力模块
人工智能下的网络安全:通过实战案例和系统化方法,帮助开发者和安全工程师识别风险、构建防御机制,确保 AI 系统的稳定与安全
智能 DevOps 工厂:AI 驱动的持续交付实践:构建以 AI 为核心的智能 DevOps 平台,涵盖从 CI/CD 流水线、AIOps、MLOps 到 DevSecOps 的全流程实践。
C++学习笔记?:聚焦于现代 C++ 编程的核心概念与实践,涵盖 STL 源码剖析、内存管理、模板元编程等关键技术
AI × Quant 系统化落地实战:从数据、策略到实盘,打造全栈智能量化交易系统
大模型运营专家的Prompt修炼之路:本专栏聚焦开发 / 测试人员的实际转型路径,基于 OpenAI、DeepSeek、抖音等真实资料,拆解 从入门到专业落地的关键主题,涵盖 Prompt 编写范式、结构输出控制、模型行为评估、系统接入与 DevOps 管理。每一篇都不讲概念空话,只做实战经验沉淀,让你一步步成为真正的模型运营专家。
🌟 如果本文对你有帮助,欢迎三连支持!
👍 点个赞,给我一些反馈动力
⭐ 收藏起来,方便之后复习查阅
🔔 关注我,后续还有更多实战内容持续更新