Conecta tu mod con OpenChat
Conecta tu mod con OpenChat. OpenChatTools · OpenChatAi. OpenChat 1.0.0 disponible para Fabric 26.2 y 26.3. Necesitas una licencia activa. Paper está en piloto privado y Forge sigue pendiente.
OpenChatTools
Registra un ToolSpec mediante OpenChatTools. read devuelve el Snapshot real con una revisión que cambia con el estado. apply comprueba esa revisión y los permisos nativos, guarda y lanza una excepción si falla. verify comprueba una nueva lectura; solo un resultado verificado se informa como guardado.
Los permisos de herramientas empiezan apagados. Las herramientas que modifican requieren confirmación local. Se autorizan o revocan en Integraciones o mediante el asistente. Vinculan cuenta, licencia y huella del JAR; actualizarlo exige nueva autorización. Revocar, cambiar de cuenta o salir del mundo invalida confirmaciones pendientes.
Usa tu ID de Fabric y una clase de su propio JAR. No se admiten directorios de desarrollo ni JAR anidados. Declara permisos de contexto; mods también es obligatorio. Los métodos corren en el hilo del cliente: sin red, esperas largas ni escaneos continuos. Registrar no debe recopilar datos. Nunca repitas automáticamente una escritura fallida.
dependencies {
compileOnly files("libs/openchat-tools-api-1.jar")
}
import com.openchatmod.api.OpenChatTools;
import com.openchatmod.api.ToolSpec;
import java.util.List;
import java.util.Set;
var spec = new ToolSpec("overlay", "Read or change the overlay", true,
Set.of("mods"), List.of(new ToolSpec.Argument(
"enabled", ToolSpec.Type.BOOLEAN, true, 0, 1, List.of())));
OpenChatTools.register("my_mod", MyIntegration.class,
List.of(new OpenChatTools.Tool(spec, new MyHandler())))
.thenAccept(registration -> {
// Keep registration. Call close() to unregister.
});
// MyHandler implements OpenChatTools.Handler:
// read(args) -> Snapshot(revision, data)
// apply(args, expected)
// verify(args, readback)
// fabric.mod.json
"suggests": { "openchat": ">=0.0.79" }
OpenChatAi
Usa compileOnly; no empaquetes el SDK. Carga las clases de integración solo si OpenChat está instalado. Se necesitan Jugadores I o II, sesión oficial y licencia vigente. Las solicitudes contienen solo texto, sin adjuntos, instrucciones de sistema, herramientas ni selección de modelo. No bloquees Minecraft con join() o get().
La IA usa el presupuesto de la cuenta: hasta 10% por mod y 25% entre todos por ciclo pagado; también rigen los límites semanales y del plan. Las reservas pendientes cuentan. Los límites de abajo previenen sobrecarga, no son cupos comerciales de mensajes. Cerrar el cliente no garantiza cancelación ni devolución. Al reconectar, crea uno nuevo.
OpenChat 1.0.0
Minecraft Java 26.2 → Fabric API 0.159.0+26.2
Minecraft Java 26.3 → Fabric API 0.162.0+26.3
Java 25 · Fabric Loader 0.19.5
dependencies {
compileOnly files("libs/openchat-ai-api-1.jar")
}
import com.openchatmod.api.OpenChatAi;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.Minecraft;
if (FabricLoader.getInstance().isModLoaded("openchat")) {
OpenChatAi.connect("my_mod", MyClient.class)
.thenCompose(client ->
client.request("Explain how a hopper works.")
.whenComplete((reply, error) -> client.close()))
.whenComplete((reply, error) ->
Minecraft.getInstance().execute(() -> {
if (error != null) {
// Display Failure.code(); no automatic retry.
return;
}
// Display reply.text() as untrusted plain text.
// reply.modId(), reply.requestId()
}));
}
// fabric.mod.json
"suggests": { "openchat": ">=0.0.49" }
Límite
{
"OpenChatTools": {
"maxMods": 32,
"maxToolsPerMod": 32,
"maxArgumentsPerTool": 16,
"argumentTypes": [
"STRING",
"BOOLEAN",
"INTEGER"
],
"maxResultCharacters": 16384,
"contextPermissions": [
"mods",
"world",
"server",
"inventory",
"schematics",
"commands",
"screenshots"
]
},
"OpenChatAi": {
"minInputCharacters": 1,
"maxInputCharacters": 2048,
"maxOutputTokens": 512,
"maxConcurrentPerMod": 1,
"maxConcurrentPerAccount": 2,
"maxRequestsPerMinutePerMod": 12,
"maxRequestsPerHourPerMod": 120,
"failureWindowSeconds": 300,
"maxFailuresPerWindow": 5,
"backendTimeoutSeconds": 30,
"maxBudgetPercentPerMod": 10,
"maxBudgetPercentAllMods": 25,
"recentRequestsInProfile": 50
}
}
Maneja Failure.code(), incluidos errores envueltos y desconocidos. Una denegación requiere autorización del jugador; una suspensión, revisión. Los errores de ocupación o presupuesto no justifican bucles de reintento ni cambiar de identidad. Tras cambiar la sesión, espera otra acción del jugador. Un plazo agotado puede conservar coste reservado; no repitas una solicitud incierta.
MOD_DENIED
MOD_SUSPENDED
MOD_BUSY
ACCOUNT_RATE_LIMITED
MOD_BUDGET_LIMIT
USAGE_WEEKLY_LIMIT
INVALID_MOD
INVALID_REQUEST
SESSION_CHANGED
INVALID_SESSION
UNAVAILABLE
ASSISTANT_TIMEOUT
ASSISTANT_UNAVAILABLE
Privacidad
Explica los datos enviados y pide permiso. Envía solo el texto necesario; sin historial, archivos o mundo automáticos. Este canal conserva metadatos de uso, no historial de conversación; el proveedor de IA procesa el texto. Trata la salida como texto no confiable y nunca la ejecutes. No pidas credenciales ni uses endpoints privados. Los mods comparten JVM; la API no aísla código malicioso.
SDK · SHA-256
openchat-tools-api-1.jar
547f2755e993104ff2fb044af715b7ed2320216408cb33f2ad376b2de8aaca42
openchat-ai-api-1.jar
464a2b518f25647dbabb67d35ec5f585b24f3974fb1cc28e5009441c47e497d3