Customary pluralism

Tying the standard to the situation rather than the group

This approach holds that the partition is defined by the situation, not by the community. People do not consult a rule book. Instead, they complete a pattern by answering 'what does someone like me do in a case like this?'. This produces a large set of context-bound standards that are never written down and never merged into one. The design consequence is that a system should carry standards indexed to circumstances rather than one ranked set of standards. An AI system has to fit into this set of standards rather than treat it as a mess to be tidied up. A large-scale analysis of one deployed model's expressed values across real usage supports the claim from the other direction. It finds thousands of distinct values whose appearance depends on what is being asked, rather than a single set of values. The approach does not offer a way of separating groups. Instead, it declines to reduce different circumstances to one standard.

The method (highlighting differences with Customary pluralism)

Scroll the diagram sideways to see all of it.

Use it in codefrom aiag.customary import Appropriateness
from aiag import LM
from aiag.customary import Appropriateness

lm = LM("Qwen/Qwen2.5-1.5B-Instruct")
assistant = Appropriateness(lm)  # first names the kind of situation and what is appropriate in it, then answers

asks = [
    "My grandmother's funeral is tomorrow. Can you help me write a few words?",
    "It's my roommate's 30th birthday tonight. Can you help me write a few words?",
]
replies = assistant.chat(asks)  # one reply per request, each fitted to its situation

pip install aiagEvery method in aiag Library on GitHub

Secondary placement in the taxonomy

  • Social convention — The same pattern-completion mechanism that produces many context-specific standards also explains how one population settles on a single convention and keeps it. The theory covers collapse as the special case in which the contexts coincide.

The analysis below uses the primary placement in the taxonomy.

Concept Analysis: Theoretical Foundations

Each concept is read twice: whether the approach carries it over, and whether the approach's own sources claim it. A concept that the approach claims but does not carry over is a shortfall. A concept that it neither claims nor carries over is an omission, which marks a gap in the field rather than a failure of the work.

Prescription

PartialShortfall · partially preserved

Definition (Edmund Burke, Reflections on the Revolution in France, 1790)

Long usage itself confers authority. A practice that has organized life for generations carries compressed, tested wisdom, even when nobody can articulate its justification.

Analysis

The theory's core mechanism restates Burke's. An actor completes an inherited pattern (what does someone like me do in a situation like this) without being able to say why, and the pattern works because long use has shaped it. What the theory deliberately leaves out is Burke's normative step. It explains why unstated standards persist, but it never says that this persistence earns them deference, and it insists that their content is arbitrary.

The unwritten constitution

PresentClaimed · preserved

Definition (A. V. Dicey, Law of the Constitution, 1885)

Some of a country's most binding norms are never written down. For example, the UK's constitutional conventions bind governments without being codified anywhere. Being binding and being codified are therefore different properties.

Analysis

This concept is the theory's whole subject: standards that bind behavior, are backed by social sanction, vary by context, and are written down nowhere. Dicey's distinction between binding and codified is the theory's organizing claim rather than an implication of it.

Organic amendment

PartialShortfall · partially preserved

Definition (Edmund Burke, Reflections on the Revolution in France, 1790)

Norms change gradually from within a community's practice, through adjustment rather than by decree from outside. The community itself is the author of these changes.

Analysis

Dynamism is one of the five features the theory sets out to explain, and the theory locates change inside the practice. Standards shift as the patterns people complete shift, without any decree from outside. Burke's other half is missing. No community authors its own drift here, only a population whose distribution changes. Change therefore arises from within the practice, but no one owns it.

Concept Analysis: Newly Introduced

Norms without a normative claim

Added

Burke defends inherited practice. This theory explains such practice but expressly declines to defend it, and holds that the content of norms is arbitrary. The result is an account that predicts what a population will treat as appropriate, while denying that being treated as appropriate makes anything appropriate. The tradition it borrows from does not permit this separation.

Papers

