Let your users converse with hundreds of task‑focused AI agents

Developers build, validate and publish task‑focused agents on the agent server. They describe when to use each one in plain English.

Users start a conversation with a request. The agent server finds the right agent with semantic search, and runs it on that request. Follow‑up requests can bring in other agents, and build on previous results.

The agent server keeps every run safe, bounded and observable.

Developers
Users
Search2o agent serverpip install search2o
Agents
Build, validate, publish agents
Is part 7731 in stock in Berlin?Inventory: Berlin has 42 units of part 7731, below its reorder point of 60.
Describe agents in EnglishInventory: Reports stock levels by part and site.Purchasing: Raises purchase orders with approved suppliers.
Reorder the part.Purchasing: Done. PO‑5519 orders 18 units of part 7731 for Berlin.

Demo: Chat with agents

How a conversation works

Agents share conversation context and build on the LLM message history from previous agents.

Conversation
Book my trip for Tuesday's all‑day meeting in New York
Travel desk UA1191 departs 06:00 Tuesday, back at 19:30, and a night at the Marriott near the office. $1,240. Book it? BookHold Submit
Travel deskBooked UA1191 and the hotel night. The confirmation is in your inbox.
File the expenses for that trip
ReimbursementsFiled the New York trip, $1,240, against your cost center. Sent to your manager for approval.

Demo: Trace an agent run

How an agent is defined

Draft with AI and the schema‑aware code editor help you build an agent in minutes, just by describing it.

// A simple RAG agent that answers from a knowledge base.{
  "functions": {
    "main": {
      "commands": {
        "api": {
// The API profile 'knowledgeBase', defined externally, is used to connect.          "profile": "knowledgeBase",
          "queryParams": {
// The API query parameter is set to sys.query, a built-in variable that contains the user’s request.            "q": "{ sys.query }"
          }
        },
        "var": {
// 'result' is a built-in variable that is set to the result of the API call. A variable called 'passages' is set with a Python expression using 'result'."passages": "{ [hit['text'] for hit in result[:5]] }"        },
        "llm": {
// An LLM profile, 'gpt5_mini', is used. LLM profiles specify the vendor and the model in use.          "profile": "gpt5_mini",
// A prompt named 'answer' is used to talk to the LLM. This prompt is specific to this agent and defined externally.          "prompt": "answer",
          "streamOutput": true
        }
      }
    }
  }
}

Demo: Draft an agent with AI

How it fits into your organization

The agent server runs stateless in your organization and keeps its state in the cloud.

Enterprise features

Security & privacy

Secrets live in your vault. Conversations and memories are encrypted, by default or, optionally, end to end. Data privacy lists how each kind of data is handled.

Source available

Everything that runs in your organization can be built from the source: the agent server and the UI. Set the logging configuration to see every call to the cloud.

Multiple environments

An agent refers to enterprise systems by profile name. Dev and prod profiles point at their own systems, so the same agent runs unchanged.

Horizontally scalable

Agent servers are stateless and can be run in a cluster. Configuration and profile changes are live on the next agent run on every server, without a restart.

Integration

Integrate at three levels: from Python expressions inside an agent, through the REST API, and with hooks that run your code at the server’s decision points.