Metadata-Version: 2.4
Name: search2o
Version: 0.11.1
Summary: Search2o Agent Server
Author-email: Search2o <info@search2o.com>
License-Expression: LicenseRef-Proprietary
Project-URL: Homepage, https://search2o.com
Project-URL: Repository, https://github.com/Search2o/agent-server
Keywords: search,agent,agents,llm,ai
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Framework :: FastAPI
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: fastapi<1.0,>=0.141
Requires-Dist: uvicorn[standard]<1.0,>=0.35
Requires-Dist: pydantic[email]<3.0,>=2.12
Requires-Dist: httpx<1.0,>=0.28
Requires-Dist: cryptography>=46.0
Requires-Dist: sqlalchemy[asyncio]<3.0,>=2.0
Requires-Dist: aiosqlite<1.0,>=0.20
Requires-Dist: mcp<2.0,>=1.29
Requires-Dist: fastmcp-slim[client]<4.0,>=3.4
Provides-Extra: test
Requires-Dist: pytest<9,>=8; extra == "test"
Provides-Extra: postgres
Requires-Dist: asyncpg<1.0,>=0.30; extra == "postgres"
Provides-Extra: mysql
Requires-Dist: aiomysql<1.0,>=0.2; extra == "mysql"
Provides-Extra: oracle
Requires-Dist: oracledb<5.0,>=3.0; extra == "oracle"
Provides-Extra: mssql
Requires-Dist: aioodbc<1.0,>=0.5; extra == "mssql"
Provides-Extra: db
Requires-Dist: asyncpg<1.0,>=0.30; extra == "db"
Requires-Dist: aiomysql<1.0,>=0.2; extra == "db"
Requires-Dist: oracledb<5.0,>=3.0; extra == "db"
Dynamic: license-file

<p align="center">
  <a href="https://search2o.com">
    <img src="https://search2o.com/images/og5.png" alt="Search2o: a platform to build, run, and use AI agents, with a search interface" width="600">
  </a>
</p>

**Website:** [search2o.com](https://search2o.com) · **Source:** [GitHub](https://github.com/Search2o/agent-server) · **GUI source:** [GitHub](https://github.com/Search2o/ui) · **Docs:** [search2o.com/docs](https://search2o.com/docs/index.html) . **Skill** [Search2o-skill](https://github.com/Search2o/search2o-skill)

This repository contains the **Search2o Agent Server**: a stateless, asynchronous Python server that runs agents inside your organization, with a REST API and a bundled GUI. Search2o is in open beta.


## Getting started

### 1. Create your account

Create your account at **[Getting started](https://search2o.com/gettingstarted.html)**. Your license key appears on that page when the account is created. No email is sent at this step.

### 2. Install the agent server

Install the agent server with the bundled GUI:

```bash
pip install search2o
```

This GitHub repository holds the agent server without the GUI; the GUI source is at [github.com/Search2o/ui](https://github.com/Search2o/ui).

### 3. Run the server

macOS / Linux:

```bash
SEARCH2O_LICENSE_KEY=your-license-key search2o
```

Windows PowerShell:

```powershell
$env:SEARCH2O_LICENSE_KEY="your-license-key"
search2o
```

Self-hosted models using Ollama, vLLM or SGLang need no vendor API key. For OpenAI, Anthropic or Gemini, before starting the server, also set one or more of `OPENAI_API_KEY`, `ANTHROPIC_API_KEY` or `GEMINI_API_KEY`. For other LLMs, see [Connecting to other LLMs](https://search2o.com/docs/llm/llm-adapters.html).

### 4. Set up your account

Open `http://127.0.0.1:9020/ui` and click **New user / Forgot password** on the sign-in dialog. Enter the same email you used to create your account in step 1. A code is emailed to that address and no other. Enter the code, choose a password, and sign in.

The server also serves its OpenAPI schema at `/openapi.json`, Swagger UI at `/docs` and ReDoc at `/redoc`.

### 5. Build your first agents

LLMs are called from an agent using an [LLM profile](https://search2o.com/docs/profiles/llm-profiles.html). You can use an existing profile or create a new one.

1. Open **Agents → Drafts** and create a draft. Select your LLM profile, then tell **Draft with AI** what you want.
2. Build two or three task-specific agents. Each agent would typically use one or two of your enterprise systems and handle a specific use case.
3. Validate and publish them. Then add plain-English descriptions so search can find them.
4. Type a question in the search box: the agent matches, runs and answers.

The same agents work in Claude Code through the [search2o-skill](https://github.com/Search2o/search2o-skill).

If you have questions, click the docs icon at the top of the UI, or see the full documentation at [search2o.com/docs](https://search2o.com/docs/index.html). We would love to hear how setting up and running your first few agents went: email [info@search2o.com](mailto:info@search2o.com), or send a message from the message icon in the GUI.

## License

The Search2o Agent Server is source available and proprietary. Use is subject to the [Search2o Software License Agreement](https://search2o.com/legal/license.html).

## Contributions

External code contributions and pull requests are not currently accepted. Bug reports, feature requests, documentation feedback, and security reports are welcome. See [CONTRIBUTING.md](https://github.com/Search2o/agent-server/blob/main/CONTRIBUTING.md).
