← Lab

Query, calculate and answer with tools

CPU · Python 3.12.13 · 8.02 s · 2026-10-22 08:56:13 UTC+8

Saved run results

train_tasks24
heldout_tasks16
updates160
algorithmREINFORCE with leave-one-out baseline
{'kind': 0, 'company': 'company-0', 'previous': 80, 'current': 90, 'expense': 20} {'kind': 0, 'company': 'company-32', 'previous': 176, 'current': 218, 'expense': 52}
[(0, 'company', 'TEXT', 0, None, 0), (1, 'year', 'INT', 0, None, 0), (2, 'revenue', 'REAL', 0, None, 0), (3, 'expense', 'REAL', 0, None, 0)]
[('company-0', 2024, 80.0, 18.0), ('company-0', 2025, 90.0, 20.0)]
list_tables (-0.01, False, {'tables': [('accounts',)]})
schema (-0.01, False, {'schema': [(0, 'company', 'TEXT', 0, None, 0), (1, 'year', 'INT', 0, None, 0), (2, 'revenue', 'REAL', 0, None, 0), (3, 'expense', 'REAL', 0, None, 0)]})
query_current (-0.01, False, {'sql': 'SELECT revenue, expense FROM accounts WHERE company = ? AND year = ?', 'parameters': ('company-1', 2025), 'row': (94.0, 21.0)})
query_previous (-0.01, False, {'sql': 'SELECT revenue, expense FROM accounts WHERE company = ? AND year = ?', 'parameters': ('company-1', 2024), 'row': (83.0, 19.0)})
calculate_growth (-0.01, False, {'calculator_result': 0.1325301204819278})
submit (1.0, True, {'answer': 0.1325301204819278})
Agent contract: observe → action → tool observation → next decision → verifier
{'seed': 3, 'before': {'success_rate': 0.5, 'return': 0.44999999999999996, 'mean_turns': 6.0}, 'after': {'success_rate': 1.0, 'return': 0.955, 'mean_turns': 5.5}}
{'seed': 7, 'before': {'success_rate': 0.0, 'return': -0.08, 'mean_turns': 8.0}, 'after': {'success_rate': 1.0, 'return': 0.955, 'mean_turns': 5.5}}
Experiment output
[
  {
    "turn": 0,
    "action": "list_tables",
    "observation": {
      "tables": [
        [
          "accounts"
        ]
      ]
    },
    "reward": -0.01
  },
  {
    "turn": 1,
    "action": "schema",
    "observation": {
      "schema": [
        [
          0,
          "company",
          "TEXT",
          0,
          null,
          0
        ],
        [
          1,
          "year",
          "INT",
          0,
          null,
          0
        ],
        [
          2,
          "revenue",
          "REAL",
          0,
          null,
          0
        ],
        [
          3,
          "expense",
          "REAL",
          0,
          null,
          0
        ]
      ]
    },
    "reward": -0.01
  },
  {
    "turn": 2,
    "action": "query_current",
    "observation": {
      "sql": "SELECT revenue, expense FROM accounts WHERE company = ? AND year = ?",
      "parameters": [
        "company-32",
        2025
      ],
      "row": [
        218.0,
        52.0
      ]
    },
    "reward": -0.01
  },
  {
    "turn": 3,
    "action": "calculate_ratio",
    "observation": {
      "calculator_result": 0.23853211009174313
    },
    "reward": -0.01
  },
  {
    "turn": 4,
    "action": "submit",
    "observation": {
      "answer": 0.23853211009174313
    },
    "reward": 1.0
  }
]
SQL observations are included in the saved held-out trajectory.
Fill answer, then enable RUN_EXERCISE.
metrics.json
{
  "runs": [
    {
      "seed": 3,
      "before": {
        "success_rate": 0.5,
        "return": 0.44999999999999996,
        "mean_turns": 6.0
      },
      "after": {
        "success_rate": 1.0,
        "return": 0.955,
        "mean_turns": 5.5
      }
    },
    {
      "seed": 7,
      "before": {
        "success_rate": 0.0,
        "return": -0.08,
        "mean_turns": 8.0
      },
      "after": {
        "success_rate": 1.0,
        "return": 0.955,
        "mean_turns": 5.5
      }
    }
  ],
  "fixed_heldout_trace": [
    {
      "turn": 0,
      "action": "list_tables",
      "observation": {
        "tables": [
          [
            "accounts"
          ]
        ]
      },
      "reward": -0.01
    },
    {
      "turn": 1,
      "action": "schema",
      "observation": {
        "schema": [
          [
            0,
            "company",
            "TEXT",
            0,
            null,
            0
          ],
          [
            1,
            "year",
            "INT",
            0,
            null,
            0
          ],
          [
            2,
            "revenue",
            "REAL",
            0,
            null,
            0
          ],
          [
            3,
            "expense",
            "REAL",
            0,
            null,
            0
          ]
        ]
      },
      "reward": -0.01
    },
    {
      "turn": 2,
      "action": "query_current",
      "observation": {
        "sql": "SELECT revenue, expense FROM accounts WHERE company = ? AND year = ?",
        "parameters": [
          "company-32",
          2025
        ],
        "row": [
          218.0,
          52.0
        ]
      },
      "reward": -0.01
    },
    {
      "turn": 3,
      "action": "calculate_ratio",
      "observation": {
        "calculator_result": 0.23853211009174313
      },
      "reward": -0.01
    },
    {
      "turn": 4,
      "action": "submit",
      "observation": {
        "answer": 0.23853211009174313
      },
      "reward": 1.0
    }
  ],
  "train_tasks": 24,
  "heldout_tasks": 16,
  "updates": 160,
  "algorithm": "REINFORCE with leave-one-out baseline"
}