Skip to content

Meet Controller AI

Controller AI lets you build agents that people talk to and workflows that carry out repeatable tasks. An agent can answer from reference files, call an integration action, or call a flow from a workflow as a tool. Start with the result you want and build the smallest useful version. Test its actual result, then publish it for live use.

These three examples use teaching names, sample data, and business rules.

Support helper answers questions from support-policy.md. Its example policy says to reply with the relevant policy, ask for a missing ticket ID, and escalate account-specific requests. The first agent lesson stops after checking its answers. Later, you can add a Support desk workflow to record an escalation or an integration action to notify a chosen support channel. An agent can attach either kind of tool.

Invoice intake begins with a flow called Check invoice. Give it an invoice ID and amount. It returns the ID and whether the amount exceeds the example review threshold of 1000. INV-104 / 120 does not need review. INV-105 / 1500 does. The first workflow lesson calculates those results. Later lessons add Store invoice and saved records. This example records review decisions. It does not make payments.

Daily invoice digest turns a small approved invoice queue into one Slack message. Later lessons use a schedule of 09:00 America/Chicago and a channel named docs-digest-test. You choose the real destination when building it. A trigger can map a schedule or app event into a flow.

Start with one sentence describing what someone supplies and what they should receive: “Ask a support question and receive the relevant policy,” or “Submit an invoice amount and receive a review decision.” That sentence gives you something concrete to test.

A Controller AI agent is the product object you create. Your connected assistant, such as Claude, ChatGPT, Codex, or Cursor, helps you build it. Controller AI also provides an in-product builder. For Support helper, the builder writes the instructions. Support helper later answers the support question.

When one supported app operation is enough, choose an integration action. It can attach directly to an agent without a wrapper workflow. When the task needs several steps, a calculation, a reusable input/output contract, or stored records, choose a workflow.

In the app: open Controller AI, describe the outcome on Home, and select Build for me. If usage credit is empty, open Settings → Billing, add credit, then retry. To build directly, use Agents → New agent or Workflows → New workflow.

With an assistant: use Connect → Build with your coding agent, then follow Choose your setup for your host. Choose CLI or MCP for this task. Without selecting a workflow, run these commands to get your account identity and agent inventory.

Terminal window
cai auth status --json
cai agent list --ownership mine --json

For MCP instead, use account_status with {}, then agent_list with ownership: "mine".

For either method, check the returned identity and inventory before deciding whether to create or edit an agent.

A connection authorizes an app account for a node or tool. A wire between canvas nodes is an edge. Support helper’s first lesson needs reference knowledge, so it does not ask you to connect a support service.

When you use agent Test, you work with the draft. The first workflow lesson runs the development version. Development and live have separate workflow definitions and data stores. This separation does not simulate providers. During testing, a configured send or write can still reach its real destination.

Support helper’s replies use the organization’s usage balance. An end-to-end development flow run incurs the base workflow-run charge. An isolated node test skips that base charge. Its action still incurs applicable usage and provider effects.

For Support helper, compare the answer with the policy and check that an account-specific request is handed back to a person. For Check invoice, inspect both returned fields for both sample amounts. For the digest, select an intended test channel and check the resulting message.

When you save agent changes, the draft updates and active Test runtimes stop. The next turn uses the updated draft. Publishing snapshots the draft, moves existing Live conversations to the new version, interrupts in-flight Live answers, and expires pending approvals. If cleanup fails after commit, publication still stands. There is no agent-version rollback. To correct a bad version, publish again. To give other people access, share the agent separately.

When you publish a workflow, its definition is copied into a live release. Publication never copies development records into the live store. Live agents following that workflow adopt its new release without another agent publish. If a refresh fails, a session can use the previous release until it restarts. Direct actions use their currently bound connection. If you change the bound connection, later calls use the new connection. If you revoke the connection or detach the action, those calls are blocked.

After checking the first result, follow Publish and share agents or Publish a workflow. Choose the audience and inspect a live result.