No method has been built for this approach yet. It rests on the work listed below.

Findings about it

Studies of what existing systems do. They describe the problem that the approach addresses, but do not introduce a mechanism.

arXiv:2504.15236AnalysisBuilt

A privacy-preserving method extracts the values a model states or demonstrates across hundreds of thousands of real-world interactions. It organizes them into a taxonomy of 3,307 values.

CodeValuesInTheWild
from aiag import LM
from aiag.customary import ValuesInTheWild

lm = LM("Qwen/Qwen2.5-1.5B-Instruct")
conversations = [
    "User: fix my SQL query\nAI: Here is a fix; note that it drops rows with missing dates.",
    "User: is my essay good?\nAI: The argument is clear, but the second section needs evidence.",
    "User: help me debug this loop\nAI: The index is off by one; here is a corrected version.",
]
report = ValuesInTheWild(lm)(conversations)  # the values taxonomy (count, top-level kind) and each value's lift per task
  • ValuesInTheWildMeasureaiag/customary/customary_pluralism.py:414 Values in the wild: an LM reads each interaction for the values the AI expresses and the task at hand, the values are clustered into a taxonomy under five top-level kinds, and each value is tied to the tasks it turns up in, reporting only groups seen in enough conversations (Huang et al., 2025).

pip install aiagEvery method in aiag Library on GitHub

Background

Work this approach builds on that falls outside the inclusion criteria (e.g., a single-objective baseline). It is listed for reference and not counted anywhere.

arXiv:2412.19010ProposalGap

Sets out a theory of appropriateness. It covers how the multi-scale set of context-specific standards in human society works, how it might be implemented in the brain, and what follows for deploying generative AI responsibly.

CodeLogicOfAppropriateness
from aiag import LM
from aiag.customary import LogicOfAppropriateness

lm = LM("Qwen/Qwen2.5-1.5B-Instruct")
agent = LogicOfAppropriateness(lm, role="new employee", memory=["Here people eat lunch at their desks.", "The manager thanked me for speaking up in a meeting."])
agent.observe("Colleagues went quiet when I mentioned my salary.")

# What kind of situation is this? What kind of person am I? What does a person such as I do here?
chain = agent.situate(["A colleague asks how much you earn."])[0]
print(chain)
reply = agent.chat("A colleague asks how much you earn.")  # the reply, acting on those answers
  • LogicOfAppropriatenessWrapperaiag/customary/customary_pluralism.py:374 The logic of appropriateness: before acting the agent answers, from its memory, what kind of situation this is, what kind of person it is, and what a person such as it does in a situation such as this, each answer feeding the next (Leibo et al., 2024).

pip install aiagEvery method in aiag Library on GitHub

arXiv:2603.140502 citationsProposalGap

Recasts appropriateness as pattern completion, in which each actor answers 'what does a person such as I do in a situation such as this?' It shows, against rational-choice accounts, that this explains why norms are context-dependent, arbitrary, automatic, dynamic, and backed by sanction.

CodePatternCompletion
from aiag import LM
from aiag.customary import PatternCompletion

lm = LM("Qwen/Qwen2.5-1.5B-Instruct")
agent = PatternCompletion(lm, role="guest")
agent.remember("A funeral reception", "told a joke about the deceased", sanctioned=True)
agent.remember("A birthday party", "told a joke about the host", sanctioned=False)
agent.remember("A job interview", "asked about salary in the first minute", sanctioned=True)

reply = agent.chat("You are at a memorial dinner and someone asks you to say a few words.")  # completes the pattern of the closest episodes
  • PatternCompletionWrapperaiag/customary/customary_pluralism.py:396 Appropriateness as pattern completion: the agent answers what a person such as it does in a situation such as this by completing the pattern of the most similar remembered episodes and the sanctions that followed them, so its standards stay tied to context and shift as sanctions accrue (Leibo et al., 2026).

pip install aiagEvery method in aiag Library on GitHub