@cdr-kit/openai
v0.7.3
Published
OpenAI / Anthropic tool-calling adapter for cdr-kit — JSON-Schema tools[] + a dispatch router.
Readme
@cdr-kit/openai
Raw OpenAI / Anthropic function-calling adapter for cdr-kit — no framework dep. Returns a
tools[]JSON-Schema array + adispatch()router.
The most portable adapter — works with any LLM client that speaks the OpenAI function-calling shape (OpenAI SDK, Anthropic SDK, Mistral, Groq, llama.cpp, …).
Install
pnpm add @cdr-kit/openai @cdr-kit/agent openaiQuick start
import { CdrAgent } from "@cdr-kit/agent";
import { getOpenAITools } from "@cdr-kit/openai";
import OpenAI from "openai";
const agent = new CdrAgent({
privateKey: process.env.WALLET_PRIVATE_KEY as `0x${string}`,
rpcUrl: "https://aeneid.storyrpc.io",
});
const { tools, dispatch } = getOpenAITools(agent);
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const messages = [{ role: "user", content: "Find a vault and tell me what's in it." }];
while (true) {
const res = await client.chat.completions.create({
model: "gpt-4o",
messages,
tools, // ← 34 CDR functions
});
const msg = res.choices[0].message;
messages.push(msg);
if (!msg.tool_calls?.length) {
console.log(msg.content);
break;
}
for (const call of msg.tool_calls) {
const result = await dispatch(call.function.name, JSON.parse(call.function.arguments));
messages.push({ role: "tool", tool_call_id: call.id, content: JSON.stringify(result) });
}
}Peer dependencies
@cdr-kit/agent≥ 0.7.0viem≥ 2.21
