# smolagents CodeAgent：让 AI 用 Python 操作数据表，核对步骤间变量与真实计算结果

已用真实smolagents LocalPythonExecutor执行两段作者代码，跨步骤保留by_id并算得1875分，拒绝未授权os导入；未运行CodeAgent或模型生成动作。该执行器不是安全沙箱。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 打开重复和退货输入

input.json有4行订单，O1重复、O2退货，期望保留O1和O3。金额以字符串保存，避免浮点加法误差。

## 2. 用独立审计器算真值

audit.py按id去重并排除returned，得到18.75。这个值是作者独立复算，不是声称CodeAgent已写出或执行了代码。

## 3. 授权最少Python能力

为LocalPythonExecutor配置本题最少导入并send_tools({})、send_variables({orders:…})。当前原生执行器限制导入但不是安全沙箱；不可信代码应在独立隔离环境执行。

## 4. 让Agent先读列再生成动作

要求CodeAgent先确认id/amount/returned含义，再生成筛选聚合Python；保存它实际产生的代码，不能用作者代码代替模型动作。

## 5. 检查两步之间的变量

第一次动作创建去重后的rows，第二次从该变量计算total。记录解释器状态与执行输出，确认没有每一步重新加载未过滤原表。

## 6. 用坏聚合做对照

negative.json的39.25包含重复与退货。即使最终语言解释很流畅，只要执行数值不等于18.75就要返回查错。

## 7. 保存源码、状态与输出

交付模型动作代码、每步运行结果和独立Decimal复算。包内只包含作者输入审计，未运行CodeAgent自动生成动作或模型。

## 官方依据

- smolagents 官方文档或源码：https://huggingface.co/docs/smolagents/reference/agents
