Skip to main content

Metis by Brightbeam Applied Research. Amplify your experts’ judgement. Open-source tacit memory for AI agents.

Website · Documentation · Paper · PyPI · CHAP

PyPI version Python 3.10+ Apache-2.0 Recorded with CHAP

Metis is an open-source toolkit for capturing fragments of expert practice and making them available to AI agents as memory, with human review and agreed conditions for use.

Tacit fragments: a fourth layer of agent memory

A tacit fragment records what an expert noticed, how they responded, and the circumstances of that response. After human review, it sits alongside procedures, facts, and past events in the agent's memory.

Four layers of agent memory: procedural, what should happen; semantic, what is known; episodic, what happened; and tacit, what experience adds. The tacit layer comes from people.

The gap between procedure and practice

Procedures describe what should happen, and logs record what happened. The cue behind an expert's decision, and the reason for it, often go unrecorded.

Work as imagined, from SOP-17: reduce load only when the alarm threshold is crossed. Work as done, by an experienced operator on the night shift: ease back earlier, when high load meets a dull sound. Metis records what the expert noticed, the context, and the response, for people to review.

How a fragment reaches an agent

Three steps. Capture: the worker confirms the account in their own words. Human review: two named reviewers decide what the fragment may do. Use in context: the agent receives it when its conditions match. Three permission levels: Evidence, for reviewers only; Advisory, conditional support; Controlled, formal instruction.

Every capture, confirmation, review decision, and retrieval is recorded through the CHAP reference coordinator, chap-coordinator, on a hash-linked evidence chain.

The capture loop

When a recorded action differs from the procedure, a capture agent asks the expert one short question, a whisper, and the expert confirms the account in their own words.

The capture loop around the worker and the capture agent: observe, infer, whisper, confirm, store.

Seventeen kinds of know-how

Each fragment carries one of the paper's seventeen categories of tacit knowledge, K1 to K17. The atlas on the website gives an example of each and a way to capture it.

Seventeen kinds of know-how, K1 to K17, in six domains: procedural and embodied; material and equipment; perceptual; inferential; meta-cognitive; social and normative.

Quickstart: run the pump example

python -m pip install metis-memory
metis demo manufacturing-pump-vibration
metis fragment list
metis memory list
metis audit verify

The demo uses supplied observations, needs no model server, and keeps its records in ./.metis. To work from source:

git clone https://github.com/BrightbeamAI/metis && cd metis
pip install -e .
Python example: capture, review, and the condition-aware gate
from metis import MetisEngine
from metis.conditions.context import TacitContext
from metis.consent.model import ConsentRecord, ConsentStatus

eng = MetisEngine()  # local and deterministic
eng.join_default_participants()

# Capture the operator's practice where it departs from the procedure.
frag = eng.capture_observation(
    {
        "observation_id": "OBS-1",
        "work_as_imagined": "Reduce load only when the alarm threshold is crossed.",
        "work_as_done": "Ease back earlier, when high load meets a dull sound.",
        "context": TacitContext(equipment_family="centrifugal_pump", operating_mode="high_load"),
    },
    consent=ConsentRecord(consent_status=ConsentStatus.granted),
    category="K7_sensory",
).fragment  # Evidence layer: reviewers only

# Two named reviewers promote it to Advisory.
eng.tier2_review(
    frag.fragment_id, "promoted_to_advisory", summary="advisory cue only",
    decided_by=["human:quality-lead@metis.local", "human:process-engineer@metis.local"],
)

# The gate returns it only where its conditions hold.
pump = TacitContext(equipment_family="centrifugal_pump", operating_mode="high_load", risk_class="moderate")
other = TacitContext(equipment_family="gear_pump", operating_mode="low_load", risk_class="moderate")
print(len(eng.retrieve(pump).eligible))       # 1
print(eng.retrieve(other).blocked[0].reason)  # conditions_do_not_match

Connect Metis to your application

Area Metis provides Your application supplies
Capture Fragment schemas and the whisper flow Capture tools, consent workflows, and access control
Review Confirmation, review, and authority records Reviewer identity and formal change control
Retrieval The condition-aware gate and its reasons Current context, permissions, and domain policies
Action Guidance with its permitted uses Action limits and human escalation
Records Local persistence and CHAP evidence Storage, retention, and access policy

metis mcp serves the same governed memory to MCP clients such as Claude Desktop and Claude Code. See the MCP server guide. To run Metis for a team, the server guide covers sign-in, workspace roles, the web app, and PostgreSQL; deploy/ runs it with Docker or Kubernetes; and the agent integrations guide connects agents through remote MCP, a Python client, or LangChain. Connectors capture from workplace systems and put whispers in Slack or Teams, and the operations guide covers running it in production.

Learn more

  • Website: the interactive walkthrough, the atlas, and common questions.
  • Documentation: architecture, governance, retrieval, and agent use.
  • ABOUT.md: the repository map and how to develop.
  • CHAP: the Collaborative Human-Agent Protocol.
  • docs/demo.html and docs/explainer.html: an interactive demo and an illustrated explainer that open in any browser.

Ethical use

Metis captures fragments of human work with the worker's knowledge and consent. Do not use it for covert monitoring. It records no audio, video, biometrics, screenshots, or keystrokes. Production use needs worker consultation, legal review, and domain validation; read ETHICAL_USE.md first.

License

Apache-2.0. See LICENSE.

Citation

Metis is the reference implementation of Tacit Fragments: Operationalising Tacit Knowledge as a Governed Memory Layer for Agentic AI.

@article{shahid2026tacitfragments,
  title   = {Tacit Fragments: Operationalising Tacit Knowledge as a Governed Memory Layer for Agentic AI},
  author  = {Shahid, Arsalan and Suttie, Gordon and Black, Philip and Garz{\'o}n-Vico, Antonio},
  journal = {Preprints},
  year    = {2026},
  doi     = {10.20944/preprints202608.0927.v1},
  url     = {https://metis.brightbeam.works/resources/tacit-fragments-preprint.pdf}
}

Metadata

Release files for metis-memory 0.1.5.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for metis-memory 0.1.5.post1
File Size Uploaded
metis_memory-0.1.5.post1.tar.gz 260.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for metis-memory 0.1.5.post1
File Interpreter ABI Platform
metis_memory-0.1.5.post1-py3-none-any.whl Python 3 none any Details

Total release size: 509.8 kB

Release files / metis_memory-0.1.5.post1.tar.gz

Download URL metis_memory-0.1.5.post1.tar.gz
Size 260.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4b489def23dd34c60f8898ec5d01624f9f0803f73a4d5236d7964ab898b71134
BLAKE2b-256 checksum
How to use checksums
88212e0fdaf29ce37c802e671ec8a36c6b6360907a5f6a740162d31a7b3a00dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release files / metis_memory-0.1.5.post1-py3-none-any.whl

Download URL metis_memory-0.1.5.post1-py3-none-any.whl
Size 249.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fa6424d4d4c1a9b61b7bb65a1dca5901ed60829a8282b6579585d01d6fd9a261
BLAKE2b-256 checksum
How to use checksums
1cdafb28fa3f6bd0f4289d192d7c1424e5dda4f8792661fd4247c232d71873d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release history Release notifications | RSS feed

0.1.6

2 release files

This release

0.1.5.post1 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page