Skip to content

Configuring agents

You can configure WIRE in the Configuration app or with SQL procedures. Both write to the same tables in the app's control schema.

The Configuration app

Open the app from Data Products > Apps in Snowsight. You need the wire_admin application role. The Configuration app has these pages:

Page Use it to
Setup Check that Cortex AI access is in place, and enable AI features if CORTEX_USER was granted after install.
Use Cases Create and manage use cases.
Agents Create, edit, test, and activate agents.
Categories Define the categories that triage agents assign.
Feedback Send product feedback. See Feedback and support.

Configure a use case with SQL

Each step below has an equivalent in the Configuration app.

1. Create a use case

CALL wire_native_app.main.upsert_use_case(
    p_use_case    => 'tickets',
    p_description => 'IT support ticket triage',
    p_active_ind  => TRUE
);

2. Define categories (triage agents only)

Categories are grouped into a named, versioned class. Add one row per category:

CALL wire_native_app.main.upsert_class_category(
    p_use_case       => 'tickets',
    p_class_name     => 'ticket_priority',
    p_class_version  => 'v1',
    p_label          => 'URGENT',
    p_active_ind     => TRUE,
    p_priority_order => 1,
    p_description    => 'Service outage or security incident affecting many users',
    p_examples       => '["Email is down for the whole office"]',
    p_actions        => NULL
);

3. Create the agent

CALL wire_native_app.main.upsert_agent_config(
    p_agent_name               => 'ticket_triage',
    p_use_case                 => 'tickets',
    p_version                  => 'v1',
    p_active_ind               => FALSE,
    p_agent_type               => 'triage',
    p_prompt                   => '<your prompt>',
    p_llm_model                => 'claude-haiku-4-5',
    p_parameters               => '{"temperature": 0.2}',
    p_response_format          => NULL,
    p_common_prompt_use_case   => NULL,
    p_common_prompt_agent_name => NULL,
    p_common_prompt_version    => NULL,
    p_class_name               => 'ticket_priority',
    p_class_version            => 'v1',
    p_input_view               => 'my_db.my_schema.triage_input',
    p_output_table             => 'my_db.my_schema.triage_output'
);
Parameter Notes
p_agent_type One of the agent types: triage, analysis, summary, rollup, retrospective, custom, or common_prompt.
p_prompt What the agent should do. The Agents page starts you with the type's default prompt.
p_llm_model Any Cortex model available in your region.
p_parameters Model options as JSON, such as {"temperature": 0.2}.
p_response_format Optional JSON schema that the model's output must follow.
p_common_prompt_* Optional. Points to a common_prompt agent whose text is shared with this agent.
p_class_name, p_class_version The categories a triage agent assigns.
p_input_view, p_output_table Fully qualified names of the objects from Connecting your data.

Saving an agent checks that the agent type is valid and that the app can reach the input view and output table. If grants are missing, the result lists the GRANT statements to run.

4. Test before you activate

Save a new agent as inactive, then do a dry run. A dry run sends one row from the input view through the model, so it catches problems such as an unavailable model or a prompt the model can't follow before the agent runs on all your data:

CALL wire_native_app.main.dry_run_agent(
    p_use_case   => 'tickets',
    p_agent_name => 'ticket_triage',
    p_version    => 'v1'
);

On the Agents page, an agent can only be activated after a successful dry run. The page can also review your prompt with AI and suggest improvements.

5. Activate the agent

Save the agent again with p_active_ind => TRUE, or activate it on the Agents page. Activating a version deactivates the agent's other versions.

Versioning agents

To change a working agent, save it under a new p_version and dry run it. The previous version keeps running until you activate the new one, and stays available if you need to switch back.