A platform to build, run, and use AI agents — with a search interface

  • Search finds and runs the agent built for each request.
  • One conversation, many agents, each building on prior work.
  • Use from a browser, chat application, or agent skill.
Get started pip install search2o
Conversation · context shared across agents
Book me a flight to the New York office for next Tuesday
Matched travel_desk
UA1191, Tuesday 08:05 out, 18:30 back: $640. BookHold Submit
Booked UA1191 for Tuesday.
File the expenses for that trip
Matched reimbursements
Filed the New York trip. Sent to your manager for approval.
Search

How search works

Search builds an index using natural-language descriptions written by developers. This makes matching predictable, lets it scale to thousands of agents, and returns results in less than 0.5 seconds — see search quality.

hr_policy · description
Answers employee questions about Acme Corp workforce policies: vacation and leave, benefits eligibility, remote-work rules, expense limits and the code of conduct. It explains what the policy says and where to find the form. It cannot approve requests, change records or make exceptions.
System architecture

From request to result

  1. Browser, chat application, or skill

    Users can submit requests through the browser, a chat application, or an agent skill. The browser UI also provides a complete workspace for agent development and system administration.

  2. Agent server

    A stateless server designed to run standalone or in a cluster. Uses the agent framework to run agents in a controlled runtime. Encrypts sensitive information before it leaves the server. GitHub.

  3. Search2o Cloud

    The shared service behind every agent server. The cloud provides platform services including search, state management, and reporting.

Agent framework

JSON DSL designed for agents

An agent is built using 23 commands. Strings enclosed in { } are evaluated as Python expressions, with built-in safeguards. Why not Python?

Build agents with AI assistance

Try one:

40 more characters

hr_policy · agent definition
{
  // An agent is a set of functions. Execution starts in main.
  "functions": {
    "main": {
      // A function is an ordered list of commands.
      "commands": {
        // API profile: base URL, auth, pool. Secrets stay out.
        // sys.query is the user's request.
        "api": {
          "profile": "intranet",
          "url": "/policies/search",
          "queryParams": { "q": "{ sys.query }" }
        },
        "prompt": {
          // Inside { } is Python, run in a controlled runtime.
          // result is the previous command's parsed response.
          "system": "{ f'Use only these sections: {result}' }",
          "user": "{ sys.query }"
        },
        // A profile holds the vendor, model and key.
        "llm": { "profile": "claude_haiku", "streamOutput": true }
      }
    }
  }
}
Platform

Built for the enterprise

Agent security

Agents can only call what’s on your allowlist. Unsafe Python constructs are blocked. Sensitive information can be end-to-end encrypted.

Model neutrality

Bring your own keys. OpenAI, Anthropic, and Gemini are supported out of the box, along with any compatible LLM. Others need only a small adapter.

Operational continuity

Never have to restart agent servers. A change to configuration is live on the next agent run. A running agent keeps running with the old configuration.

API & automation

The agent server exposes a REST API. Use it to run non-interactive agent workflows — event-driven or in batch. The bundled search UI uses the same API.

Access & roles

Four roles: users, developers, administrators and owners. Service accounts for bots and scripts. Built-in authentication as well as single sign-on.

Reports

What ran, what failed, what it cost. Eight reports show trends in agent usage, performance, errors and LLM cost along with details.