What the skill does
The skill does two things. It gives the assistant one entry in its list of skills that stands for every published agent, and it makes two calls on the Search2o REST API: search to find the agent for a request, and execAgent to run it. A request with several parts is handled as a series of those calls in one conversation, with the assistant as the orchestrator.
One skill for all the agents in Search2o
Every client loads the name and description of each installed skill into the assistant's context, and the assistant chooses among them by reading those descriptions. Anthropic recommends keeping the number small because selection gets less reliable as the list grows. Its API allows 20 skills per request; for more capabilities, it recommends routing requests to different skill sets by task type.
Search2o does that routing. The skill takes one slot in the assistant's list, and behind it Search2o matches the request against the descriptions of every published agent, with accuracy measured and published at a thousand agents; see Search quality. The assistant decides whether a request is for the company's systems at all. Search2o decides which agent.
The two calls
The skill uses two calls on the Search2o REST API, the same API the Search2o GUI and the Slack, Teams and Google Chat bots use.
searchtakes a request and returns the matching agents: name, title and description.execAgentruns one agent and returns its output, a conversation id for follow-ups and, when the agent has paused for input, the questions it is asking.
A request, step by step
With those two calls, a request flows like this:
- The assistant judges from the skill's description that the request is for a company agent and calls
search. - One match: it runs the agent. Two or three: it judges from their descriptions which fits the request best and runs that one, asking the person only if it cannot tell. None: it says that no internal agent covers this, and answers as it normally would.
- It calls
execAgent, passing the conversation id from earlier in the same chat if there is one, and keeps the id it gets back. - If the result carries questions, it puts them to the person, collects the answers, and calls
execAgentagain with the answers as inputs. - It shows the output.
The assistant as orchestrator
A request often has more than one part. The assistant splits it, writes a query for each part, and runs each through search and execAgent in turn — all in the same Search2o conversation, by passing the same conversation id. Each agent it runs sees what the earlier ones produced, because agents share the conversation's state; see Conversation state. When the last part is done, the assistant composes one answer from the series of results.
Search2o supplies the parts: one validated agent per query, each running inside the company. The assistant supplies the plan: how to split the request, in what order, and how to present the whole. Neither side has to know the other's agents or the other's plan in advance.
An example
A support engineer in Claude Code types: has order 48812 shipped? If not, open a ticket with the warehouse.
The assistant sees two parts and a dependency between them. It writes a query for the first — status of order 48812 — and calls search. Search2o matches the order-lookup agent, runs it on the company's server against the orders database, and returns: not shipped, held for an address check.
Because the answer is "not shipped", the assistant writes the second query — open a warehouse ticket for order 48812, held for address check — and calls search again, passing the same conversation id. Search2o matches the warehouse-ticket agent, which already has the order details in the conversation's state, creates the ticket, and returns its number.
The assistant composes one answer: Order 48812 hasn't shipped — it's held for an address check. Ticket WH-1183 opened with the warehouse.
Two agents ran, written by two different developers, neither knowing about the other. The assistant decided the order and the condition; Search2o did each step inside the company, with credentials that never left the agent server, and recorded both runs under the engineer's name.

