> ## Documentation Index
> Fetch the complete documentation index at: https://docs.olostep.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrazione Olostep + Nanobot

> Usa Olostep come backend di ricerca web per lo strumento web_search di nanobot.

Olostep aggiunge un backend di ricerca per lo strumento `web_search` di nanobot, fornendo agli agenti risposte web adatte all'AI e link alle fonti senza richiedere la creazione di un pipeline di recupero personalizzato.

## Funzionalità

<CardGroup cols={2}>
  <Card title="Risposte AI" icon="sparkles">
    Restituisci una risposta concisa più link alle fonti di supporto.
  </Card>

  <Card title="Configurazione Semplice" icon="plug">
    Abilita il provider con un singolo valore di configurazione e una chiave API.
  </Card>

  <Card title="Dipendenza Opzionale" icon="boxes-stacked">
    Installa Olostep solo quando ne hai bisogno.
  </Card>

  <Card title="Supporto Proxy" icon="network-wired">
    Inoltra le richieste tramite `tools.web.proxy` quando richiesto.
  </Card>

  <Card title="Fallback Sicuri" icon="shield-halved">
    Ricade su DuckDuckGo quando non è disponibile una chiave Olostep.
  </Card>

  <Card title="Output Normalizzato" icon="list">
    Utilizza lo stesso formato di output di ricerca web degli altri provider.
  </Card>
</CardGroup>

## Installazione

<CodeGroup>
  ```bash pip theme={null}
  pip install "nanobot-ai[olostep]"
  ```

  ```bash poetry theme={null}
  poetry add "nanobot-ai[olostep]"
  ```
</CodeGroup>

<Note>
  Se gestisci le dipendenze manualmente, il pacchetto sottostante è `olostep>=0.1.0`.
</Note>

## Configurazione

Imposta la tua chiave API con una variabile d'ambiente o la configurazione di nanobot.

### Variabile d'ambiente

```bash theme={null}
export OLOSTEP_API_KEY="your-api-key"
```

### File di configurazione

Aggiungi questo a `~/.nanobot/config.json`:

```json theme={null}
{
  "tools": {
    "web": {
      "search": {
        "provider": "olostep",
        "apiKey": "YOUR_OLOSTEP_API_KEY"
      }
    }
  }
}
```

### Proxy opzionale

Se il tuo ambiente richiede un proxy, configurarlo una volta sotto `tools.web.proxy`:

```json theme={null}
{
  "tools": {
    "web": {
      "proxy": "http://127.0.0.1:7890"
    }
  }
}
```

## Strumenti / Metodi Disponibili

### `web_search`

Usa Olostep impostando `tools.web.search.provider` su `olostep`.

#### Parametri

<ParamField path="provider" type="string">
  Imposta su `olostep` per abilitare questa integrazione. Default: `duckduckgo`
</ParamField>

<ParamField path="apiKey" type="string">
  Chiave API Olostep. Puoi anche usare la variabile d'ambiente `OLOSTEP_API_KEY`.
</ParamField>

<ParamField path="baseUrl" type="string">
  Non utilizzato da Olostep. Mantenuto per coerenza della configurazione.
</ParamField>

<ParamField path="maxResults" type="integer" default="5">
  Risultati per ricerca, da 1 a 10.
</ParamField>

<ParamField path="timeout" type="integer" default="30">
  Timeout di ricerca in secondi.
</ParamField>

<ParamField path="proxy" type="string or null">
  URL del proxy configurato sotto `tools.web`.
</ParamField>

<CodeGroup>
  ```json Basic Setup theme={null}
  {
    "tools": {
      "web": {
        "search": {
          "provider": "olostep",
          "apiKey": "YOUR_OLOSTEP_API_KEY"
        }
      }
    }
  }
  ```

  ```json With Environment Variable theme={null}
  {
    "tools": {
      "web": {
        "search": {
          "provider": "olostep"
        }
      }
    }
  }
  ```

  ```bash theme={null}
  export OLOSTEP_API_KEY="your-api-key"
  ```

  ```json With Proxy theme={null}
  {
    "tools": {
      "web": {
        "proxy": "http://127.0.0.1:7890",
        "search": {
          "provider": "olostep",
          "apiKey": "YOUR_OLOSTEP_API_KEY"
        }
      }
    }
  }
  ```
