Java SDK

GitHub: muxi-ai/muxi-java
Maven Central: org.muxi:muxi-java

Installation

implementation("org.muxi:muxi-java:<version>")

Use the latest published version from Maven Central.

Formation Client

import org.muxi.sdk.FormationClient;

FormationClient client = new FormationClient(
    "http://localhost:7890",
    "my-assistant",
    "fmc_...",
    null
);

System.out.println(client.health());

The fourth constructor argument is the optional admin key. Constructors with a mode argument support "draft" for local draft routes. Use FormationClient.withBaseUrl(...) for a direct Runtime /v1 URL.

Chat

import com.google.gson.JsonObject;

JsonObject request = new JsonObject();
request.addProperty("message", "Hello!");
request.addProperty("session_id", "sess_abc123");

JsonObject response = client.chat(request, "user_123");
System.out.println(response.get("response").getAsString());

Streaming

The Java SDK exposes raw SseEvent records:

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

JsonObject request = new JsonObject();
request.addProperty("message", "Tell me a story");

client.chatStream(request, "user_123", event -> {
    if ("message".equals(event.event())) {
        JsonObject data = JsonParser.parseString(event.data()).getAsJsonObject();
        if (data.has("token") && data.get("token").isJsonPrimitive()) {
            System.out.print(data.get("token").getAsString());
        }
    }
});

FormationClient.parseUiWidgets(event) extracts widgets from a named ui event. Stream error frames are raised as SDK exceptions.

Sessions and Memory

var sessions = client.getSessions("user_123", 50);
var messages = client.getSessionMessages("sess_abc123", "user_123");
var memories = client.getMemories("user_123");
client.addMemory("user_123", "preference", "User prefers Java");
client.clearUserBuffer("user_123");

Server Client

import org.muxi.sdk.ServerClient;

ServerClient server = new ServerClient(
    "http://localhost:7890",
    "muxi_pk_...",
    "muxi_sk_..."
);

JsonObject formations = server.listFormations();
server.stopFormation("my-assistant");
server.startFormation("my-assistant");
server.rollbackFormation("my-assistant");

Deploy and update methods accept a formation ID and the corresponding Server RPC JsonObject payload.

Error Handling

import org.muxi.sdk.Errors.AuthenticationException;
import org.muxi.sdk.Errors.MuxiException;

try {
    client.chat(request, "user_123");
} catch (AuthenticationException error) {
    System.err.println(error.getMessage());
} catch (MuxiException error) {
    System.err.println(error.getErrorCode() + ": " + error.getMessage());
}

Learn More


Home Docs SDKs
Star on GitHub