A software engineer

When the Archive Answers Back

It’s 0730 at an all-source desk. An analyst who’s been on a foreign government’s economic policy account for 14 months opens their console to a tasking from a senior policymaker: how does last week’s announcement line up with the prior 18 months of reporting?

They remember roughly where the answer is. An assessment from around last summer in the regional channel. A technical thread from the spring where the financing figures came up. A coordination thread with the partner-agency desk that produced a disagreement worth flagging.

None of it comes back cleanly in keyword search. You get hundreds of chronological hits, so you open posts one at a time to build the source list before you can write a single paragraph. Ninety minutes go to the citation chase before the response goes out.

This is a retrieval and correlation problem, and it’s the one Semantic Search in Mattermost Agents V2 is built to solve. The chase becomes a sourced answer you can inspect, challenge, and cite.

Search that works the way you’d ask a colleague

The agent sits in the Mattermost search bar, one click away. You type the question the way you’d ask a colleague who’s been on the desk longer: “what have we assessed about this policy shift across the desk and adjacent channels in the last 18 months, including the technical work?” The answer streams into the Agents panel on the right.

It doesn’t just match words. It matches meaning too, which is what surfaces the spring financing thread even though your tasking didn’t use the financing terminology the original reporting did. A keyword pass runs alongside it, and the two merge into one ranked set, so literal hits still land where meaning-matching misses.

The agent inherits your access. It sees only what you see, and channel access is enforced end to end. Two analysts in the same cell can legitimately get different results if one is read into an adjacent thread the other isn’t. That’s what makes this usable in a compartmentalized environment instead of turning search into a spillage risk.

What it reads is the message text in your channels: the analysis people typed, plus any summaries that collection-feed and reporting integrations post as channel messages. A reporting feed that drops a formatted summary into ~raw-rep-archive as a post is searchable right alongside the team’s typed analysis.

Citations you can defend

Under every answer, the agent lists its sources: the posts that backed the response, in their actual channels, at their original timestamps, ordered by relevance. Inline in the answer, factual claims link back to the specific post that supports them. Click the citation, land on the post.

For an intelligence reader, that’s the whole point. An AI summary you can’t source back to specific reporting isn’t consumable by a formal product. 

A summary whose citations resolve to live posts on the on-prem instance is a different thing. You verify originator and classification by clicking through, then quote directly, knowing the link is the post you read.

A different shape of the same problem

Different desk, different rhythm. An RFI analyst on the same enclave, same on-prem Mattermost, same local model, picks up RFI #2417 at 1100 with a 1700 deadline. The question spans three substantive channels. The old path is two hours of pivoting: keyword queries, pasting hits into a working doc, noting dates and originators by hand while the deadline shrinks.

Instead they paste the RFI into a ~rfi-desk thread and ask the agent to pull 12 months of reporting on the topic and call out where producers disagree. The agent searches the channels that analyst can see and comes back with a structured summary: producer A’s line, producer B’s line, the inline comment from a senior analyst flagging the open disagreement. The sources list renders underneath, each entry a one-click link.

When the reviewer challenges a citation 40 minutes later, the analyst clicks through, grabs the originator from the post header, and replies in 60 seconds. Citation defended. The RFI goes out at 1530, and the sourcing trail is durable instead of a working doc that gets deleted next week.

Built for the long-running archive

The on-prem story is structural, not bolted on. 

The search index lives in the same database that already holds every post. Embeddings can come from an on-prem, OpenAI-compatible endpoint, so if you already have a local model in place for the rest of the Agents stack, you can point search at the same boundary. 

The summary you read is written by the same LLM Agents already uses. For an SCI enclave or an air-gapped facility, the query, the retrieved post content, and the model response all stay inside the boundary by design. Semantic Search runs with a Mattermost Enterprise license.

Back at the desk

So back to that 0730 tasking. The analyst opens the search bar, clicks into the agent, and asks the question plainly. Meaning-matching surfaces the spring financing thread. The keyword pass catches the two regional assessments they remembered by phrase. The partner-agency disagreement thread comes back with the rest.

The answer streams into the Agents panel with a sources list under it: five posts, each a one-click link to the original, each timestamp tied to the actual post, each originator visible on click-through. They verify the classification markings, pull direct quotes, and deliver a sourced response to the policymaker in 10 minutes.

Ninety minutes of citation chase becomes 10 minutes of source verification and quoting. And the desk file quietly turns into a self-curating record: the next analyst who inherits the account can ask “what does our prior reporting say about X?” and start from a sourced summary instead of three weeks of reading scrollback.

None of that is a clever prompt. It’s that the archive finally answers back.

Try it today

Open the Mattermost search bar and choose the agent. Ask the question the way you’d ask a colleague who’s been on the desk longer than you. Read the answer in the Agents panel, open the sources list, and click into the post that surprises you.

 Full reference is in the Mattermost Agents docs.

mm

Christopher Speller is a full stack software developer who joined Mattermost in May 2015. Prior to Mattermost, Christopher worked as a 3D software developer at Side Effects Software, a compiler optimization developer at IBM Canada, and a security software engineer at Blue Coat Systems. He has a bachelor's degree in computer science from the University of Waterloo.