Files
browser-use/docs/customize/code-agent/output-format.mdx
2025-11-01 23:43:36 +01:00

104 lines
2.9 KiB
Plaintext

---
title: "Output Format"
description: "Understanding CodeAgent return values and how to access execution history"
icon: "arrow-right-to-bracket"
mode: "wide"
---
## NotebookSession
The `run()` method returns a `NotebookSession` object containing all executed code cells and their results:
```python
session = await agent.run()
# Access basic properties
session.id # Unique session identifier
session.cells # List of CodeCell objects
session.current_execution_count # Total number of executed cells
session.namespace # Dictionary with all variables from execution
# Helper methods
session.get_cell(cell_id) # Get a specific cell by ID
session.get_latest_cell() # Get the most recently executed cell
```
## CodeCell Properties
Each cell in `session.cells` represents one executed code block:
```python
for cell in session.cells:
cell.id # Unique cell identifier
cell.cell_type # 'code' or 'markdown'
cell.source # The code that was executed
cell.output # Output from code execution (if any)
cell.execution_count # Execution order number
cell.status # 'pending', 'running', 'success', or 'error'
cell.error # Error message if execution failed
cell.browser_state # Browser state after execution
```
## Accessing Results
### Basic Usage
```python
session = await agent.run()
# Iterate through all executed cells
for cell in session.cells:
print(f"Cell {cell.execution_count}:")
print(f" Code: {cell.source}")
if cell.error:
print(f" Error: {cell.error}")
elif cell.output:
print(f" Output: {cell.output}")
print(f" Status: {cell.status}")
# Get the last cell
last_cell = session.get_latest_cell()
if last_cell:
print(f"Last output: {last_cell.output}")
# Access variables from the execution namespace
products = session.namespace.get('products', [])
print(f"Extracted {len(products)} products")
```
### Checking Task Completion
When the agent calls `done()`, the result is stored in the namespace:
```python
session = await agent.run()
# Check if task was completed
task_done = session.namespace.get('_task_done', False)
task_result = session.namespace.get('_task_result')
task_success = session.namespace.get('_task_success')
if task_done:
print(f"Task completed: {task_success}")
print(f"Result: {task_result}")
```
### Getting All Outputs
```python
session = await agent.run()
# Get all outputs (excluding errors)
outputs = [cell.output for cell in session.cells if cell.output]
# Get all errors
errors = [cell.error for cell in session.cells if cell.error]
# Get successful cells only
successful_cells = [cell for cell in session.cells if cell.status == 'success']
```
## Data Models
See the complete data model definitions in the [CodeAgent views source code](https://github.com/browser-use/browser-use/blob/main/browser_use/code_use/views.py).