tool-creation

Create and register typed custom tools for Reactive Agents TypeScript projects.

21|4|Updated Feb 19, 2026
One-click install
npx skills add https://github.com/tylerjrbuell/reactive-agents-ts --skill tool-creation
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tool-creation
Source: https://github.com/tylerjrbuell/reactive-agents-ts/tree/main/apps/docs/skills/tool-creation
Command: npx skills add https://github.com/tylerjrbuell/reactive-agents-ts --skill tool-creation

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill removes friction from adding, typing, and controlling custom tools for Reactive Agents TypeScript projects by providing clear ToolDefinition requirements, registration patterns, and enforcement hooks so agents reliably call external APIs, databases, or file operations when required.

Core Features & Use Cases

  • Typed tool factories: Use tool() for simple async handlers or defineTool() for Effect-native typed parameters and handlers.
  • Registration & gating: Register custom tools alongside built-ins, restrict allowed tools, and require specific tools before completion.
  • Safety & controls: Configure per-tool timeouts, risk levels, approval requirements, and per-tool call budgets to enforce guardrails.
  • Use case: Add a lookup-user API tool with typed input and require the agent to call it before producing a final answer for user data retrieval workflows.

Quick Start

Register a typed lookup-user tool and enable it via withTools({ tools: [lookupUser], allowedTools: ['lookup-user'] }) so the agent can call it during task execution.

Frequently Asked Questions about tool-creation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create custom agent tools for TypeScript projects?

Create custom agent tools for TypeScript by defining ToolDefinition objects with typed parameters, return types, and handlers using tool() for simple async operations or defineTool() for Effect-native typed handlers.

How do I require an agent to call a specific tool before completing a task?

Require an agent to call a specific tool before completion by using the withRequiredTools enforcement hook during registration, ensuring external actions like API calls execute before the agent produces a final answer.

Can I set timeouts and approval requirements for individual agent tools?

Set per-tool timeouts, risk levels, approval flags, and call budgets for individual agent tools by configuring these safety controls directly within the ToolDefinition object during creation.

How do I restrict which custom tools an agent is allowed to use?

Restrict allowed tools for an agent by registering custom tools alongside built-ins and applying withTools({ allowedTools: ['tool-name'] }) to gate execution and limit the agent's available actions.

What is the difference between tool() and defineTool() for agent tool creation?

Use tool() for simple async handlers when creating agent tools, whereas defineTool() provides Effect-native typed parameters and handlers for more structured integration within Reactive Agents TypeScript projects.

Does this tool creation skill work for integrating database queries and file operations?

Integrate API calls, database queries, and file operations into agent workflows by creating typed ToolDefinition objects that encapsulate these external actions and registering them for agent execution.