</CodeGroup>

## Esempi Completi di Agenti

### Esempio 1: Assistente di Ricerca Rapida

```python theme={null}
import asyncio

from nanobot import Nanobot


async def main() -> None:
    bot = Nanobot.from_config()
    result = await bot.run(
        "Use web search to summarize the latest Olostep SDK capabilities and cite sources.",
        session_key="olostep-research",
    )
    print(result.content)


asyncio.run(main())
```

### Esempio 2: Flusso di Lavoro di Ricerca in un Workspace

```python theme={null}
import asyncio

from nanobot import Nanobot


async def main() -> None:
    bot = Nanobot.from_config(workspace="/home/user/projects/research")
    result = await bot.run(
        "Find recent documentation for programmatic web access tools and list the key tradeoffs.",
        session_key="olostep-workspace-demo",
    )
    print(result.content)


asyncio.run(main())
```

### Esempio 3: Configurazione di Ricerca Consapevole del Proxy

```python theme={null}
import asyncio

from nanobot import Nanobot


async def main() -> None:
    bot = Nanobot.from_config(workspace="/home/user/projects/research")
    result = await bot.run(
        "Search for implementation notes about web-scraping SDKs and summarize the differences.",
        session_key="olostep-proxy-demo",
    )
    print(result.content)


asyncio.run(main())
```

## Configurazione / Opzioni

* Imposta `tools.web.search.provider` su `olostep` per abilitare l'integrazione.
* Mantieni `tools.web.enable` come `true` se vuoi sia `web_search` che `web_fetch`.
* Imposta `tools.web.enable` su `false` per disabilitare tutti gli strumenti web integrati.
* Imposta `tools.web.proxy` se il tuo ambiente richiede traffico in uscita tramite un proxy.
* Lascia `provider` non impostato se vuoi il comportamento di fallback predefinito di DuckDuckGo.

### Comportamento di Fallback

Se Olostep è selezionato ma non è disponibile una chiave API, nanobot ricade su DuckDuckGo invece di fallire.

## Funzionalità Specializzate

* **Risposte consapevoli delle fonti** — Olostep restituisce una risposta più link alle fonti.
* **Formattazione condivisa** — i risultati sono resi nello stesso output di ricerca normalizzato utilizzato dagli altri provider.
* **Nessuna dipendenza rigida** — il provider è importato dietro un blocco `try/except`, quindi nanobot funziona ancora senza Olostep installato.
* **Trasporto consapevole del proxy** — `tools.web.proxy` è applicato al client HTTP sottostante utilizzato dall'integrazione.

## Prezzi

I prezzi di Olostep sono gestiti direttamente da Olostep e possono cambiare nel tempo. Controlla il dashboard del tuo account Olostep per piani attuali, quote e costi di utilizzo.

## Supporto

* **PyPI**: [pypi.org/project/olostep](https://pypi.org/project/olostep/)
* **Documentazione**: [docs.olostep.com](https://docs.olostep.com)
* **Homepage**: [olostep.com](https://www.olostep.com)
* **Repository GitHub**: [github.com/olostep-api/olostep-py](https://github.com/olostep-api/olostep-py)
* **Problemi GitHub**: [github.com/olostep-api/olostep-py/issues](https://github.com/olostep-api/olostep-py/issues)
* **Email**: [team@olostep.com](mailto:team@olostep.com)

## Risorse Correlate

<CardGroup cols={2}>
  <Card title="API Risposte" icon="question" href="/features/answers/answers">
    Scopri l'endpoint Risposte che alimenta questa integrazione
  </Card>

  <Card title="SDK Python" icon="python" href="/sdks/python">
    Esplora l'SDK Python di Olostep
  </Card>

  <Card title="Risultati di Ricerca" icon="magnifying-glass" href="/searches/searches">
    Comprendi le capacità di ricerca web
  </Card>

  <Card title="Documentazione API" icon="book" href="/get-started/authentication">
    Sfoglia il riferimento completo dell'API
  </Card>
</CardGroup>
