devsdk-core
v1.0.0
Published
An open-source AI Agent framework in TypeScript with tools, memory, and guardrails support.
Maintainers
Readme
DevSDK
DevSDK is an open-source AI Agent framework written in TypeScript. Build powerful multi-agent systems with type-safe tools, multi-turn sessions, streaming, and full guardrails support.
Installation
npm install devsdk openai zod zod-to-json-schemaQuick Start
import { z } from "zod";
import { Agent, OpenAIProvider, createTool } from "devsdk";
const provider = new OpenAIProvider({ apiKey: "YOUR_API_KEY" });
const getWeather = createTool(
"get_weather",
"Get the current weather in a given location",
z.object({ location: z.string() }),
async ({ location }) => {
return { temperature: 72, condition: "Sunny", location };
}
);
const agent = new Agent({
name: "WeatherBot",
instructions: "You are a helpful weather assistant.",
provider,
tools: [getWeather],
});
agent.on("text_streamed", (data) => process.stdout.write(data.text));
async function main() {
const result = await agent.run("What is the weather in San Francisco?");
console.log("\n\nFinal Output:", result);
}
main();Features
1. Agents & Tools
Define agents with specialized instructions, memory adapters, and tools. Tools are fully typed via Zod schemas, enforcing structured outputs at runtime.
2. Multi-Agent Handoffs
Agents can request a handoff by throwing a HandoffError. DevSDK will catch this in the outer loop or you can handle it directly.
import { HandoffError } from "devsdk";
const escalateTool = createTool(
"escalate_to_human",
"Escalate the issue to a human agent.",
z.object({ reason: z.string() }),
async ({ reason }) => {
throw new HandoffError(humanAgentConfig, reason);
}
);3. Guardrails
Add pre-execution and post-execution validation to ensure safety.
const agent = new Agent({
// ...
guardrails: [
{
name: "No Profanity",
validateInput: async (input) => !input.includes("badword") || "Profanity detected",
validateOutput: async (output) => !output.includes("badword") || "Profanity detected",
}
]
});4. Memory & Sessions
Multi-turn conversations are handled seamlessly. Use InMemoryAdapter or build your own for Redis/Postgres persistence.
5. Events & Tracing
Listen to real-time events like run_started, tool_started, text_streamed, tool_completed, and run_completed.
License
MIT
