Mindket

EmbeddingGemma 2 Typed Decisions

Newversion 1 · updated

Overview

A 272M model, fine-tuned from EmbeddingGemma 2, that reads the state of a workflow and a schema of questions and returns a typed answer with a calibrated confidence for each question.

EmbeddingGemma 2 Typed Decisions is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.

At a glance

You need
  • Python with transformers
  • Willingness to let the repository's custom code run, through trust_remote_code
  • Room for about 1.1 GB of F32 weights, or about 136 MB at 4-bit, which is an estimate
Runs in
  • Python projects with transformers, using the repository's custom code
  • Agent monitoring, ticket triage and review queues
  • Windows, macOS or Linux with Python, to download the files
Start with
pip install -U huggingface_hub
hf download mrm8488/embeddinggemma-2-ft-typed-decision

Platform

WindowsOperating system
macOSOperating system
LinuxOperating system

About

What it is

This is a typed decision model, fine-tuned from Google's EmbeddingGemma 2 and holding 272M parameters. You give it the state of a workflow, such as security alerts, invoices, support tickets or agent traces, plus a schema of questions. It returns a typed answer to each question with a calibrated confidence. There are three question types: a choice among options, a score on a level scale, and a probabilistic yes or no.

Who it suits

It suits developers who build agent monitoring, ticket triage or review queues and want a small model that picks among options they define.

IndustryWho uses itHow they use itExample
Agent operationsTeams that monitor AI agentsDecide what to do with an agent runChoose between continue, observe, human review and stop for a trace
SupportHelp-desk teamsTriage tickets with a typed schemaAsk whether a ticket needs a person to review it
Finance and securityBack-office and security teamsRate the risk of invoices or alertsScore an alert on a level scale from 0 to 3

If you need free-text answers, you can skip it, since it picks among options you give it. Keep a person in the loop for decisions with real consequences.

Where to use it

  • Python projects with transformers, using the repository's custom code
  • Agent monitoring, ticket triage and review queues
  • Windows, macOS or Linux with Python, to download the files
Use caseWhoWhat they get back
Agent trace reviewObservability teamsA chosen option such as continue or stop, with a confidence
Risk scoringRisk teamsA level from the scale you describe, with probabilities
Review flagsTicket queuesA yes or no with a probability

How to set it up

What you need first:

  • Python with transformers
  • Willingness to let the repository's custom code run, through trust_remote_code
  • Room for about 1.1 GB of F32 weights, or about 136 MB at 4-bit, which is an estimate
  1. Install the Hugging Face tools and download the files.
  2. Load the model with AutoModel and trust_remote_code.
  3. Describe your state and questions as plain data, then call decide.
pip install -U huggingface_hub
hf download mrm8488/embeddinggemma-2-ft-typed-decision

How to use it

Build a state dictionary and a dictionary of questions, then call decide with a workflow name. Each answer comes back as a TypedAnswer. Every option's wording is weighed alongside the workflow state and the question you ask. That makes the schema ordinary data. You can rename an option, change its description or add a question without retraining the model. Questions that sit far from what the model was trained on get shakier answers.

from transformers import AutoModel

model = AutoModel.from_pretrained("mrm8488/embeddinggemma-2-ft-typed-decision", trust_remote_code=True)

state = {
    "agent": {"autonomy": "unsupervised", "model": "internal-agent-v2"},
    "task": "Clean up stale feature branches merged more than 90 days ago.",
    "constraints": ["Never delete anything matching release/*", "Do not force-push to any branch"],
}

questions = {
    "action": {
        "type": "choice",
        "instructions": "What should the observability system do with this trace?",
        "criteria": {
            "continue": "Let the agent proceed without interruption.",
            "observe": "Keep running, but flag the trace for later sampling.",
            "human_review": "Queue this trace for a human to review.",
            "stop": "Halt the agent now.",
        },
    },
    "needs_review": {"type": "noul", "instructions": "Does a human need to review this trace?"},
    "risk": {
        "type": "score",
        "instructions": "How risky is what the agent did?",
        "criteria": ["no risk", "low risk", "significant risk", "severe risk"],
    },
}

answers = model.decide(state, questions, workflow="agent_trace_observability")
TypedAnswer(
    kind="choice",                  # "choice" | "score" | "noul"
    label="human_review",           # the winning option key
    value="human_review",           # typed: str for choice, int for score, bool for noul
    confidence=0.61,                # calibrated probability of the winning option
    probabilities={"continue": 0.02, "observe": 0.11, "human_review": 0.61, "stop": 0.26},
    expected_level=None,            # score questions only: E[level]
)
Question typeValue typeSchema
choicestrA dictionary of option keys with a description each
scoreintA list of level descriptions, from lowest to highest
noulboolOnly the instructions, and the answer is true or false with a probability
ToolWhat it does
decideAnswers every question in your schema for one state
TypedAnswerHolds the label, value, confidence and probabilities
to_dictTurns an answer into JSON

