Back to writing
ProductAugust 25, 20268 min read

Introducing Keiki

Build a capable customer-facing AI agent once, then make it available across iMessage, SMS, WhatsApp, Slack, Telegram, and email.

Great products reduce the distance between an intention and a result. Messaging is already where people ask questions, make decisions, schedule appointments, buy things, and get help. The natural place for a customer-facing agent is not another app or a widget waiting on a website. It is the conversation the customer already has open.

Keiki is a platform for building agents that live in those conversations. You define what the agent knows, how it behaves, what it remembers, which tools it can use, and where its boundaries are. Keiki provides the systems required to make that agent available across messaging platforms and operate it reliably.

The result is one agent that can represent your business wherever customers choose to reach it.

Why we built Keiki

When we started Orchid, we wanted to create an AI assistant that was as easy to use as texting another person. It had to live in iMessage, understand the person it was speaking with, remember what mattered, and be capable of getting real work done.

The idea was simple. Building it took us almost a year.

The model could produce a useful response early on. Turning that response into a dependable product consumed everything that followed. We had to build messaging infrastructure, conversation management, durable memory, browser use, tool execution, background jobs, observability, failure recovery, and the systems required to scale all of it.

We were building two products at the same time: the Orchid assistant and the platform required to make Orchid possible.

That experience taught us something important. The agent should be unique. Its personality, knowledge, judgment, and capabilities are what make it valuable. The infrastructure surrounding it is necessary, but it should not have to be rebuilt every time someone has an idea for an agent.

Keiki is the platform we wish we had when we started Orchid. It packages the systems we spent the last year building so other teams can begin with the part that is actually theirs: the agent.

One agent across every channel

Messaging infrastructure has traditionally forced teams to organize around channels. They build a Slack bot, add a separate SMS flow, and eventually create something else for WhatsApp. Each version develops its own instructions, integrations, memory, and behavior.

Keiki treats the agent as the source of truth and the channels as distribution.

You define the agent once. Adding a channel does not require rebuilding its identity or operating logic. The same knowledge, tools, behavior, and safeguards remain in place whether the conversation begins through iMessage, WhatsApp, Slack, Telegram, or email.

A channel should be a distribution decision, not a second product.

Begin with what the agent should accomplish

Creating an agent in Keiki starts with a plain-language description of its purpose. You might ask it to answer product questions, check inventory, qualify potential customers, or schedule appointments.

The builder then helps you define what the agent needs. You can attach knowledge, connect services such as Notion, enable memory and browser use, add tools, and decide which messaging platforms it should support.

Before the agent speaks with a customer, you can review its configuration and test it in a private conversation. The goal is not merely to produce a quick demo. It is to shorten the path to an agent you can confidently put in front of people.

Describe the agent, connect its knowledge and capabilities, select its channels, and test it before launch.

A useful agent has to do more than talk

A customer asking about an order does not need instructions for finding it. They want to know where it is. Someone trying to book an appointment does not want another link. They want the appointment booked.

Keiki agents can use a browser, search connected knowledge, call business tools, remember context, and perform work in the background. This allows them to move a conversation toward a result instead of stopping after an answer.

The example below shows a simple version of this. The agent is asked when Thanksgiving break begins, but the answer is not available in its knowledge. It opens the university calendar, finds the dates, and returns with the answer. The entire process is recorded and can be inspected afterward.

When the answer was not available in its knowledge, the agent found it using a browser and returned with the result.

Giving an agent the ability to act also requires control. Keiki lets teams decide which tools the agent may use, which actions require approval, and when a conversation should be handed to a person.

The quality of an agent is not measured only by how well it speaks. It is measured by whether it can reach the right result, remain within its boundaries, and recognize when human judgment is needed.

Built to be operated

Launching an agent is the beginning of the product, not the end of the project.

A customer-facing agent needs to be observed, evaluated, and improved. Teams need to understand which conversations it resolved, where it struggled, why it made a decision, and when a person had to intervene.

Keiki brings conversations from every channel into one inbox. People keeps a record of everyone the agent interacts with. Knowledge contains the information available to it. Loops shows recurring work, while Metrics tracks usage, messages, and errors.

Every agent run also includes a readable record of what happened. You can inspect what the agent remembered, which information it retrieved, which tools it used, what it decided, and what each step cost.

This creates the operating loop required to build a genuinely good agent: observe what it does, understand why it did it, and improve it over time.

A complete agent run, including every step, action, decision, and cost.

What you can build

Once an agent can combine conversation, memory, vision, a browser, and access to business systems, it can provide a complete service rather than perform a single task. With the appropriate tools, data, permissions, and human safeguards in place, teams could build agents like these.

A travel company that lives inside the group chat. A family invites the agent into the iMessage thread where they are planning a trip. It understands everyone's preferences, finds flights and hotels that satisfy the group, and builds an itinerary around the conversation. Once the travelers approve it, the agent makes the bookings. During the trip, it monitors changes, finds alternatives when a flight is cancelled, moves the hotel reservation, updates the calendar, and keeps everyone informed in the same thread.

A personal shopper that turns a photograph into an order. A customer sends a picture of a jacket they saw on the street. The agent identifies the style, searches the retailer's catalog, checks availability in the customer's size, and suggests alternatives based on previous purchases. It answers questions about fit and materials, assembles the cart, completes checkout after approval, tracks delivery, and handles an exchange if the item is not right.

