Skip to content

Repository files navigation

Magi

你的本地 AI 工程团队。

Magi 是一个本地优先、可自托管的 AI 工程工作空间。它把目标、分工、上下文、工具、变更和验证放进同一条可观察的工作流,让复杂软件任务不只是“问一句、答一段”,而是真正可以持续推进、随时接手、逐项复核和交付。

Magi 主线任务总览

把一次请求变成一条可持续、可观察、可复核的工程工作流。

English · 架构图 · 许可证 · GitHub

中文

复杂工程,不该靠重复提问来推进

一段代码改动背后通常是一整条决策链:目标是什么、从哪里开始、谁去调查、用什么模型、改哪些文件、怎样验证、失败后从哪里恢复。Magi 把这条链组织成一个长期运行的本地工程团队:

  • 主线代理负责理解目标、拆分任务、等待结果和最终汇总。
  • 执行、探索、架构、测试和评审代理按职责并行工作,每个角色可以使用独立模型。
  • 文件、Shell、搜索、知识库、MCP、Skills 和图片生成统一走同一套权限与治理规则。
  • 目标、任务、工具调用、变更和验证结果全部沿同一条运行链路持续可见。

Magi 的核心不是增加一个更复杂的聊天窗口,而是让每一次请求都进入一条可以长期运行、失败恢复、全程复核的工程流水线。

从请求到交付

提出目标
   ↓
主线代理理解约束并拆解工作
   ↓
多个专业代理使用各自模型并行执行
   ↓
文件、Shell、搜索、知识库、MCP、Skills 等工具统一治理
   ↓
实时流式输出、任务状态、变更和代理结果持续可见
   ↓
主线等待、汇总、验证并继续推进目标

核心能力

一条主线,多个专业代理

主线代理像工程负责人一样理解目标、分配任务、等待结果并完成最终汇总。专业代理按职责执行独立工作,当前内置角色包括:

  • 执行代理:负责代码实现和实际修改。
  • 探索代理:负责阅读代码、定位调用链和梳理影响范围。
  • 架构代理:负责设计判断、模块边界和技术取舍。
  • 测试代理:负责验证、回归检查和测试缺口分析。
  • 评审代理:负责从缺陷、风险和可维护性角度复核结果。

每个角色可以绑定独立模型,也可以在同一轮任务中创建多个代理实例。子代理只负责自己的工作,不会继续创建更深层代理;代理拓扑由主线统一掌控,避免递归扩散和上下文失控。

Goal 模式让长任务保持状态

Goal 不是一次性的计划文本,而是可持续推进的任务状态。目标、约束、验收标准、任务清单、当前进度、暂停状态和终止原因都会保存在同一条记录中。

任务运行期间你可以继续补充要求,也可以暂停、恢复、编辑或清除目标。主线会在需要时继续同一目标,而不是每轮重新猜测任务背景。

模型按职责分工,而不是只有一个模型下拉框

不同职责本就不该被同一个模型锁死。Magi 支持为每条职责配置独立模型:

  • 主模型:负责主线对话和任务编排。
  • 辅助模型:负责标题、知识抽取、项目记忆和上下文压缩。
  • 图片模型:负责图片生成。
  • 角色模型:为执行、探索、架构、测试、评审等代理分别绑定模型。

它支持标准的 OpenAI 兼容接口格式和 Anthropic Messages 接口格式,图片生成使用 OpenAI 兼容的 Images API。模型选择因此服务于职责,而不是反过来限制工作流。

统一工具运行时

文件读写、目录操作、补丁、搜索、Shell、进程、变更预览、知识查询、图片生成、Skills 和 MCP 工具通过同一套工具目录与执行策略工作。

工具调用会经过:

  1. 当前工作区和会话边界检查。
  2. 访问模式检查:只读、受限访问或完全访问。
  3. 工具自身的读写与审批策略检查。
  4. 执行状态、流式结果和最终摘要写回同一条运行链路。

主线和子代理因此遵循同一套规则,从运行时层面减少主线与子代理能力不一致,以及界面状态偏离真实执行状态的问题。

上下文保持连接,而不是每轮重新开始

Magi 会把以下信息组合成当前任务的真实上下文:

  • 当前会话和历史消息。
  • 当前工作区代码索引与文件摘要。
  • 项目知识库中的 ADR、FAQ 和经验记录。
  • 目标、任务清单、代理运行状态和工具执行记录。
  • 用户主动引用的文件、文件夹、Skill 和其他上下文。

上下文由后端运行时统一组装,前端只负责展示和交互。桌面端、浏览器、手机浏览器和公网隧道因此看到的是同一份任务状态。

一个运行实例,多端访问

桌面端启动时会同时启动 Magi daemon。桌面窗口、本机浏览器、局域网设备和公网隧道都连接到同一个服务实例:

  • 关闭桌面窗口默认隐藏到系统托盘。
  • 从系统托盘退出才会停止服务。
  • 浏览器或手机浏览器可以继续访问同一个会话状态。
  • 服务退出后,所有访问入口同时停止。