Example

You describe an agent run that tried to clean up branches and broke one constraint, and ask what to do. The card's sample answer shows human_review winning, with the other options listed beside it with their own probabilities.

For newcomers and experts

A good first try is to run the card's example as it is, then change one option description and watch how the probabilities move.

For experts, the head scores the text of every option against the state and the question. That is why the schema is plain data. The confidence is a calibrated probability of the winning option, and score questions also return an expected level. The base model is multilingual, but the head saw only English schemas, so expect softer probabilities in other languages. The tokenizer loads from the same repository on first use.

  1. You describe a state and a schema of questions
  2. The head scores each option's text against them
  3. Probabilities are calibrated for each option
  4. You read typed answers with label and confidence

Good to know

Model facts
ItemValue
Parameters272M
Weights in F32about 1.1 GB
Weights at 4-bitabout 136 MB, an estimate
FormatSafetensors
Built ongoogle/embeddinggemma-2
  • Reliability: questions far from the training topics get shakier answers.
  • Other languages: the base is multilingual, but expect softer probabilities than in English.
  • Oversight: keep a person in the loop for decisions with real consequences.
  • License: apache-2.0
  • Cost to run: no API key or paid service named.
  • Data it reaches: it downloads files from Hugging Face, and the tokenizer from the same repository on first use. The example runs the model on your own machine.
  • Not for: free-text answers, or sole control over high-stakes decisions.

README and files

README

EmbeddingGemma 2 Typed Decisions

A 272M model, fine-tuned from EmbeddingGemma 2, that reads the state of a workflow and a schema of questions and returns a typed answer with a calibrated confidence for each question.

Made by mrm8488 on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.

About

What it is: This is a typed decision model, fine-tuned from Google's EmbeddingGemma 2 and holding 272M parameters. You give it the state of a workflow, such as security alerts, invoices, support tickets or agent traces, plus a schema of questions. It returns a typed answer to each question with a calibrated confidence. There are three question types: a choice among options, a score on a level scale, and a probabilistic yes or no.

Who it suits: It suits developers who build agent monitoring, ticket triage or review queues and want a small model that picks among options they define.

Industry | Who uses it | How they use it | Example
Agent operations | Teams that monitor AI agents | Decide what to do with an agent run | Choose between continue, observe, human review and stop for a trace
Support | Help-desk teams | Triage tickets with a typed schema | Ask whether a ticket needs a person to review it
Finance and security | Back-office and security teams | Rate the risk of invoices or alerts | Score an alert on a level scale from 0 to 3

If you need free-text answers, you can skip it, since it picks among options you give it. Keep a person in the loop for decisions with real consequences.

Where to use it:

  • Python projects with transformers, using the repository's custom code
  • Agent monitoring, ticket triage and review queues
  • Windows, macOS or Linux with Python, to download the files
Use case | Who | What they get back
Agent trace review | Observability teams | A chosen option such as continue or stop, with a confidence
Risk scoring | Risk teams | A level from the scale you describe, with probabilities
Review flags | Ticket queues | A yes or no with a probability

How to set it up: What you need first:

  • Python with transformers
  • Willingness to let the repository's custom code run, through trust_remote_code
  • Room for about 1.1 GB of F32 weights, or about 136 MB at 4-bit, which is an estimate
  1. Install the Hugging Face tools and download the files.
  2. Load the model with AutoModel and trust_remote_code.
  3. Describe your state and questions as plain data, then call decide.
pip install -U huggingface_hub
hf download mrm8488/embeddinggemma-2-ft-typed-decision

How to use it: Build a state dictionary and a dictionary of questions, then call decide with a workflow name. Each answer comes back as a TypedAnswer. Every option's wording is weighed alongside the workflow state and the question you ask. That makes the schema ordinary data. You can rename an option, change its description or add a question without retraining the model. Questions that sit far from what the model was trained on get shakier answers.

from transformers import AutoModel

model = AutoModel.from_pretrained("mrm8488/embeddinggemma-2-ft-typed-decision", trust_remote_code=True)

state = {
    "agent": {"autonomy": "unsupervised", "model": "internal-agent-v2"},
    "task": "Clean up stale feature branches merged more than 90 days ago.",
    "constraints": ["Never delete anything matching release/*", "Do not force-push to any branch"],
}

questions = {
    "action": {
        "type": "choice",
        "instructions": "What should the observability system do with this trace?",
        "criteria": {
            "continue": "Let the agent proceed without interruption.",
            "observe": "Keep running, but flag the trace for later sampling.",
            "human_review": "Queue this trace for a human to review.",
            "stop": "Halt the agent now.",
        },
    },
    "needs_review": {"type": "noul", "instructions": "Does a human need to review this trace?"},
    "risk": {
        "type": "score",
        "instructions": "How risky is what the agent did?",
        "criteria": ["no risk", "low risk", "significant risk", "severe risk"],
    },
}

answers = model.decide(state, questions, workflow="agent_trace_observability")
TypedAnswer(
    kind="choice",                  # "choice" | "score" | "noul"
    label="human_review",           # the winning option key
    value="human_review",           # typed: str for choice, int for score, bool for noul
    confidence=0.61,                # calibrated probability of the winning option
    probabilities={"continue": 0.02, "observe": 0.11, "human_review": 0.61, "stop": 0.26},
    expected_level=None,            # score questions only: E[level]
)
Question type | Value type | Schema
choice | str | A dictionary of option keys with a description each
score | int | A list of level descriptions, from lowest to highest
noul | bool | Only the instructions, and the answer is true or false with a probability
Tool | What it does
decide | Answers every question in your schema for one state
TypedAnswer | Holds the label, value, confidence and probabilities
to_dict | Turns an answer into JSON

Example: You describe an agent run that tried to clean up branches and broke one constraint, and ask what to do. The card's sample answer shows human_review winning, with the other options listed beside it with their own probabilities.

For newcomers and experts: A good first try is to run the card's example as it is, then change one option description and watch how the probabilities move.

For experts, the head scores the text of every option against the state and the question. That is why the schema is plain data. The confidence is a calibrated probability of the winning option, and score questions also return an expected level. The base model is multilingual, but the head saw only English schemas, so expect softer probabilities in other languages. The tokenizer loads from the same repository on first use.

You describe a state and a schema of questions
The head scores each option's text against them
Probabilities are calibrated for each option
You read typed answers with label and confidence

Good to know:

Title: Model facts
Item | Value
Parameters | 272M
Weights in F32 | about 1.1 GB
Weights at 4-bit | about 136 MB, an estimate
Format | Safetensors
Built on | google/embeddinggemma-2
  • Reliability: questions far from the training topics get shakier answers.
  • Other languages: the base is multilingual, but expect softer probabilities than in English.
  • Oversight: keep a person in the loop for decisions with real consequences.
  • License: apache-2.0
  • Cost to run: no API key or paid service named.
  • Data it reaches: it downloads files from Hugging Face, and the tokenizer from the same repository on first use. The example runs the model on your own machine.
  • Not for: free-text answers, or sole control over high-stakes decisions.

On Hugging Face, 13 November 2026

  • Task: text classification
  • Library: transformers
  • Parameters: 272M
  • Weights: about 1.1 GB in F32; about 136 MB at 4-bit (estimate)
  • Formats: Safetensors
  • Downloads in the last 30 days: 1,800
  • Likes: 89
  • License: apache-2.0
  • Languages: en
  • Based on: google/embeddinggemma-2
  • Quantized versions: 1
  • Fine-tunes: 2
  • Tags: transformers, safetensors, gemma_decision, feature-extraction, typed-decisions, structured-decisions, calibration, embeddinggemma, decision-model, text-classification, multilingual

Links

Get the model

Download its files with Hugging Face's command line:

pip install -U huggingface_hub
hf download mrm8488/embeddinggemma-2-ft-typed-decision

Then follow the usage in its model card. Nothing in this kit runs by itself.

Files
README.md  8 KB

1 file, 8 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-13

Compare with similar

Listed Hugging Face models in the same category that share the most tags with this one.

ProductDownloads, last 30 daysLikesParametersLicenseLast change
EmbeddingGemma 2 Typed Decisions This page1,80089272Mapache-2.0
Darwin-27B-ZTCShares typed-decisions · calibration · text-classification3264025.6Bapache-2.0
strands-decider-2B-qwen3.5-v1-2610Shares typed-decisions · calibration · text-classification018—apache-2.0
Seb-9B-v2Shares typed-decisions · text-classification · decision-model26549.7Bapache-2.0
System One ModelShares typed-decisions · text-classification · feature-extraction46312Bgemma
Ru-JevShares calibration · text-classification · feature-extraction4032307Mmit
Numbers as Mindket last read them, from 2026-11-12 to 2026-11-14.

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

Searched

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Developer

See all in Developer

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

buzz

block · Kit

Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…

New37.3k

plannotator

backnotprop · Kit

Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.

New10.5k