A mortgage advisor that takes a buyer from curiosity to preapproval. A customer begins with a simple message about the kind of home they hope to buy. The agent explains the tradeoffs, gathers the necessary information over time, retrieves credit with permission, presents personalized rates, and helps the customer understand the available loan options. When the moment calls for a licensed professional, it brings in the right person with the entire conversation and application already organized.

An insurance and repair concierge that makes a damaged windshield disappear as a problem. A driver sends a photograph of a crack and their license plate. The agent identifies the vehicle, explains the relevant insurance coverage, begins the claim, determines which glass and camera calibration are required, and finds an appointment that fits the driver's schedule. It arranges a mobile repair, sends updates, and remains available until the car is ready.

A veterinary front door that is available the moment something goes wrong. A pet owner messages that their dog swallowed something it should not have. The agent gathers the animal's age, weight, symptoms, and timing, then provides guidance grounded in the clinic's approved medical protocols. It identifies whether the situation requires immediate attention, books the appropriate appointment, and gives the veterinary team a structured summary before the owner arrives. Routine questions are resolved quickly; uncertain or urgent cases go directly to a professional.

None of these experiences is simply a chatbot. Each is a service delivered through conversation.

When an agent can remember, reason, use software, and continue working after a message has been sent, the messaging thread stops being a support channel. It can become the product.

A Keiki agent answering for a ramen shop in iMessage: the story, the hours, and what to order.

How it works

Most teams can build their agent through the visual builder. They describe its purpose, connect knowledge and tools, select the channels, test the result, and launch it. Keiki manages the infrastructure behind it.

Developers can define the same agent in code, add custom tools, and control how it is deployed.

import { create } from '@orchid/agents' const kit = create({ apiKey: process.env.ORCHID_API_KEY!, name: 'Support Agent', agent: { model: 'google/gemini-3.5-flash', systemPrompt: ({ now }) => `You are the support agent for Acme. Current time: ${now.toISOString()}`, tools: [lookupOrder, bookAppointment], }, }) await kit.sync()

kit.sync() gives the agent to Keiki to run.

Teams that need complete control or have strict data requirements can run the agent on their own infrastructure. The way they build it remains the same.

Works with the AI tools you already use

Keiki agents also speak the APIs that AI software already understands.

Any application that connects to OpenAI or Anthropic can connect to your agent. Point it at your Keiki address, use the agent's name as the model, and each completion becomes a conversation with that agent.

import OpenAI from 'openai' const client = new OpenAI({ baseURL: 'https://<host>/api/v1/openai', apiKey: process.env.ORCHID_API_KEY, }) const reply = await client.chat.completions.create({ model: 'support', messages: [{ role: 'user', content: 'where is my order?' }], })

It is still the same agent, with the same knowledge, memory, tools, and rules. The API is another way to reach it.

Who Keiki is for

Keiki is for founders and operators who have an idea for an agent but do not want to spend a year building the infrastructure required to make it real.

It is for product and customer-experience teams that want AI to handle customer conversations with useful context, controlled actions, clear escalation, and full visibility.

It is also for developers who want the speed of a platform without giving up the ability to write their own tools, define the agent in code, or control where it runs.

A static FAQ widget does not need Keiki. Keiki is for teams building agents that are expected to represent the business, use judgment, and complete meaningful work.

The larger idea

The dominant interface of each computing era has moved closer to the way people naturally think.

Command lines required people to learn the language of computers. Graphical interfaces gave them familiar objects. Touch made software direct and physical. Conversation allows people to begin with their intention.

That shift changes what software can be. A business will no longer be represented only by a place people visit. It can also be represented by an agent people speak with: one that understands the business, remembers the relationship, and can help accomplish something.

Software is becoming someone.

Keiki is how you decide who that someone is, what it knows, what it can do, and where people can reach it.

Build your first agent

We spent almost a year building the foundation that made Orchid possible. Keiki gives other teams a way to begin with that foundation already in place.

Start with the agent you wish existed. Define what makes it valuable, connect what it needs, and make it available where the conversation is already happening.

Build your first agent →

Frequently asked questions

What is customer-facing AI?

Customer-facing AI refers to AI agents that customers interact with directly: answering questions, taking actions, and completing transactions in the channels customers already use, such as SMS, WhatsApp, and email. Keiki is a platform for building and operating these agents.

What is Keiki?

Keiki is a platform for creating AI agents with a role, memory, knowledge, and tools, and deploying them across messaging channels. It handles the runtime, transport, billing, observability, and execution so teams can focus on what the agent knows and does.

What channels does Keiki support?

SMS, iMessage/RCS, WhatsApp, Slack, Telegram, and email, plus OpenAI- and Anthropic-compatible API endpoints. Channel adapters are extensible rather than a closed list.

Can Keiki connect to my existing systems?

Yes: through custom tools, MCP servers, installable capabilities, HTTP integrations, browser automation, and sandboxed code execution.

How do I control what the agent does?

You define the agent's behavior and boundaries, and nothing runs until you review and create it. New tools ask for approval by default, every conversation and run is inspectable down to the individual step, and sensitive actions can require a human's sign-off.

Is Keiki just a chatbot?

No. Keiki agents remember context across conversations, call tools, execute workflows, and complete transactions, and escalate to a human when they should.