支持 Windows、Linux 和 macOS 桌面端,同时保留 Web、局域网和公网隧道访问方式。

可审计的工程界面

Magi 不把运行细节藏在黑盒里。你可以直接看到:

  • 主线和每个子代理的实时输出。
  • 代理的运行、等待、完成和失败状态。
  • 文件、变更和工具调用卡片。
  • Goal 与任务清单的进度。
  • 上下文用量和运行诊断。
  • 右侧文件、代理和知识内容面板。
  • 系统异常告警,而不是把普通保存、切换和发送消息都变成通知噪声。

外观也能成为工作台的一部分

外观不只是明暗切换。Magi 提供统一主题库,内置跟随系统、浅色、深色、深林、星夜雪山、青岚绘境、量子矩阵、海岸晨光和赤砂远境等主题,并支持壁纸、通透或沉浸材质、主题预览、自定义主题以及导入导出。主题状态由 daemon 保存,桌面端与 Web 使用同一份外观配置,工作台可以真正贴合你的使用习惯。

产品实录

这些截图全部来自本地 daemon 托管入口中的 Magi 真实运行场景,使用 magimagi-rust-rewrite 工作空间;主线、模型与外观截图使用脱敏演示数据,变更审查展示拍摄时工作区中的真实未提交改动。它们不是概念图,也不是组件拼贴,而是统一使用 1913 × 1263 画布的完整应用窗口,展示产品实际可操作的工作流。

从目标到结果

主线把目标、执行状态、最终结论和下一次输入放在同一界面中;用户不需要在多个页面之间拼接任务进度。

星夜雪山皮肤下的 Magi 主线任务总览

从分工到执行

一次任务可以在输入区指定角色和职责,让主线把复杂工作拆成多个相互独立、可验证的工作包。

Magi 多代理任务编排入口

Magi 多代理对话与代理结果

Magi 主线执行状态与任务清单

从模型到角色

主模型、辅助模型、图片模型和专业代理模型分别管理,模型选择服务于职责,而不是把整个任务锁定在一个引擎上。

星夜雪山皮肤下的 Magi 模型与角色配置

Magi 专业代理模型绑定

主题与皮肤

主题库把配色、壁纸和工作台材质统一管理。用户可以直接预览内置皮肤,在跟随系统、浅色、深色、通透和沉浸式工作台之间切换,也可以基于内置主题创建自己的主题。

Magi 主题库与皮肤预览

从工具到知识

工具、MCP、Skills、ADR、FAQ 和工程经验都在工作区内可见,并且只有相关知识才会按需参与任务上下文。

Magi 工具、MCP 与 Skills 状态

Magi ADR 知识记录

Magi FAQ 与按需知识说明

Magi FAQ 知识记录

Magi 工程经验沉淀

从变更到交付

文件归属、增删行数、Diff、工具输出和任务清单保持在同一条可回看的执行记录中,用户可以在确认前复核、批准或还原变更。

Magi 变更审查

Magi 文件 Diff 预览

图片与用量

图片模型生成的素材直接写入工作区;统计面板帮助判断模型分工和实际成本。

Magi 图片生成与预览

Magi 模型与角色用量统计

Magi 偏好与安全防护

这组截图对应 Magi 的核心产品路径:提出目标 → 组织分工 → 执行验证 → 复核变更 → 沉淀知识

为什么选 Magi

Magi 的目标很直接:把模型能力变成一套能够长期协作、可恢复、可复核的本地工程系统,而不是一个只会生成答案的聊天窗口。

  • 模型选择自由:按主线、辅助、图片和专业角色分别配置模型、供应商与网关,不必被一个引擎限制。
  • 多代理协作有边界:执行、探索、架构、测试和评审职责清晰,主线统一管理派发、等待和汇总。
  • 工程状态完整可见:Goal、任务清单、代理状态、工具调用、文件变更和验证结果沿同一条链路呈现。
  • 知识能够持续积累:代码索引、ADR、FAQ 和经验记录围绕工作区沉淀,并在需要时参与后续任务。
  • 工具治理统一:文件、Shell、搜索、MCP、Skills 和图片生成遵循统一的工作区、访问模式与权限边界。
  • 运行时属于用户:工作区、会话、模型配置和知识数据保存在本地 Magi 环境中,支持自托管和离线管理。
  • 多端共享同一状态:桌面、浏览器、局域网设备和公网隧道连接同一个 daemon,不需要重复配置或同步任务。
  • 适合真实交付:支持暂停、恢复、停止、失败诊断、变更审查和发布前验证,而不是只返回一段答案。

你会在这些场景里用到它

