Package: @effect/ai
Module: Tool
Creates a Tool from a Schema.TaggedRequest.
This utility function converts Effect’s TaggedRequest schemas into Tool definitions, automatically mapping the request parameters, success, and failure schemas.
Example
import { Tool } from "@effect/ai"
import { Schema } from "effect"
// Define a tagged request for user operations
class GetUser extends Schema.TaggedRequest<GetUser>()("GetUser", {
success: Schema.Struct({
id: Schema.Number,
name: Schema.String,
email: Schema.String
}),
failure: Schema.Struct({
error: Schema.Literal("UserNotFound", "DatabaseError"),
message: Schema.String
}),
payload: {
userId: Schema.Number
}
}) {}
// Convert to a Tool
const getUserTool = Tool.fromTaggedRequest(GetUser)
Signature
declare const fromTaggedRequest: <S extends AnyTaggedRequestSchema>(schema: S) => FromTaggedRequest<S>
Since v1.0.0