Which JACS Integration Should I Use?

This page helps you find the right integration path in under 2 minutes.

Step 1: Do You Need JACS?

Yes, if:

  • Your AI agents communicate with external services or other organizations' agents
  • Data leaves your control (sent to clients, partners, regulators)
  • You need cryptographic proof of who produced what (non-repudiation)
  • You operate in a regulated environment (healthcare, finance, government)

Probably not, if:

  • Everything runs in a single service you control
  • You trust your own logs and don't need third-party verification
  • You just need checksums (use SHA-256 instead)

Step 2: Pick Your Framework

I use...Start hereDocs
Python + LangChain/LangGraphfrom jacs.adapters.langchain import signed_toolLangChain Guide
Python + CrewAIfrom jacs.adapters.crewai import jacs_guardrailCrewAI Guide
Python + FastAPIfrom jacs.adapters.fastapi import JacsMiddlewareFastAPI Guide
Node.js + Expressrequire('@hai.ai/jacs/express')Express Guide
Node.js + Vercel AI SDKrequire('@hai.ai/jacs/vercel-ai')Vercel AI Guide
Node.js + LangChain.jsrequire('@hai.ai/jacs/langchain')LangChain.js Guide
MCP Server (Python)from jacs.mcp import JACSMCPServerMCP Guide
MCP Server (Node.js)require('@hai.ai/jacs/mcp')MCP Guide
A2A Protocolfrom jacs.a2a import JACSA2AIntegrationA2A Guide
Rust / CLIcargo install jacs --features cliRust Guide
Any language (standalone)import jacs.simple as jacsSimple API

Step 3: Your Adoption Path

Stage 1 -- Prototyping: jacs.quickstart(). No config. Explore the API. Keys on disk, auto-managed.

Stage 2 -- Single-org production: jacs.load() with persistent agent, strict mode, file-based keys. Add provenance to internal systems.

Stage 3 -- Cross-org production: DNS trust anchoring, A2A agent cards, agreements with external agents. Operate across trust boundaries.

Stage 4 -- Regulated/enterprise: Post-quantum algorithms (pq2025/ML-DSA-87), OpenTelemetry observability, audit trails for compliance.

Each stage adds capabilities without breaking what came before. You never configure features you don't need yet.