
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
@agentskit/tools
Advanced tools
Give your agents real-world capabilities without writing a single integration.
Tags: ai · agents · llm · agentskit · ai-agents · function-calling · tool-use · mcp · web-search · filesystem
basePath, shell commands require an explicit allowlist, so agents can't escape their boundaries@agentskit/runtime, useChat, or any custom ReAct loop@agentskit/templates and register them the same way as built-insnpm install @agentskit/tools
import { createRuntime } from '@agentskit/runtime'
import { openai } from '@agentskit/adapters'
import { webSearch, filesystem, shell } from '@agentskit/tools'
const runtime = createRuntime({
adapter: openai({ apiKey: process.env.OPENAI_API_KEY, model: 'gpt-4o' }),
tools: [
webSearch(),
...filesystem({ basePath: './workspace' }),
shell({ timeout: 10_000, allowed: ['ls', 'cat', 'grep'] }),
],
})
const result = await runtime.run('Find the README and summarize it')
console.log(result.content)
useChat (browser)Tools are plain ToolDefinition values — register them in useChat the same way as in createRuntime.
defineZodToolIf you use Zod, @agentskit/tools ships defineZodTool — a factory that:
execute args from a Zod schema (full TypeScript inference)schema.parse before calling your functiontoJsonSchema callbackZod and zod-to-json-schema are not bundled — install them as peer dependencies.
npm install zod zod-to-json-schema
import { z } from 'zod'
import { zodToJsonSchema } from 'zod-to-json-schema'
import { defineZodTool } from '@agentskit/tools'
import type { JSONSchema7 } from 'json-schema'
const lookupUser = defineZodTool({
name: 'lookup_user',
description: 'Look up a user by ID.',
schema: z.object({
userId: z.string().uuid(),
includeProfile: z.boolean().optional(),
}),
toJsonSchema: (s) => zodToJsonSchema(s) as JSONSchema7,
async execute(args) {
// args.userId → string (UUID-validated by Zod at runtime)
// args.includeProfile → boolean | undefined
return await db.users.findById(args.userId, { profile: args.includeProfile })
},
})
For tools without Zod, use defineTool from @agentskit/core with a JSON Schema as const.
webSearch() — live web search for agentsfilesystem({ basePath }) — sandboxed read, write, list, deleteshell({ allowed }) — shell execution with command allowlistdefineZodTool — Zod-based tool factory with runtime validation and type inferenceToolDefinition contract (ADR 0002) — parallel tool calling supported@agentskit/runtime, useChat, or any custom loop| Package | Role |
|---|---|
| @agentskit/core | ToolDefinition contract |
| @agentskit/runtime | createRuntime({ tools }) |
| @agentskit/react | useChat + tools in the UI |
| @agentskit/templates | Scaffold new tools |
MIT — see LICENSE.
FAQs
Reusable executable tools for AgentsKit agents.
The npm package @agentskit/tools receives a total of 409 weekly downloads. As such, @agentskit/tools popularity was classified as not popular.
We found that @agentskit/tools demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.