# MWORKS AI
# 产品简介
MWORKS AI 是 Syslab 内置的 AI 助手。它可以结合当前工程、文件、终端输出、运行环境和 Syslab 本地能力,帮助用户完成问答、代码生成、错误诊断、脚本运行、性能优化和代码迁移等任务。
与通用聊天工具不同,MWORKS AI 的重点是让 AI 在 Syslab 内理解上下文、调用工具并协助完成工程任务。
# 适用场景
- 解释 Syslab、Julia、M 代码和工程结构;
- 根据自然语言生成或修改脚本;
- 分析报错、终端输出和运行结果;
- 调用 Syslab MCP Server 查询帮助、执行代码或获取环境信息;
- 使用 Syslab Skills 完成性能优化、M 转 Julia 等专项任务。
# 快速入门
本节介绍首次使用 MWORKS AI 的基本配置流程,包括运行环境确认、功能入口打开、账号登录、在线模型选择以及本地模型切换。
# 前置条件
使用 MWORKS AI 前,请确认当前环境满足以下要求。
- 当前系统为 Windows 10/11 64 位或 Linux(Ubuntu 20.04+、CentOS 8+);
- 已安装 Syslab 2026a V26.3 及以上版本;
- 当前网络可以正常访问同元官网。
# 启动 MWORKS AI
在 Syslab 中打开 MWORKS AI 功能入口。
首次启动 MWORKS AI 时,将进入登录界面。
# 登录或注册账号
MWORKS AI 需要使用苏州同元软控技术股份有限公司 (opens new window)(下方简称同元)账号登录后才能调用可用模型。如果尚未注册账号,请先完成注册,再登录使用。
账号注册入口如下:
# 配置在线模型
完成注册并登录账号后,可在模型配置界面选择在线模型。账号登录后,系统会提供一定的免费额度,可用于调用 deepseek 的相关模型进行建模使用。
| 模型名 | 模型功能 | 额度耗费对比 |
|---|---|---|
| tongyuan/deepseek-v4-flash | DeepSeek-V4-Flash 模型,支持思考与非思考模式,具备长上下文、JSON 输出、工具调用等能力,适用于常规问答、代码生成和建模辅助场景 | 基础计费倍率,免费额度消耗较慢,可支持更多轮次对话 |
| tongyuan/deepseek-v4-pro | DeepSeek-V4-Pro 模型,支持思考与非思考模式,具备长上下文、JSON 输出、工具调用等能力,适用于复杂推理、长文本分析和高难度建模优化场景 | 计费倍率较高,免费额度消耗更快,相同使用量下可用轮次较少 |
# 自定义模型配置
MWORKS AI 需依赖本机存在可用的智能体程序。在 Syslab 2026a V26.3 及以上版本中,软件安装时会自动安装特定 opencode 版本。该版本仅在 Syslab 中调用,不影响全局配置。
如需使用本地模型,目前支持切换为本地 opencode 设置。切换前,请确认已完成以下准备:
- 本地已经安装 opencode 客户端或 cli 终端(非 Syslab 自带版本),并已配置相关模型;
- 已经完成一次同元账号登录。
完成准备后,按以下步骤切换为本地客户端。
进入全局配置路径
C:\Users\用户名\.config\opencode。找到
opencode-mworks.json文件,并将其重命名为opencode-mworks.json.bak;opencode-mworks.json是 MWORKS AI 默认添加的配置文件。opencode 启动时会优先读取该文件中的配置;将文件名增加.bak后,系统将不再识别它为有效配置文件,从而回退到 opencode 的默认配置,并切换为本地 opencode 客户端。
重启 opencode 和 Syslab。
提示
产品支持在多种模型间进行切换,不同模型的部分能力可能存在差异,属于正常现象。
# 发送第一个问题
在输入框中输入自然语言问题或任务描述,按 Enter 发送。常用输入方式包括:
- 直接提问,例如:如何生成稀疏矩阵?
- 描述任务,例如:读取 data.csv,生成一个非线性指数拟合脚本,并保存到当前目录。
建议尽量把目标、输入文件、期望输出和限制条件写清楚。任务越具体,AI 助手越容易给出可执行结果。
AI 返回结果后,可根据结果继续追问、要求生成脚本、运行验证或修改文件。
如果 AI 正在回复或执行任务,发送按钮会切换为停止按钮。需要中断当前任务时,可单击停止按钮,再补充新的约束或重新发送任务。
# 带上下文提问
上下文用于告诉 AI 当前问题所依赖的材料。对于代码开发、错误诊断和工程分析,添加上下文通常比单纯描述问题更有效。
常见上下文添加方式
- 在编辑器中选中代码或文本后,通过右键菜单添加到 AI 上下文;
- 将文件或文件夹拖入 AI 面板;
- 在输入框中使用
@选择文件;
上下文不宜一次加入过多。复杂工程任务建议先加入关键文件或报错信息,再根据 AI 的分析逐步补充材料。
# 核心功能
# 功能总览
AI 助手主要包含以下功能:
| 区域 | 功能 |
|---|---|
| 新建会话 | 开启一个新的对话上下文,用于处理新的独立任务。 |
| 历史会话 | 打开历史对话,回看或继续之前的任务。 |
| 设置 | 配置模型服务、工具、MCP 与诊断。 |
| 常用命令 | 提供常见任务的快捷入口,单击后可将示例问题填入聊天框。 |
| 聊天框 | 输入问题、任务描述、/ 命令或 @ 上下文。 |
| 切换模型 | 选择本次会话使用的大模型。 |
| 切换模式 | 选择当前工作模式,例如 Build 模式或 Plan 模式。 |
| 发送/停止 | 发送当前提示词;AI 正在生成或执行时,可用于停止当前响应。 |
# 会话
一次会话保存一组连续对话和上下文。新建会话可以隔离不同任务,避免旧上下文影响当前结果。历史会话可用于回看和继续之前的工作。
当一个任务已经结束,建议为新任务开启新会话;当任务需要连续迭代,例如“分析错误 -> 修改代码 -> 运行验证 -> 继续修复”,建议保留在同一会话中。
会话相关入口通常位于 AI 面板顶部:
- 单击新建会话,创建独立对话上下文并开始新任务;
- 单击历史会话,查看历史任务并选择需要继续的会话;
- 在继续历史会话前,先确认旧上下文是否仍然适用于当前工程状态。
# 模式与模型
MWORKS AI 支持不同模式和模型组合。它们的职责不同:
- 模式:控制工作方式,例如规划优先或直接执行;
- 模型:负责理解、推理和生成的底层大模型能力。
常见模式包括:
- Build:规划、搜索、开发等一站式完成任务、工作目录内操作无需用户确认;
- Plan:为完成任务制定详细的执行方案,仅生成步骤与建议,不执行任何实际操作。
对于可能改动大量文件、运行外部命令或影响工程状态的任务,建议先使用 Plan 模式明确方案。
模型和模式可在 AI 面板中切换:
- 通过聊天框左下角的模式入口切换工作模式;
- 通过模型下拉框切换当前使用的大模型。
切换模型或模式后,建议在当前输入中明确任务目标,避免旧会话上下文影响新设置下的结果。
# MCP 服务
MCP 通常指 Model Context Protocol,即模型上下文协议。它用于让 AI 助手以标准方式连接外部工具、数据源和本地服务。提供工具能力,解决 AI 能调用什么。
MWORKS AI 可通过 Syslab MCP Server 获取 Syslab 环境信息、查询函数和帮助文档、执行 Julia 代码等。常见用途包括:
- 查询 Syslab 已安装工具箱和运行环境;
- 搜索 Syslab 函数、帮助和示例;
- 运行或验证 Julia 代码;
- 将本地能力提供给智能体调用。
如果 MCP 服务不可用,AI 仍可回答一般问题,但与 Syslab 本地环境相关的能力会受限。
# Skills
Skills 是面向专项任务的工作流说明,提供任务流程规范,可让 AI 按既定规范完成复杂任务。例如:
- 性能优化;
- M 代码迁移到 Julia;
使用 Skills 时,建议在任务描述中明确说明要使用哪个 Skill,以及输入文件、输出目录和验收标准。
# 典型案例
# 错误诊断
当脚本运行失败时,优先把报错信息、相关代码和运行环境作为上下文提供给 AI。MWORKS AI 也提供 AI 错误诊断入口,可将当前错误上下文发送到右侧 AI 助手,由 AI 分析原因并给出修复建议。
以下示例运行时会出现错误:
using TyPlot
using TyMath
x = 0:0.2:10
y = besselj.(0, x)
xconf = [x..., x[end:-1:1]...]
yconf = [y .+ 0.15..., y[end:-1:1] .- 0.15...]
figure()
p = plt_fill(xconf, yconf, "red")
plt_set(p, "facecolor", [1 0.8 0.8])
plt_set(p, "edgecolor", "none")
hold(true) # 此行代码有错
plot(x, y, "ro")
hold("off")
发生错误后,可选中报错信息并单击 AI 错误诊断。
AI 助手会先定位错误原因,再给出修改建议。
# 算法开发
可用自然语言描述输入数据、算法目标和输出形式,让 AI 生成脚本。示例数据可使用 data.csv。
在 AI 聊天框输入:
使用 Syslab 读取 data.csv,实现一个非线性无偏置指数拟合脚本,绘图并给出拟合曲线参数,该脚本保存到 data.csv 同一目录。
输入完成后,AI 助手开始工作,最后自动生成非线性指数拟合文件。
# 性能优化
存在一个二维热扩散模拟示例,该示例优化前运行耗时约为 1.2 秒,需要优化其性能。
function make_initial_temperature(nx::Int, ny::Int)
u = zeros(Float64, nx, ny)
for j in 1:ny
for i in 1:nx
dx = i - nx ÷ 2
dy = j - ny ÷ 2
r2 = dx * dx + dy * dy
if r2 < 900
u[i, j] = 100.0
elseif r2 < 3600
u[i, j] = 40.0
end
end
end
u
end
function diffuse_slow(u0::Matrix{Float64}, alpha::Float64, steps::Int)
u = copy(u0)
for _ in 1:steps
next = copy(u)
next[2:end-1, 2:end-1] =
u[2:end-1, 2:end-1] .+
alpha .* (
u[1:end-2, 2:end-1] .+
u[3:end, 2:end-1] .+
u[2:end-1, 1:end-2] .+
u[2:end-1, 3:end] .-
4.0 .* u[2:end-1, 2:end-1]
)
u = next
end
u
end
u0 = make_initial_temperature(500, 500)
@time u = diffuse_slow(u0, 0.12, 260)
println("center temperature = ", u[250, 250], ", corner temperature = ", u[1, 1])
在 AI 聊天框输入:
使用 Syslab skills,优化 slow_heat_diffusion.jl 的性能,并将优化版本保存到 slow_heat_diffusion-opt.jl
输入完成后,AI 助手开始工作:
# M 转 Julia
对于历史 M 脚本迁移,建议同时提供主脚本、依赖数据文件和期望输出目录。示例文件包括 FindLocalMaximaInDataExample.m 和 spots_num.mat。
在 AI 聊天框输入:
使用 syslab skills,将 FindLocalMaximaInDataExample.m 转为 Julia 代码,输出保存到 FindLocalMaximaInDataExample-translated 文件夹。
转换过程中,AI 可能会分阶段生成迁移计划、问题记录、Julia 脚本和验证结果。如果发现方向不符合预期,可以中途补充约束后让 AI 继续。
# 常见问题
# 找不到 Syslab MCP
如果 AI 助手无法调用 Syslab MCP,可先让它检查配置和服务状态:
读取 ~/.config/opencode/opencode.json,测试 Syslab MCP 是否可以调用,并说明失败原因。
常见原因包括:
- MCP 配置文件路径不正确;
- Syslab MCP Server 未启动或版本不匹配;
- 当前运行环境无法访问本地服务;
- 权限配置阻止了相关工具调用。
# 响应慢或生成超时
可尝试以下方法:
- 减少单次上下文数量,优先提供关键文件和报错;
- 将复杂任务拆成多个阶段;
- 先使用 Plan 模式明确方案,再进入 Build 模式执行;
- 清理过长历史会话,或为新任务开启新会话;
- 检查模型服务和网络连接状态。