| """Quick test script for the Trace Environment API flow using TraceEnvClient.""" |
| import time |
| import json |
| from client import TraceEnvClient |
| from models import TraceAction |
|
|
| BASE = "http://127.0.0.1:8000" |
|
|
| def test_full_flow(): |
| print("=" * 60) |
| print("TEST: Full Trace Environment flow via TraceEnvClient") |
| print("=" * 60) |
|
|
| |
| with TraceEnvClient(base_url=BASE).sync() as client: |
| |
| print("\n[1] Reset episode...") |
| result = client.reset() |
| obs = result.observation |
| print(f" Episode ID: {obs.episode_id}") |
| print(f" Instruction: {obs.instruction}") |
| print(f" Step: {obs.step}") |
|
|
| |
| print("\n (Waiting 1 second...)") |
| time.sleep(1) |
|
|
| print("\n[2] Step: PLAN...") |
| result = client.step(TraceAction( |
| action_type="PLAN", |
| content="Step 1: Query Gmail for receipts in 2025. Step 2: Memorize key findings. Step 3: Verify results. Step 4: Submit final answer.", |
| )) |
| print(f" Done: {result.done}") |
| print(f" Reward: {result.reward}") |
| print(f" Context: {result.observation.context[:120]}") |
|
|
| |
| print("\n[3] Step: RETRIEVE from gmail...") |
| result = client.step(TraceAction( |
| action_type="RETRIEVE", |
| content="receipt 2025", |
| source="gmail", |
| )) |
| print(f" Done: {result.done}") |
| print(f" Reward: {result.reward}") |
| print(f" Context: {result.observation.context[:120]}") |
|
|
| |
| print("\n[4] Step: MEMORIZE...") |
| result = client.step(TraceAction( |
| action_type="MEMORIZE", |
| content="Found receipts from Gmail for 2025 transactions.", |
| )) |
| print(f" Done: {result.done}") |
| print(f" Reward: {result.reward}") |
|
|
| |
| print("\n[5] Step: VERIFY...") |
| result = client.step(TraceAction( |
| action_type="VERIFY", |
| content="Receipts were found in Gmail for 2025.", |
| )) |
| print(f" Done: {result.done}") |
| print(f" Reward: {result.reward}") |
| print(f" Verified: {result.observation.context[:120]}") |
|
|
| |
| print("\n[6] Step: ANSWER...") |
| result = client.step(TraceAction( |
| action_type="ANSWER", |
| content="Based on my search of Gmail, I found several receipts from 2025 including order confirmations, invoices, and subscription renewals.", |
| )) |
| print(f" Done: {result.done}") |
| print(f" Reward: {result.reward}") |
| assert result.done == True |
|
|
| print("\n" + "=" * 60) |
| print("ALL TESTS PASSED!") |
| print("=" * 60) |
|
|
|
|
| if __name__ == "__main__": |
| test_full_flow() |
|
|