返回模型列表

Dulus – 开源的 CLI AI Agent,可驱动多模型工具调用

AI科技编辑部
RSS 订阅
Dulus – 开源的 CLI AI Agent,可驱动多模型工具调用 官方截图
(图片来源官方截图)

导读摘要:

Dulus 是一个约 12K 行 Python 代码的开源命令行 AI Agent 框架,支持 Claude、GPT、Gemini、DeepSeek、Kimi、Qwen 等 40 余种主流语言模型。其核心创新在于能够直接捕获浏览器中网页版 AI 的访客会话,将其转化为具备文件读写、代码编辑、Bash 执行、Web 搜索等 27 种工具调用能力的本地代理。Dulus 同时支持 MCP(Model C...

1. Dulus是什么

Dulus 是一个约 12K 行 Python 代码的开源命令行 AI Agent 框架,支持 Claude、GPT、Gemini、DeepSeek、Kimi、Qwen 等 40 余种主流语言模型。其核心创新在于能够直接捕获浏览器中网页版 AI 的访客会话,将其转化为具备文件读写、代码编辑、Bash 执行、Web 搜索等 27 种工具调用能力的本地代理。Dulus 同时支持 MCP(Model Context Protocol)、插件热加载、子代理协作、离线语音交互、持久记忆与自动快照机制,并提供 PyQt6 桌面 GUI、Flask WebChat、Telegram Bot 及终端 REPL 四种交互入口,在工具调用 Agent 领域实现了从零密钥启动到全链路离线能力的完整覆盖。

dulus-cli-ai-agent 官网截图
(图片来源官方截图)

技术定位与领域: Dulus 属于 AI Agent 与工具调用框架的交叉领域,专注于为开发者提供命令行环境下的多模型统一调度与本地工具自动化能力。不同于传统 IDE 插件或单一模型绑定方案,Dulus 以模型中立、热插拔插件、浏览器劫持会话为核心差异化特征,定位于个人编码助手、零预算 AI 实验、离线保密环境自动化等场景。

研发背景: 该项目由独立开发者 KevRojo 发起并维护,依托开源社区协作持续迭代。研发动机源于现有 AI Agent 方案普遍存在的三大痛点:依赖付费 API Key、模型供应商锁定、插件生态封闭。Dulus 通过浏览器访客会话劫持技术实现零成本启动,通过统一抽象层实现模型实时切换,通过 Auto-Adapter 机制实现任意 Python 仓库的零配置插件化,旨在打破工具调用 Agent 的使用门槛和生态壁垒。

核心价值: Dulus 解决了传统 AI Agent 部署成本高、模型选择受限、扩展能力弱的核心问题。其零密钥启动模式让用户无需信用卡或 API Key 即可在 30 秒内获得完整工具调用能力;模型中立架构允许同一会话中通过 /model 命令在 Claude、DeepSeek、Kimi 等模型间无缝切换,并支持自动降级链;插件热插拔生态使任意 Python 仓库或 MCP 服务器都能即时成为 Agent 能力的一部分,大幅降低了功能扩展的等待时间。

技术特点: Dulus 的技术架构包含三大核心创新:浏览器会话劫持引擎可自动捕获 Gemini、Claude.ai 等网页的访客会话,绕过 API 认证直接驱动工具调用;Auto-Adapter 运行时分析 Python 仓库的入口与参数,实现零配置热加载;多界面统一核心确保终端、Web、桌面 GUI 和 Telegram 共享同一 Agent 状态与记忆,用户可跨设备无缝切换交互面。此外,全链路离线能力(Whisper-cpp 语音输入、Kokoro TTS 语音输出、Ollama 本地模型)使其在完全断网环境下仍能正常工作。

2. 主要功能

  • 零密钥网页会话捕获: 自动劫持 Gemini、Claude.ai、Kimi.com、DeepSeek 等浏览器标签页中的访客会话,将网页对话直接转化为具备完整工具调用能力的本地 Agent。用户无需注册、无需 API Key,首次运行按向导打开对应网页即可开始使用,极大降低了入门门槛。

  • 27 种内置工具: 涵盖文件读写(Read、Write)、代码编辑(Edit)、Bash 执行、全局搜索(Glob、Grep)、Web 抓取(WebFetch)、Web 搜索(WebSearch)、Jupyter Notebook 编辑、系统诊断、记忆管理、任务看板、子代理调用等。所有工具通过统一接口暴露给模型,支持动态组合与链式调用。

  • 多提供商模型切换: 支持 Anthropic、OpenAI、Google、DeepSeek、Kimi、Qwen、Zhipu、MiniMax、Ollama、LM Studio 及自定义端点,共计 40+ 模型。在会话中通过 /model 命令即可实时切换提供商与模型,无需重启 Agent,且支持自动降级链(当主模型不可用时自动回退到备用模型)。

  • MCP 与插件生态: 在项目目录放置 .mcp.json 文件即可注册任意 MCP 服务器,扩展 Agent 的工具集。Auto-Adapter 机制可零配置热加载任意 Python 仓库为插件,自动分析仓库的入口函数、参数类型与返回值,无需手动编写适配代码。Composio 集成提供 800+ 预置技能。

  • 子代理与任务管理: 支持在独立 git worktree 中生成 coder、reviewer、researcher 等类型的子代理,通过消息传递机制进行协作。内置任务看板可跟踪子代理的进度、状态与输出,适合大型模块的分布式开发场景。

  • 离线语音与唤醒: 基于 Whisper-cpp 实现离线语音输入,无需联网即可将语音转文字;Kokoro TTS 实现语音输出,支持多种语音风格。自定义唤醒词(如 “hey dulus”)可在后台持续监听,实现免手动唤醒的语音交互,适用于保密网络或户外场景。

  • 持久记忆与快照: 双范围记忆机制(用户级 + 项目级)按置信度与最近度排序存储关键信息,支持跨会话上下文保持。每轮对话自动创建 Checkpoints,记录对话历史与文件状态,用户可一键回滚到任意历史节点,避免误操作导致的数据丢失。

  • 多模态交互界面: 提供 REPL 终端、Flask WebChat(局域网可访问)、PyQt6 原生桌面 GUI 及 Telegram Bot 四种交互方式。所有界面共享同一 Agent 核心与记忆状态,用户可在不同设备间无缝切换,例如在桌面启动任务后通过手机 Telegram 查看进度或发送新指令。

3. 如何使用

| 环境要求与安装: 支持 Linux、macOS 及 Windows(WSL 推荐)。Python 版本要求 3.10 及以上。执行 pip install dulus 即可从 PyPI 安装;或使用一键安装脚本 `curl -fsSL https://raw.githubusercontent.com/KevRojo/Dulus/main/install.sh |

  1. 配置密钥与模型选择: 若使用需要 API Key 的模型(如 Claude、GPT),设置环境变量如 export ANTHROPIC_API_KEY=sk-ant-...。若使用本地模型(Ollama),确保已安装 Ollama 并拉取模型。若使用零密钥模式,则无需任何密钥,直接进入下一步。

  2. 启动 REPL 与模型切换: 终端输入 dulus 进入交互式 REPL 环境。首次启动会提示选择模型,可用 /model nvidia-web/deepseek-r1 或 /model ollama/qwen2.5-coder 等命令切换模型。支持在会话中随时切换,无需重启。

  3. 开启零密钥模式: 首次运行时按向导提示打开 Gemini 或 Claude.ai 的浏览器访客页面,Dulus 自动捕获会话 Cookie 与 Token。此后无需 API Key 即可进行工具调用。注意:浏览器需保持登录状态,会话过期后需重新捕获。

  4. 执行任务与扩展能力: 直接输入自然语言指令,如 “refactor the auth module”,Agent 会自动读取文件、编辑代码、运行测试并提交结果。如需扩展工具集,使用 /plugin install 仓库名@URL 热加载任意 Python 工具库,或通过 /mcp 注册外部 MCP 服务器。所有插件无需重启即刻生效。

最佳实践: 建议在项目根目录运行 Dulus,以便自动识别项目上下文;对于大型任务,使用子代理分配不同模块,通过任务看板监控进度;定期使用 /checkpoint 创建快照,避免文件修改不可逆。

4. 优缺点分析

优点
零密钥启动: 无需 API Key、信用卡或登录,通过浏览器访客会话捕获即可获得完整工具调用能力,将使用门槛降至极致,特别适合学生和预算有限的开发者。
模型中立与实时切换: 不绑定单一提供商,同一会话中 /model 命令可在 40+ 模型间无缝切换,支持自动降级链,避免因单一模型故障导致任务中断。
全链路离线能力: 支持 Whisper-cpp 离线语音输入、Kokoro TTS 语音输出、Ollama 本地模型,可在完全断网环境下运行,适配保密网络与内网场景。
多界面统一核心: 终端、Web、桌面 GUI、Telegram 共享同一 Agent 核心与记忆状态,用户可按场景自由切换交互面,实现跨设备无缝协作。

5. 同类工具对比

对比维度 Dulus Claude Code Aider
提供商锁定 多提供商中立,/model 实时切换 仅 Anthropic Claude 多模型,但需手动配置
API Key 要求 可选零密钥(浏览器劫持) 必须 API Key 必须 API Key
本地/离线运行 完整支持(Ollama + 离线语音) 不支持 支持本地模型,无离线语音
插件生态 Auto-Adapter 任意 Python 仓库 + MCP + Composio 800+ 技能 无插件系统 支持自定义工具,生态较小
子代理/多 Agent 内置 coder、reviewer、researcher 等多类型子代理与消息传递 无原生子代理 支持多文件编辑,无独立子代理
语音交互 离线 Whisper + Kokoro TTS + 唤醒词 不支持 不支持
界面多样性 终端、Web、PyQt6 GUI、Telegram 四种 仅终端 仅终端
记忆与快照 持久记忆(用户级+项目级)+ 自动 Checkpoint 回滚 会话级记忆 无原生快照机制

选型建议: 对于追求零成本启动、多模型灵活切换和离线场景的用户,Dulus 是当前最具综合优势的选择,尤其适合学生、个人开发者和保密环境用户。其浏览器劫持模式虽然存在稳定性风险,但对于预算敏感的实验性项目而言,利大于弊。若用户已深度绑定 Anthropic 生态且仅需终端交互,Claude Code 在代码理解与生成质量上仍有独特优势,但其闭源特性限制了定制化能力。对于专注于编码辅助且偏好轻量级方案的用户,Aider 在代码重构与 Git 集成方面表现成熟,但缺乏多界面和语音交互。Open Interpreter 作为通用工具调用框架,在 Python 生态集成上较为灵活,但插件扩展和子代理能力不及 Dulus。

6. 编辑点评

Dulus 在 AI Agent 工具调用领域展现出了显著的技术创新性。其浏览器会话劫持技术巧妙绕过了传统 API 认证瓶颈,将网页版 AI 的免费能力转化为本地工具调用,这一设计思路在同类产品中尚属首创。Auto-Adapter 的零配置热加载机制,通过运行时分析 Python 仓库的入口点与参数签名,实现了无需手动适配的插件化扩展,大幅降低了生态建设的摩擦成本。模型中立架构与实时切换能力,使得用户可以根据任务特性(如代码生成选 Claude、推理选 DeepSeek、长文本选 Gemini)动态组合最优模型链,这在单一模型绑定的方案中无法实现。

从实用价值来看,Dulus 真正做到了“开箱即用”与“深度可扩展”的平衡。零密钥模式让初学者在 30 秒内即可体验完整的 Agent 工具调用,而 MCP 集成与子代理机制又为高级用户提供了企业级协作能力。全链路离线能力的加入,使其在政府、军工等保密网络场景中具有不可替代的优势。四种交互界面的统一核心设计,体现了对用户场景多样性的深刻理解——开发者可以在桌面 GUI 中启动复杂任务,随后通过手机 Telegram 监控进度或发送补充指令。

适用人群方面,Dulus 主要面向三类用户:一是预算有限但希望体验前沿模型工具调用的学生和 AI 爱好者;二是需要跨模型协作的开发者,尤其是涉及多模型对比或模型降级容灾的场景;三是在离线或保密环境中工作的技术运维人员,他们可以利用本地模型和离线语音完成自动化任务。对于追求极致稳定性和商业支持的团队,Dulus 目前仍依赖社区维护,建议在非关键任务中先行试用。

未来发展潜力巨大。随着 MCP 协议标准化和插件生态的丰富,Dulus 有望成为 CLI Agent 领域的“Linux 内核”——一个开放、中立、可扩展的基础设施。若能在浏览器劫持稳定性、文档完善度和性能优化上持续投入,其竞争力将进一步提升。

7. 应用场景

  • 个人开发者编码助手: 替代传统 IDE 插件,通过自然语言直接驱动代码读写、重构、测试与 Git 提交。开发者可在终端中描述需求,Dulus 自动调用 Read/Edit/Bash 等工具完成代码修改,并支持多模型协作审查(如用 Claude 写代码,用 DeepSeek 做代码审查)。

  • 零预算 AI 实验: 学生或 AI 爱好者利用 Gemini 访客模式免费体验前沿模型的高级工具调用能力,无需订阅付费 API。可用于快速原型验证、教学演示或技术调研,极大降低实验成本。

  • 离线/保密环境自动化: 在政府、军工或企业内网中,基于 Ollama 本地模型与离线语音(Whisper-cpp + Kokoro TTS)实现完全私有化的 Agent 工作流。无需联网即可完成文件处理、日志分析、报告生成等任务,满足数据安全合规要求。

  • Telegram 远程运维: 通过手机 Telegram 向家中或服务器上的 Dulus 发送指令,执行文件管理、日志排查、服务重启等远程操作。适合运维人员在不便使用电脑时,通过手机快速响应故障。

  • 多 Agent 协作研发: 将大型模块的代码编写、审查、测试分配给不同子代理并行推进。例如,coder 子代理负责实现功能,reviewer 子代理同步审查代码质量,researcher 子代理搜索相关文档,所有子代理通过消息传递协作,最终由主代理整合结果。

8. 常见问题FAQ

Q:Dulus 是否支持中文指令和中文模型?
A:支持。Dulus 的指令输入为自然语言,中文可直接使用。模型方面,支持 DeepSeek、Kimi、Qwen、Zhipu 等中文优化模型,可通过 /model 命令实时切换。中文工具输出(如文件读写)也完全兼容。

Q:浏览器劫持模式是否安全?会不会泄露我的会话信息?
A:Dulus 仅在本地捕获浏览器标签页的访客会话 Cookie,所有数据存储在本地,不会上传至任何远程服务器。但需注意,浏览器劫持依赖于网页版 AI 的访客模式,该模式本身可能限制工具调用频率和功能,且 Cookie 过期后需重新捕获。建议仅在信任的本地环境中使用此模式。

Q:如何添加自定义 MCP 服务器?
A:在 Dulus 运行目录下创建 .mcp.json 文件,按照 MCP 协议规范填写服务器地址、认证信息及工具定义。Dulus 会自动加载并注册其中的工具。例如:{"mcpServers": {"my-server": {"command": "node", "args": ["server.js"]}}}。重启会话或执行 /mcp reload 即可生效。

Q:子代理如何工作?我能自定义子代理类型吗?
A:子代理在独立的 git worktree 中运行,每个子代理拥有独立的上下文和工具集。内置类型包括 coder、reviewer、researcher 等,通过消息传递与主代理协作。用户可通过编写 Python 插件定义新的子代理类型,指定其角色、工具集和协作协议。

Q:离线语音需要什么硬件?
A:Whisper-cpp 离线语音识别可在 CPU 上运行,推荐至少 4GB 内存;Kokoro TTS 同样支持 CPU 推理。唤醒词功能需要麦克风支持,在 Linux 下需配置 ALSA/PulseAudio,Windows 下需安装相应驱动。对于实时性要求高的场景,建议使用支持 AVX2 的 CPU 或 NVIDIA GPU 加速。

Q:持久记忆存储在哪里?如何备份?
A:记忆数据存储在本地文件系统中,默认位置为 ~/.dulus/memory/。用户级记忆按用户 ID 分目录,项目级记忆按项目根目录哈希分目录。支持导出为 JSON 格式进行备份,也可通过 /memory export 命令导出。Checkpoints 存储在 ~/.dulus/checkpoints/,支持按时间戳回滚。

9. 项目地址

版权声明:本文部分内容由 AI 辅助生成并经人工校准,版权归本站所有,未经允许禁止任何形式的转载。