
Security News
Anthropic Identifies Biased Reasoning and Recklessness as Drivers of Claude’s PyPI Attack
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.
@agentskit/tools
Advanced tools
Profile: major-package
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
packages/tools/.@agentskit/tools gives agents useful hands: web fetch, search, filesystem, shell, SQLite, integrations, and MCP-friendly tool definitions.
Docs: package guide · agent handoff
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 consumer-owned optional dependencies. They are
not package peers because defineZodTool accepts a structural schema and a
consumer-supplied JSON-Schema converter.
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 with Serper, Tavily, DuckDuckGo, or a custom provider.fetchUrl() — safe HTTP GET with JSON / text handling, size cap, boilerplate stripping.filesystem({ basePath }) — sandboxed read, write, and list operations.shell({ allowed }) — shell execution with command allow-list + timeout.sqliteQueryTool({ path }) — read-only SQL against a local SQLite file. Optional peer dep on better-sqlite3. Note: never feed unvalidated user prompts straight into the sql field — wrap with input filtering or use parameterized helpers if exposing it to untrusted input.slackTool({ webhookUrl }) — post to a Slack Incoming Webhook. For Bearer-token features (search, channel listing), use the slack() integration.github, linear, slack, notion, discord, gmail,
googleCalendar, stripe, postgres, s3, firecrawl, reader,
documentParsers (PDF / DOCX / XLSX), openaiImages, elevenlabs,
whisper, deepgram, maps, weather, coingecko, browserAgent
(Puppeteer). Each integration exports granular sub-tools (e.g.
githubCreateIssue, stripeCreatePaymentIntent) alongside the bundled
set.
defineZodTool — Zod-based factory with runtime validation + type inference.composeTool and wrapToolWithSelfDebug from @agentskit/core.createMandatorySandbox from @agentskit/sandbox.createMcpClient + toolsFromMcpClient — consume any MCP server's tools.createMcpServer — publish AgentsKit tools to an MCP host that supports the
documented 2024-11-05 tools bridge. Tools marked
requiresConfirmation fail closed unless authorizeToolCall returns an
explicit approval. Pass validateArgs (for example, createAjvValidator())
to enforce advertised schemas before execution; remote errors are sanitized
unless exposeErrors: true is explicitly enabled for trusted development.| Protocol revision | Lifecycle | Supported transports | Supported methods | Explicitly outside this bridge |
|---|---|---|---|---|
2024-11-05 | initialize with exact-version negotiation; tools/list and tools/call; close settles pending calls | stdio, in-memory, or an injected transport | initialize, tools/list, tools/call | resources, prompts, sampling, tasks, HTTP/WebSocket, authentication, rate limiting, and persistence |
The client and server fail closed when initialize.params.protocolVersion is
not 2024-11-05. Hosts that need an omitted capability must provide it around
the injected transport; the bridge does not imply support or isolation that it
does not implement.
All tools honor the ToolDefinition contract (ADR 0002) — parallel
tool calling works with any adapter, @agentskit/runtime, useChat,
or a custom loop.
| Subpath | Contents |
|---|---|
@agentskit/tools/mcp | createMcpClient, createMcpServer, toolsFromMcpClient, stdio + in-memory transports. MCP bridge recipe. |
@agentskit/tools/integrations | github, linear, slack, notion, discord, gmail, googleCalendar, stripe, postgres, s3, firecrawl, reader, documentParsers, openaiImages, elevenlabs, whisper, deepgram, maps, weather, coingecko, browserAgent. Integrations recipe + More integrations. |
@agentskit/tools/mcp-devtools | Runtime inspection tools for an injected RuntimeInspector; expose through @agentskit/tools/mcp. |
@agentskit/tools/validation | Optional Ajv-backed ArgsValidator for core and MCP argument enforcement. |
| 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.
@agentskit/toolsSee CONTRIBUTING.md and the monorepo LICENSE.
FAQs
Reusable executable tools for AgentsKit agents.
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.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.

Research
/Security News
Malicious Chrome and Firefox extensions target Axiom Trade and Padre users, stealing session tokens and wallet data.

Security News
GPT-6 Astra hits 100% on ExploitBench and finds zero-days autonomously, while independent tests reveal scope violations and monitoring gaps.