agentskit.js
Recipes

Open specs — A2A, Manifest, Eval Format

Three small, versioned specs so agents, skill packs, and eval datasets travel across tools.

Three open specs ship as typed subpaths of @agentskit/core. Every spec is a stable JSON shape + a validator — no runtime behavior coupling.

@agentskit/core/a2a — Agent-to-Agent Protocol

JSON-RPC 2.0 methods for one agent to invoke another.

MethodPurpose
agent/cardDiscover an agent's skills + schemas
task/invokeRun a skill
task/cancelStop a running task
task/approveDeliver a HITL decision
task/statusStream progress / partial output
import { validateAgentCard, A2A_PROTOCOL_VERSION } from '@agentskit/core/a2a'

Agent Card shape is compatible with directory-style marketplaces — publish the JSON, let any A2A client discover + invoke.

@agentskit/core/manifest — Skill & Tool Manifest

A packaging format for distributing skills + tools together. Tool entries mirror MCP's inputSchema, so a manifest can round-trip through an MCP server without information loss.

import { validateManifest, MANIFEST_VERSION } from '@agentskit/core/manifest'

@agentskit/core/eval-format — Open Eval Format

Portable eval dataset + run-result payload.

import {
  validateEvalSuite,
  validateEvalRunResult,
  matchesExpectation,
  EVAL_FORMAT_VERSION,
} from '@agentskit/core/eval-format'

Expectation kinds: literal contains, regex (body + flags), normalized equality, semantic similarity (runner-provided embedder). One dataset → many runners (AgentsKit, custom in-house, CI evals).

Why specs live in @agentskit/core

  • Types travel with the framework — no version drift between the spec doc and the TS definitions.
  • Zero runtime cost: each spec is its own subpath, nothing goes into the main bundle.
  • Adding a new spec is one tsup entry + one package.json export.

See also

✎ Edit this page on GitHub·Found a problem? Open an issue →·How to contribute →

On this page