C3 AI Documentation Home

Create C3 Action Tools from the UI

C3 Action tools allow you to wrap existing C3 Type methods and expose them as callable tools for agents. Use C3 Action tools when you want to leverage your Type System logic without writing new Python code.

The steps to open the tools gallery and create a new tool are the same for both Python tools and C3 Action tools. The steps are:

  1. Navigate to the tools gallery.
  2. Provide basic details about the new tool.
  3. Select the tool category.

For detailed instructions, see Create Python Tools from the UI.

When you reach the Select tool category step, select C3 Action Tool, and then select Create to generate the draft tool.

After you create the tool draft, you can configure the tool.

Configure the C3 Action tool

After you create a C3 Action tool draft, the Tool Configuration page opens. This workspace includes three panels:

  • Configuration (left): Define the tool's LLM description, C3 Type, and method selection.
  • Testing (center): Run standalone or agent-level tests.
  • Trace (right): Review execution traces after testing.

Configure tool settings

The Configuration panel specifies how your C3 Action method connects to the agent.

  1. LLM Tool Description: Enter text that explains what the tool does. This description helps the agent understand when and how to use the tool. For example, A tool that generates greetings based on user input.
  2. C3 Type: Enter the C3 Type name that contains the method you want to expose. For example, ALMToolUITestC3Method
  3. Method: Select the static or instance method from the Type dropdown. The dropdown populates with available methods from the specified Type.

C3 Type and Method Selection

For example in the above image these are the methods in the dropdown:

  • greetingGenerator: function(name: !string, formal: ?boolean): !string: Creates a personalized greeting message.
  • listSorter: function(inputList: ![any], descending: ?boolean): ![any]: Sorts a list of strings or numbers.
  • numberSquarer: function(inputNumber: !int): !int: Calculates the square of an integer.
  • stringConcatenator: function(stringA: !string, stringB: !string, separator: ?string): !string: Joins two strings together, optionally with a separator.
  • stringReverser: function(inputString: !string): !string: Reverses a given string.

After you select a method, the system automatically extracts and displays:

  • Method Documentation: The description from the method's documentation in the C3 Type.
  • Arguments: Parameter names, types, and descriptions extracted from the Type definition.
  • Return Type: The return type and description from the method signature.

Method Details Extracted

Hide Tool Arguments from LLMs

Non-LLM Arguments (also called injected arguments) are tool parameters that the system injects automatically during the tool call but the LLM cannot see or modify.

Use Non-LLM Arguments for:

  • Context information that the system should inject automatically.
  • Configuration values that control tool behavior.
  • System-level parameters that the agent should not modify.
  • Default values that apply across all invocations.

To add Non-LLM Arguments:

  1. In the Configuration panel, locate the Non-LLM Arguments section.
  2. Select the dropdown to add a new argument.
  3. Select the argument you want to inject from the available method parameters.
  4. Enter a default value for the argument if required.
  5. The argument is injected automatically during tool execution and hidden from the LLM.

Non-LLM Arguments

Test the C3 Action tool

The testing process for C3 Action tools is similar to Python tools. You can run standalone tests (i.e. test the tool directly) or test the tool through an agent, to validate your tool configuration.

Run standalone tests

  1. Select the Standalone Test tab.
  2. Enter sample input values for the method parameters. Example: For a greeting generator, enter Thomas for the name parameter and select True for the formal parameter.
  3. Select Test to execute the method.
  4. Review the output in the results pane. The response displays the method's return value.

Standalone Test

The standalone test confirms the underlying C3 Action method executes correctly with the provided inputs.

Test with an agent

After standalone testing, test how the tool performs when called by an agent.

  1. Select the Agent Test tab in the Testing panel.
  2. Select Select Agent to choose an existing agent from your environment.
  3. Enter a test message that would cause the agent to use your tool. Example: Generate a formal greeting for Thomas. Use the available tools.
  4. Review the agent's response and the tool execution trace in the Trace panel.

This test confirms the tool integrates correctly with agent workflows and validates that the LLM description effectively communicates the tool's purpose to the agent.

For more details on testing tools, see Create Python Tools from the UI.

Store the tool

After successful validation and testing:

  1. Select Finish Configuration in the upper-right corner.
  2. Choose Move to Store to complete configuration. This makes it available for others to add to their agents as well.

Once the tool has been moved to the store, it appears under the Store section in the gallery.

Verify in agents

The process for adding C3 Action tools to agents is the same as for Python tools. For detailed instructions on verifying your tool in agents, see Create Python Tools from the UI.

Follow these steps:

  1. Navigate to Agents > Gallery.
  2. Open an existing draft agent or create a new one.
  3. In the agent configuration, locate the Tools section and select Add Tool.
  4. Search for and select your tool.
  5. Save the agent configuration and test the tool.

For more information on creating agents, see Create Agents from Scratch.

See also

Was this page helpful?