Skip to main content
Import any tool set and spread it into your agent’s tools object. Each tool set is a plain object whose keys are tool names — you can spread multiple sets together, or use pick / omit to narrow them.
import {
  guildTools,
  userInterfaceTools,
  pick,
  omit,
} from "@guildai/agents-sdk";
import { gitHubTools } from "@guildai-services/guildai~github";

const tools = {
  ...guildTools,
  ...userInterfaceTools,
  ...pick(gitHubTools, ["github_repos_get", "github_pulls_list"]),
};

guildTools

Platform tools that give agents access to the Guild API — workspaces, agents, triggers, credentials, workspace context, and more. Including guildTools also enables task.guild.
import { guildTools } from "@guildai/agents-sdk";

const tools = { ...guildTools };

Tool naming

Every guild tool is named guild_{endpoint} where {endpoint} is the GuildService method name. For example, get_workspace_contexts becomes guild_get_workspace_contexts.

Tools vs hooks

Most guild tools are synchronous: the runtime calls the Guild API and returns the result immediately. A few are hooks — they may suspend the agent while waiting for user action or an external callback:
Hook toolWhat it waits for
guild_agent_install_requestUser approves agent installation into the workspace
guild_credentials_requestUser completes an OAuth flow for a third-party service
guild_experimental_fetch_asyncHTTP response arrives asynchronously
guild_sleepTimer expires
Your agent does not need to handle hook suspension explicitly; the runtime persists the agent’s state, and onToolResults / automatic resumption continues where you left off.

Full endpoint listing

All 55 guild_* tools correspond 1-to-1 with the GuildService methods documented in the Task object — task.guild section, organized into these groups:
GroupExample tools
Current userguild_get_me, guild_get_my_workspaces, guild_get_my_organizations
Usersguild_search_users, guild_get_user
Agentsguild_list_agents, guild_create_agent, guild_search_agent, guild_get_agent_code
Agent likesguild_create_agent_like, guild_list_agent_likers
Organizationsguild_get_organization, guild_get_organization_workspaces
Workspacesguild_get_workspace, guild_get_workspace_contexts, guild_create_workspace_context
Triggersguild_create_workspace_trigger, guild_activate_trigger, guild_deactivate_trigger
Sessions & tasksguild_get_session, guild_get_task_workspace_agents
LLM usageguild_get_daily_llm_usage, guild_get_hourly_llm_usage
Credentials & installguild_credentials_request, guild_agent_install_request
Flow control & HTTPguild_sleep, guild_experimental_fetch, guild_experimental_fetch_async
See the full tables for descriptions of every endpoint.

userInterfaceTools

Tools for interacting with the user. Including this set also enables task.ui.
ToolDescription
ui_promptAsk the user a question and block until they respond (hook — suspends execution)
ui_notifyFire-and-forget notification, progress update, or error message
ui_pingHealth-check the UI surface (mostly for testing)
import { userInterfaceTools } from "@guildai/agents-sdk";
llmAgent automatically includes userInterfaceTools — you don’t need to add them manually. Include them explicitly only in coded agents that need user interaction.

consoleTools

Debug and diagnostic logging.
ToolDescription
console_logLog a message at a given level (debug, info, warn, error)
import { consoleTools } from "@guildai/agents-sdk";
task.console is always available regardless of whether consoleTools is included. Include consoleTools in llmAgent definitions to give the LLM access to debug logging.

noTools

An explicit empty tool set. Useful when an agent deliberately needs no tools — makes the intent clear instead of passing {}.
import { noTools } from "@guildai/agents-sdk";

export default agent({
  description: "Returns the input unchanged.",
  inputSchema,
  outputSchema,
  tools: noTools,
  run: async (input) => input,
});

Service integrations

Third-party service tools are imported from their own @guildai-services/* packages. Add them to dependencies in your agent’s package.json.
ServiceImport
GitHubimport { gitHubTools } from "@guildai-services/guildai~github"
Slackimport { slackTools } from "@guildai-services/guildai~slack"
Jiraimport { jiraTools } from "@guildai-services/guildai~jira"
Bitbucketimport { bitbucketTools } from "@guildai-services/guildai~bitbucket"
Azure DevOpsimport { azureDevOpsTools } from "@guildai-services/guildai~azure-devops"
Confluenceimport { confluenceTools } from "@guildai-services/guildai~confluence"
Figmaimport { figmaTools } from "@guildai-services/guildai~figma"
Cypressimport { cypressTools } from "@guildai-services/guildai~cypress"
New Relicimport { newrelicTools } from "@guildai-services/guildai~newrelic"
TestRailimport { testrailTools } from "@guildai-services/guildai~testrail"
Credentials are configured at the organization level in Settings > Credentials at app.guild.ai using either OAuth or an API token, depending on the service configuration. All tools authenticate automatically through the workspace’s connected accounts.

Selecting specific tools

Use pick to cherry-pick or omit to exclude specific tools from a set:
import {
  pick,
  omit,
  guildTools,
  userInterfaceTools,
} from "@guildai/agents-sdk";
import { gitHubTools } from "@guildai-services/guildai~github";

// Include only what you need
const tools = {
  ...userInterfaceTools,
  ...pick(gitHubTools, [
    "github_repos_get",
    "github_pulls_list",
    "github_issues_create_comment",
  ]),
};

// Or exclude what you don't want
const trimmedGuild = omit(guildTools, [
  "guild_generate_agent_avatar",
  "guild_create_agent_like",
  "guild_delete_agent_like",
]);
Keeping the tool list small reduces the chance of an LLM calling unintended tools and lowers token cost in the tool definitions portion of the prompt.