已收录

【技术解析】稻壳 SuperAI 数据分析台:Agent 是如何"思考"和"干活"的

快乐小子新
快乐小子新 Lv.2 潜力创作者

Lv.2潜力创作者

上一篇【教程】稻壳 SuperAI 数据分析台使用指南带大家体验了稻壳 SuperAI 数据分析台(aibiao.wps.cn)从上传数据到产出图表、报告的全过程。这篇技术帖,我们深入后台,复盘 AI 在处理鸢尾花数据时的推理过程与处理过程,拆解它背后的技术原理与特征。

一、技术底座:Qingqiu Agent

稻壳 SuperAI 数据分析台的核心是自研的 Qingqiu Agent,它在国际权威评测 TableBench 方法论榜单中排名全球第一。面对一份表格数据,它不是简单地"套模板出答案",而是像一位数据分析师那样:先理解问题 → 规划步骤 → 分步执行 → 自我校验 → 给出结论。这个"思考—行动"的过程,就是本帖要拆解的重点。

二、核心机制①:Agentic 推理循环(推理 工具调用)

打开一次相关性分析,你会发现整个处理过程由"推理过程"与"工具调用"交替串联组成,形成典型的 Agent 循环(类似 ReAct 模式):

可见的完整链路为:推理 → 计算相关性指标(工具)→ 推理 → 准备散点图数据(工具)→ 推理 → 生成可视化(工具)→ 推理 → 输出结论。每一次"推理"负责判断下一步做什么,每一次"工具调用"负责真正落地执行。

三、核心机制②:推理(思维链)——理解与规划

AI 的第一步不是急着算,而是先理解任务并规划。在"推理过程"里能看到它的英文思维链,明确列出执行计划:

它规划了四步:加载数据 → 计算相关性统计量 → 生成散点图 → 总结发现。这种先规划、后执行的行为,体现了大模型在数据分析任务上的结构化推理能力。

四、核心机制③:代码执行(代码解释器)

每个工具调用的底层,是 AI 动态生成的 Python 代码并交由沙箱执行。例如"计算相关性指标"工具,就生成了基于 pandas / scipy 的科学计算代码:

import pandas as pd
import numpy as np
from scipy import stats

df = pd.read_csv('iris.csv')

# 整体 Pearson 相关系数
pearson_r, pearson_p = stats.pearsonr(df['petal_length'], df['sepal_length'])
# 整体 Spearman 相关系数
spearman_r, spearman_p = stats.spearmanr(df['petal_length'], df['sepal_length'])

print("=== 整体相关性 ===")
print(f"Pearson 相关系数:  r = {pearson_r:.4f}, p-value = {pearson_p:.2e}")
print(f"Spearman 相关系数: r = {spearman_r:.4f}, p-value = {spearman_p:.2e}")

# 按品种分组
print("\n=== 分品种相关性 ===")
for sp in df['species'].unique():
    sub = df[df['species'] == sp]
    r, p = stats.pearsonr(sub['petal_length'], sub['sepal_length'])
    print(f"{sp}: Pearson r = {r:.4f}, p-value = {p:.4f}, n = {len(sub)}")

# 描述性统计
print("\n=== 描述性统计 ===")
print(df[['sepal_length', 'petal_length']].describe().round(2))

代码不仅计算 Pearson / Spearman 相关系数,还用 scipy.stats.linregress 做线性回归、构造回归线的可视化配置(regression_series,含 name / data / type 字段)。这体现了 "代码即工具" 的设计——数据分析的灵活性来自代码解释器。

五、核心机制④:可视化生成(规范化的 spec 数据)

图表不是 AI 凭空"画"出来的,而是按一套标准化 spec 数据结构生成 JSON,再交给渲染引擎出图。散点图的 spec 结构为 {x_label, y_label, data[{label, x, y}]},AI 用 Python 把每个数据点(带品种标签)写入 visual 目录的 JSON 文件:

import json, os

os.makedirs('visual', exist_ok=True)

# 构造散点图数据:每个点带品种标签
data_points = []
for _, row in df.iterrows():
    data_points.append({
        "label": row['species'],
        "x": float(row['sepal_length']),
        "y": float(row['petal_length'])
    })

spec = {
    "x_label": "花萼长度 (sepal_length)",
    "y_label": "花瓣长度 (petal_length)",
    "data": data_points
}

with open('visual/scatter_petal_sepal.json', 'w', encoding='utf-8') as f:
    json.dump({"chart_type": "scatter", "spec": spec}, f, ensure_ascii=False)

print(f"数据点数量: {len(data_points)}")
print(f"花萼长度范围: {df['sepal_length'].min():.1f} - {df['sepal_length'].max():.1f}")
print(f"花瓣长度范围: {df['petal_length'].min():.1f} - {df['petal_length'].max():.1f}")
print(f"Pearson r = 0.8718, R² = 0.7600")
print(f"回归方程: petal_length = 1.86 * sepal_length - 7.10")

这种"数据与渲染解耦"的机制,让同一个数据源可以灵活切换图表类型(柱状图、散点图、箱线图、热力图等),也方便后续编辑。

最终,整个"推理—执行"链条产出了可直接使用的可视化成果——散点图(按品种着色、带回归线)与图表说明:

六、核心机制⑤:自纠错(技能动态加载)

技术帖最值得关注的一点,是 AI 的自我纠错能力。第一次生成散点图时数据格式有误,AI 没有放弃,而是主动"加载 visualization 技能文档",查询正确的 spec 格式,再重新生成数据文件:

它能够在运行时按需加载领域技能(visualization、report 等),像人一样"查资料再动手",这大幅提升了复杂任务的完成率。

七、核心机制⑥:结构化输出

分析完成后,AI 将结论整理成规范的 Markdown 表格输出,指标、数值、说明一一对应,还附带关键发现与分品种解读:

八、技术特征总结

回顾整个处理过程,稻壳 SuperAI 数据分析台的核心技术特征可归纳为:

技术特征

表现

Agent 化推理

推理与工具调用交替的循环式执行,先规划后行动

代码解释器

动态生成并执行 pandas / scipy 等科学计算代码

工具调用抽象

数据读取、统计计算、数据准备、出图各自封装为独立工具

技能动态加载

遇到未知格式时按需加载 visualization / report 技能文档

自纠错机制

数据格式错误时自查文档、修正 spec、重新生成

规范化数据协议

图表通过标准化 spec JSON 生成,数据与渲染解耦

结构化输出

结论自动整理为 Markdown 表格、图表、图文报告

九、结语

从这篇技术复盘可以看出,稻壳 SuperAI 数据分析台不是简单的"表格问答",而是一个具备规划、执行、校验、总结能力的智能体(Agent)。它用代码解释器吃下复杂计算,用技能加载弥补知识盲区,用自纠错保证结果可靠——这正是它能在 TableBench 方法论榜单登顶的原因。

欢迎体验:https://aibiao.wps.cn

广东省
浏览 96
收藏
8
分享
8 +1
+1
全部评论