> ## Documentation Index
> Fetch the complete documentation index at: https://notte-experiment-visibility-md-links.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Concepts

> Core concepts in the Notte platform

## Session

A `Session` is a cloud-based browser instance managed by Notte. Sessions are Playwright-compatible and support built-in anti-detection, residential proxies, and captcha solving. You can control sessions programmatically via the Notte SDK or connect to them via Chrome DevTools Protocol.

{/* @sniptest testers/getting-started/concept_session.py */}

```python concept_session.py theme={null}
session = client.Session()  # Playwright-compatible browser
```

## Observation

An `Observation` is an AI-powered analysis of a web page's content and structure. Observations extract meaningful information about what's visible on the page, helping agents and automations understand context and make decisions.

{/* @sniptest testers/getting-started/concept_observation.py */}

```python concept_observation.py theme={null}
session = client.Session()
```

## Action

An `Action` is a high-level browser operation that you can execute on a session. Actions abstract common browser tasks like navigation, clicking, filling forms, and data extraction. Actions can be executed individually or chained together in Functions.

{/* @sniptest testers/getting-started/concept_action.py */}

```python concept_action.py theme={null}
session = client.Session()
session.execute(type="goto", url="https://example.com")
```

## Agent

An `Agent` is an AI-powered browser automation that can understand web pages, make decisions, and complete complex tasks using natural language instructions. Agents use LLMs to interpret pages and determine the best actions to take.

{/* @sniptest testers/getting-started/concept_agent.py */}

```python concept_agent.py theme={null}
session = client.Session()
agent = client.Agent(session=session)
```

## Function

A `Function` is a browser automation or agent deployed as a serverless API endpoint. Functions are reusable automations that chain multiple actions together. They can be saved, versioned, shared, invoked via HTTP requests, and scheduled to run automatically. Functions turn your scripts into production APIs without managing infrastructure.

{/* @sniptest testers/getting-started/concept_function.py */}

```python concept_function.py theme={null}
function = client.Function(function_id="workflow_abc123")
function.run(url="https://example.com")
```

## Vault

A `Vault` is a secure storage system for credentials, API keys, and sensitive data used in your automations. Vaults allow agents to access authentication information without exposing secrets in your code.

{/* @sniptest testers/getting-started/concept_vault.py */}

```python concept_vault.py theme={null}
vault = client.Vault()
vault.add_credentials(url="https://github.com", email="...", password="...")
agent = client.Agent(session=session, vault=vault)
agent.run(task="Login to GitHub")
```

## Agent Identity

An `Agent Identity` is a synthetic identity that agents can use for testing and automation. Agent Identities include email addresses, phone numbers, and other identity attributes needed for account creation and testing flows.

{/* @sniptest testers/getting-started/concept_identity.py */}

```python concept_identity.py theme={null}
persona = client.Persona()  # Generate synthetic identity
agent = client.Agent(session=session, persona=persona)
agent.run(task="Sign up for newsletter")
```