当你需要真正推进一个项目,而不是只获得一段参考回答时,Magi 会更接近你想要的形态:

  • 大型代码库的架构梳理和模块级审查。
  • 需要探索、实现、测试和评审并行推进的重构任务。
  • 需要多个模型分别承担不同职责的团队工作流。
  • 需要持续数小时甚至更久的目标型开发任务。
  • 不希望把项目上下文和运行服务交给单一云端产品的本地开发者。
  • 需要通过浏览器、手机或局域网设备查看同一任务进度的工作环境。

快速开始

环境要求:Rust stable、Node.js 22 或更高版本、npm,以及 Electron 桌面构建所需的本机打包工具链。

git clone https://github.com/MistRipple/magi-code.git
cd magi-code
npm --prefix web ci
./scripts/dev-daemon.sh

打开:

http://127.0.0.1:38123/web.html

开发时只启动 daemon。它会自动启动或复用固定端口的 Vite 服务,并从同一个 38123 入口提供前端、API 和 SSE。

桌面端

npm --prefix web run build
npm run build
npm run desktop:package -- --dir

桌面端基于 Electron,使用同一 Chromium 宿主承载 Magi UI 与内置浏览器,目标平台包括:

  • macOS DMG(Apple Silicon 与 Intel)
  • Linux AppImage 与 Deb
  • Windows NSIS 安装器

推送与版本号一致的 v* 标签后,GitHub Actions 会构建三平台安装包、签名更新元数据并创建 Release。已安装的桌面端会在启动时和运行期间检查桌面版本更新;用户可以在后台下载并校验更新,下载完成后自行选择“立即重启”或“稍后重启”,应用不会在下载结束时打断当前工作。重启安装前会先持久化状态并优雅停止本地服务。Electron、Chromium、daemon 和 Automation Worker 作为同一桌面包原子更新,~/.magi 中的模型配置、会话、工作区、任务和知识库不会被打包或覆盖。

正式发布需要在 GitHub Repository Secrets 中配置 Electron Builder 使用的 macOS/Windows 签名、公证和 Release 签名凭据。私钥只供 GitHub Actions 使用,不应写入代码仓库或桌面包。

配置模型与角色

启动后进入“设置 -> 模型”:

  1. 配置主模型连接和默认模型。
  2. 配置辅助模型,用于标题、知识抽取、记忆和上下文压缩。
  3. 配置图片生成模型,连接 OpenAI 兼容 Images API。
  4. 为执行、探索、架构、测试和评审角色绑定独立模型。
  5. 按任务需要选择只读、受限访问或完全访问模式。

模型配置保存在本机 Magi 状态目录,不应提交到代码仓库。

项目结构

apps/
  daemon/                         无头开发与服务入口
  desktop/                        Electron/Chromium 桌面宿主
crates/
  magi-api/                       HTTP、SSE 与公开 API
  magi-conversation-runtime/      主对话、上下文与任务派发
  magi-agent-role/                代理角色定义与注册表
  magi-tool-runtime/              内置工具、权限与工具目录
  magi-knowledge-store/           代码索引与项目知识
  magi-context-runtime/           上下文来源选择与组装
  ...                             会话、目标、任务、记忆、用量和快照
web/                              Svelte Web UI
docs/                             架构说明与可视化结构图
scripts/                          开发、缓存清理与架构图生成脚本

验证命令

cargo fmt --all -- --check
cargo check -p magi-daemon
cargo test --workspace
npm --prefix web test
npm --prefix web run check
npm --prefix web run build

工程原则

  • daemon 是唯一业务内核,桌面宿主不复制业务逻辑。
  • 后端状态和协议是前端展示的权威来源。
  • 每项能力只保留一条正式实现路径,不保留双实现、兼容分支或临时兜底。
  • 工具执行必须经过工作区、访问模式、路径边界、权限和治理检查。
  • 子代理不能继续创建子代理,只有主线负责代理拓扑。
  • 模型配置、知识记录和运行数据默认属于本地用户环境。

仓库与许可证

Magi 核心代码采用 Apache License 2.0 开源授权。

友情链接


Magi 的诞生离不开早期支持者的帮助。

赞助用户
Poonwai
Poonwai
agassiz
agassiz
StoneFancyX
StoneFancyX
赞助站

Token 支持BinCode 中转站

联系

无论是功能建议、Bug 反馈还是商务合作,欢迎随时交流。

个人微信二维码    Magi 测试群二维码

Note

左侧:个人微信(商务合作/问题反馈) | 右侧:Magi 测试群二维码

本项目采用 Apache License 2.0。你可以在遵守许可证条款的前提下自由使用、修改和分发 Magi。

About

本地优先的多智能体 AI 编程客户端,支持 Windows、macOS 与 Linux,可接入 OpenAI/Anthropic 兼容接口,自由配置主模型、辅助模型和子代理模型,并支持多智能体并行协作、浏览器及远程访问。

Resources

Stars

215 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages