天元智算研讨会成果汇展—当AI遇上国产科学计算软件:baltamatica-mcp开发(2)

2026-08-11

前言

6月29日—7月3日,由北京大学数学科学学院、北京大学计算中心、大数据分析与应用技术国家工程实验室、中俄数学中心、北京大学应用物理与技术研究中心联合主办,北太振寰全程技术支撑的北京大学2026天元智算系列讲座与研讨会,在北京大学智华楼王选报告厅圆满落幕。

继首期成果展示之后,北太天元继续推出研讨会系列成果汇展第二篇,持续分享研讨过程中的创新思路与实践积淀。

接下来,就让我们继续解锁各组优秀作品,感受学员们的实践风采~

e4e10287d8f49d1bfee4e1a29499f620.jpg


案例作者介绍

本次系列成果案例由多位高校优秀教师与青年科研工作者联合完成,在此谨向澳门理工大学王泽璐博士,澳门理工大学张乾坤博士,澳门理工大学庹瑶,北京信息科技大学付正红,中国人民大学任文茹,中国人民大学闫宇婧,中国人民大学潘晨煜致以诚挚谢意,感谢各位专家倾情分享研究成果、倾力打磨优质案例。


作品的价值

在复杂的数值计算场景中,我们常常面临这样的困境:向AI大模型提出计算需求后,尽管它能迅速生成符合北太天元语法规范的代码,但开发者仍不得不在AI对话窗口与软件界面之间反复进行“复制—粘贴—运行—回传结果”的人工操作。这种碎片化的交互流程,不仅打断了连贯的科研思维,也使得本可自动化的计算链路变得繁琐且易出错。

这引发了一个核心思考:AI是否能够直接“执行”计算,而不仅仅是“生成”代码?

为解决这一实际痛点,我们基于模型上下文协议(MCP),为国产科学计算软件北太天元量身打造了AI代理驱动工具——baltamatica-mcp。该工具如同一座标准化的双向通信桥梁,使AI客户端(如Codex、Claude等)能够直接与北太天元计算内核进行指令交互。它支持代码执行、脚本运行、变量读写以及工作区状态的实时查询等核心操作,让AI真正从“建议者”转变为“执行者”,成为深度调用国产科学计算引擎的智能生产力工具。

插件安装步骤和使用

在复杂的数值计算场景中,我们常常面临这样的困境:向AI大模型提出计算需求后,尽管它能迅速生成符合北太天元语法规范的代码,但开发者仍不得不在AI对话窗口与软件界面之间反复进行“复制—粘贴—运行—回传结果”的人工操作。这种碎片化的交互流程,不仅打断了连贯的科研思维,也使得本可自动化的计算链路变得繁琐且易出错。这引发了一个核心思考:AI是否能够直接“执行”计算,而不仅仅是“生成”代码?为解决这一实际痛点,我们基于模型上下文协议(MCP),为国产科学计算软件北太天元量身打造了AI代理驱动工具——baltamatica-mcp。该工具如同一座标准化的双向通信桥梁,使AI客户端(如Codex、Claude等)能够直接与北太天元计算内核进行指令交互。它支持代码执行、脚本运行、变量读写以及工作区状态的实时查询等核心操作,让AI真正从“建议者”转变为“执行者”,成为深度调用国产科学计算引擎的智能生产力工具。

插件安装步骤

使用这个工具,远比想象中简单。只需在终端执行一行安装命令:

pip install baltamatica-mcp

随后,在支持MCP的AI客户端(如Codex)中,通过几行配置即可启用北太天元后端。当连接建立后,你便可以在对话中直接让AI调用北太天元执行计算。例如,向AI提问:

“用北太天元创建一个3x3的幻方矩阵,并返回其所有元素之和。”

AI会自动生成并执行北太天元代码,将结果反馈给你——整个过程无需任何手动复制粘贴。你看到的将不再是代码片段,而是直接算出的答案。从“手动搬运”到“AI直驱”,这座桥梁不仅让科研自动化迈出一大步,更为国产科学计算软件与人工智能的深度融合提供了新的可能。接下来,我们将深入解析这套系统的技术架构与核心功能,看看它是如何实现这一“一键直达”的智能计算流程的。接下来我将带各位老师同学来配置这个工具。首先点开北太天元:

addpath('C:/Users/.baltamatica-mcp'); savepathmcp_bridge('background')

路径以实际为准。北太天元会输出:MCP bridge这样一行命令,给你一个地址。接下来我们要把python更新到310版本。(更新步骤省略)

conda activate py310

接下来:

npx -y @modelcontextprotocol/inspector python -m baltamatica_mcp --backend bex

我们运行完毕之后就会弹出一个网页。到这个地方,我们的环境配好了,只等我们使用。

路演效果图:

部分代码展示:

% numerical_pipeline_demo.m% A compact numerical workflow for exercising the Baltamatica MCP CLI backend.fprintf('\n=== Baltamatica MCP Numerical Pipeline Demo ===\n');rng(2026);% Build a symmetric positive-definite system with a known solution.n = 6;M = rand(n, n);A = M' * M + eye(n) * 0.5;x_true = (1:n)';b = A * x_true;x_solved = A \ b;residual_norm = norm(A * x_solved - b);fprintf('\n[1] Linear system solve\n');fprintf('Residual norm: %.6e\n', residual_norm);fprintf('Solution error: %.6e\n', norm(x_solved - x_true));% Estimate the dominant eigenvalue by power iteration.v = ones(n, 1);lambda_history = zeros(12, 1);for k = 1:12v = A * v;v = v / norm(v);lambda_history(k) = (v' * A * v) / (v' * v);enddominant_lambda = lambda_history(end);fprintf('\n[2] Power iteration\n');fprintf('Dominant eigenvalue estimate: %.6f\n', dominant_lambda);fprintf('Last three estimates: %.6f %.6f %.6f\n', lambda_history(10), lambda_history(11), lambda_history(12));% Monte Carlo estimate of E[exp(-X^2)] for X ~ U(0, 1).samples = 50000;u = rand(samples, 1);mc_values = exp(-(u .^ 2));mc_mean = mean(mc_values);mc_std_error = std(mc_values) / sqrt(samples);fprintf('\n[3] Monte Carlo estimate\n');fprintf('E[exp(-X^2)], X~U(0,1): %.6f +/- %.6f\n', mc_mean, 1.96 * mc_std_error);% Aggregate results into a compact report matrix for later inspection.report = [residual_norm, norm(x_solved - x_true);dominant_lambda, lambda_history(12) - lambda_history(11);mc_mean, mc_std_error];fprintf('\n[4] Report matrix\n');disp(report);fprintf('Demo complete. Variables left in workspace: A, x_solved, lambda_history, report, mc_mean.\n');

扫描二维码获取相关代码