TypeScript API Reference

Imports

1import {
2 Agent,
3 createJoyTokenProvider,
4 defineTool,
5 maxCost,
6 maxToolCalls,
7 stepCountIs,
8} from "@joytoken/agent-sdk-ts";

Agent

1const agent = new Agent({
2 model: createJoyTokenProvider(),
3 modelName: "auto",
4 system: "Keep answers short.",
5 tools: [],
6 stopWhen: [stepCountIs(6)],
7});
OptionUse
modelModel provider
modelNameJoyToken model, usually auto
systemSystem message
toolsLocal tool list
stopWhenStop conditions
temperatureModel temperature
maxTokensMaximum output tokens
tierJoyToken routing tier
metadataPass-through metadata

Agent.run

1const result = await agent.run("Hello");
2
3const continued = await agent.run({
4 messages: result.messages,
5 input: "Continue.",
6});
Return fieldUse
finalTextFinal text
messagesFull message list for persistence
stepsModel reply and tool results for each step
usageAggregated usage
stoppedByMatched stop condition

createJoyTokenProvider

1const model = createJoyTokenProvider({
2 apiKey: process.env.JOY_TOKEN_API_KEY,
3 apiBaseUrl: process.env.JOY_TOKEN_API_BASE_URL,
4 openAIBaseUrl: process.env.JOY_TOKEN_OPENAI_BASE_URL,
5 defaultModel: "auto",
6});

defineTool

1const tool = defineTool({
2 name: "lookup",
3 description: "Look up a record.",
4 parameters: {
5 type: "object",
6 properties: { id: { type: "string" } },
7 required: ["id"],
8 },
9 execute: async ({ id }, context) => {
10 return `record:${id}`;
11 },
12});

Stop Conditions

1stopWhen: [
2 stepCountIs(8),
3 maxToolCalls(4),
4 maxCost(1),
5]
FunctionUse
stepCountIs(n)Stop after n steps
maxToolCalls(n)Stop after n tool calls
maxCost(n)Stop when cost reaches n credits