Skip to main content
Credal | Documentation

Search documentation

Type to search this documentation.

On this pageOverview

Credal Open Source Actions

Credal's Open Source Actions Framework lets you add custom actions to Credal Agents via LLM function calling. The full source lives at credal-ai/actions-sdk — all contributions, bug reports, and feature requests should go there.

For more information about Credal's Agent platform, visit here.

To add or update an action, clone the actions-sdk repo and follow these steps:

  1. Schema Update: Add or update the action in src/actions/schema.yaml. This is the first step in defining your action.

  2. Type Generation: Run npm run generate:types to generate the new types. This step is crucial for ensuring that your action has the correct type definitions.

  3. Code Formatting: Run npm run prettier-format to format the new files. Consistent formatting helps maintain code readability and quality.

  4. Provider Function Creation: Create a new provider function in src/actions/providers/<provider>/<action>.ts (e.g., src/actions/providers/math/add.ts). This function should export a function using the generated types.

  5. Action Mapping: If you are adding a new action or provider, update src/actions/actionMapper.ts and src/actions/groups.ts. This ensures that your action is correctly mapped and grouped within the framework.

Once your changes are ready, open a pull request on github.com/credal-ai/actions-sdk.

  • Schema Standardization: We are working on defining a standard for action outputs. While we have loosely followed a structure where outputs contain success and error, standardizing this can improve consistency.

  • Automating File Generation: We plan to automate steps 2-5 with a script. This script could run npm run generate:types and npm run prettier-format, create necessary files, and update mappings, allowing users to focus on filling in the generated files.

  • Auth Tokens: We aim to clarify expectations for auth token generation, especially for services with short-lived tokens, and document the type of authorization needed for each action.

To invoke an action, use the following code snippet:

TypeScript
import { runAction } from "@credal/actions";

const result = await runAction(
  "listConversations",
  "slack",
  { authToken: "xoxb-..." },
  {},
);

To run a basic test for runAction, execute the following command:

npx ts-node -r tsconfig-paths/register --project tsconfig.json tests/testRunMathAction.ts

If you have questions or run into issues, open a GitHub issue at credal-ai/actions-sdk.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu