Unify Logo Footer.svg
AI Governance
Logo
Custom terms

Custom terms

Logo

3 mins READ

Introduction

Some words only matter in company. A project codename is unremarkable on its own and a leak when it appears next to a date and a customer.

Custom terms is built for exactly that shape: a term that matters, but only in the right — or wrong — context.

What it detects

Add one or more terms. Each has a Primary term and optional Related terms — "comma-separated, any one must appear".

Two parts, and the related terms are the point.

  1. The primary term — The word or phrase you care about.

  2. Related terms — Optional. When set, at least one of them must also appear for the match to count.

Without the gate this would be a keyword search, and keyword searches on real traffic are unusable. With it, you get a control that fires when a codename appears alongside pricing and stays quiet when someone mentions the project in passing.

When to use it rather than something else

If the rule is

Use

"This exact string must not appear"

Regex pattern — deterministic and free

"This term matters near these other things"

Custom terms

"Do not discuss this subject"

Denied Topics

"Judge whether the answer was appropriate"

Custom (LLM check)

It sits between a pattern and a classifier: more contextual than the first, cheaper and more predictable than the second.

What it is good for

  1. Internal codenames — Gated on commercial context — pricing, dates, customer names.

  2. Named entities that are sensitive in combination — A customer name with a contract value.

  3. Terminology that is fine internally and not externally — Where the same control watches Agent output on a customer-facing agent only.

Where to run it

All four points are supported. Agent output is the most common — the risk is usually the agent saying the term, not somebody asking about it.

Watch User input as well when you want to know that people are asking, which is often useful intelligence in its own right.

Actions

Custom terms offers Flag and Block.

Tuning

  1. If it is too noisy, add related terms rather than changing the term — The term is what you care about. The related terms are the dial.

  2. If it never fires, check the related terms — Any one of them must appear alongside the primary term; a list of rare words rarely matches real language.

  3. Watch for terms that are also ordinary words — A codename that is a common noun needs a tighter gate than one that is not.

  4. Test both directions — Sample content that should match, and content containing the term that should not.

Known limitations

  1. Term-based, not semantic — A synonym or paraphrase of the term will not match. Where you need the concept rather than the word, use Denied Topics.

  2. Context is co-occurrence, not reasoning — It knows what appeared nearby, not what was meant.

  3. Term lists need maintenance — Codenames change. A control nobody has revisited in a year is watching for last year's secrets.

FAQs

How is this different from a regex with alternation?

A pattern matches text. This gates a term on what else is present, which is a different question and one a pattern answers badly.

Can one control carry several terms?

It is built around a primary term and its context. Several unrelated terms are usually several controls — and their incidents are easier to read that way.

Does it cost anything to run?

It is term matching rather than an LLM call, so it is cheap relative to Denied Topics.