@artinet/sdk
v0.6.0
Published
A TypeScript SDK for building collaborative AI agents.
Downloads
939
Maintainers
Readme
Create agents that communicate across frameworks.
The @artinet/sdk is a universal, robust and production ready AgentExecutor library that adds a standardized, interoperable communication layer to any agent.
Runs on the Agent2Agent (A2A) Protocol from the Agentic AI Foundation.
Installation
npm install @artinet/sdk express @a2a-js/sdk @modelcontextprotocol/sdkFeatures
- Hassle Free: Use
cr8to quickly spin-up an A2A compatible agent. - No Vendor Lock-In: Let your agents communicate with other agents no matter the framework and across ecosystems.
- Flexible Design: Everything you need to build collaborative agents while remaining modular enough for advanced configuration.
- Pluggable Observability: Bring your own logger (Pino, Winston) and/or tracer (OpenTelemetry).
- Persistent Storage: Roll your own
Taskstorage or use our built-inSQLiteStore(backed bydrizzle-orm).
Quick Start
Use the create-agent command:
npx @artinet/create-agent@latestIt has several template projects to jump right into agent building.
Or use easy-a2a:
const agent = a2a({
baseURL: "https://your-api.com/api/v1",
apiKey: "your-api-key",
})
.ai("You are a helpful assistant.")
.createAgent({
agentCard: "MyAgent",
});npm install easy-a2aExamples
Create an A2A Server
Turn your agent into an express server so it can receive messages from anywhere:
import { cr8 } from "@artinet/sdk";
cr8("QuickStart Agent")
.text(async ({ content }) => `The user said: ${content}`)
//starts an express a2a server on port 3000
.server.start(3000);- ensure that the url/path of your AgentCard matches the server.
🚧 Coming Soon: Support for Hono.
No Servers Needed
Embed agents directly into your app:
import { cr8, A2A } from "@artinet/sdk";
const agent = cr8("Local Agent").text(
({ content }) => `The user said: ${content}`
).agent;
const response: A2A.Task | A2A.Message = await agent.sendMessage("Hello");- See
cr8for more information
Connect to Remote Agents
AgentMessenger provides a streamlined Client interface for communicating with remote A2A Servers:
import { AgentMessenger, createMessenger } from "@artinet/sdk";
const messenger: AgentMessenger = await createMessenger({
baseUrl: "http://localhost:3000/a2a",
headers: {
Bearer: "xxxx",
},
});
const stream = messenger.sendMessageStream("Hello World!");
for await (const update of stream) {
console.log(update);
}- See messenger for more information.
Simple Multi-Agent Orchestration
cr8 provides easy to use tools for orchestrating multiple agents:
import { cr8 } from "@artinet/sdk";
import { localAgent } from "./local.ts";
import { remoteAgentMessenger as remoteAgent } from "./remote.ts";
const orchestrator = cr8("Director")
.text("Request Received")
.sendMessage({ agent: localAgent, message: "initiate billing" })
.text("Billing Started")
.sendMessage({ agent: remoteAgent, message: "Retrieve Secrets" }).agent;For more robust multi-agent support, checkout orc8, our dynamic agent orchestration library that can be used with any openai compatible API.
Documentation
| Topic | Description |
| ------------------------------------------ | ----------------------------------------------------- |
| Agent Creation | Scaffolding agents with cr8 |
| API Reference | Complete reference of SDK objects, types, and methods |
| Execution | Subscriptions and custom event handlers |
| Messenger | Messenger methods, streaming, browser support |
| Storage | FileStore, SQLiteStore, custom storage backends |
| Configuration | Logging (Pino, Winston) and OpenTelemetry setup |
| Customization | native, tRPC, and AgentEngines |
| MCP Integration | Model Context Protocol compatibility |
| Migration Guide | Upgrading from v0.5.x to v0.6.0 |
Requirements
- Node.js ≥ 18.9.1 (Recommended: 20 or ≥ 22)
Running Tests
npm testContributing
Contributions are welcome! Please open an issue or submit a Pull Request on GitHub.
Ensure code adheres to the project style and passes linting (npm run lint) and tests (npm test).
License
This project is licensed under Apache License 2.0.
See the LICENSE for details.
Join the Community
- Reddit: r/theartinet
- Discord: the artinet channel
