How EnvoyMesh stores documents, retrieves relevant snippets, and assembles LLM prompts for chat drafts, knowledge queries, and Envoy AI.
| Capability | Description |
|---|---|
| Import files | Any file type: MD, PDF, Word, images, etc. |
| Create notes | Native Markdown editor (no plugin needed) |
| RAG indexing | Vector + lexical + hybrid modes |
| Embedding search | Configurable embedding provider; Envoy Local Qwen sidecar on home node (default on desktop) |
| Sensitivity labels | Public / friends / private per item |
| Publish/share | Toggle items public for mesh-wide discovery |
| Knowledge queries | Peers can query public items via knowledge.query |
Knowledge indexing uses a local embedding sidecar on your home node (Qwen3-Embedding via llama-server on port 18791). No cloud API key is required for the default desktop setup.
If a chunk is too large or the embed sidecar wedges, reindex recovers automatically — shrinking oversized text, restarting the embed process, and skipping only documents that still fail so the rest of your vault stays searchable. After upgrading from an older release, run Knowledge → Reindex once to rebuild older chunks under safer size limits.
| Item | Owner | Bonded | Stranger | Agent |
|---|---|---|---|---|
| Public items | ✅ | ✅ | ✅ | ✅ |
| Friends items | ✅ | ✅ | ❌ | ✅ |
| Private items | ✅ | ❌ | ❌ | ✅ |
Add Obsidian-style knowledge management to the vault without requiring users to switch apps. Users who already use Obsidian can point the plugin at their vault. Users who don't can use the native vault features.
[[wiki-links]] → exposed to agentObsidian notes can declare sensitivity in frontmatter:
---
title: LLM Benchmarks 2025
tags: [ai, llm, benchmarks]
aliases: [AI Model Comparison]
published: true
date: 2025-06-15
---
| Frontmatter Field | Maps To |
|---|---|
published: true/false | Sensitivity override |
tags: [...] | Enriches vault index metadata |
aliases: [...] | Alternative titles for search |
date: | Creation date for sorting |
Public vault items are discoverable and queryable by all EnvoyMesh peers, not just bonded contacts.
| Peer Type | Can Query | Items Returned |
|---|---|---|
| Owner | ✅ | Public + friends + private |
| Bonded contact | ✅ | Public + friends |
| Stranger | ✅ | Public only |
| Unknown | ❌ | None |
| Peer Type | Rate Limit |
|---|---|
| Bonded contact | Standard (per-contact) |
| Stranger | Strict (e.g. 5 queries/minute, 50/hour) |
| Unknown | Rejected |
LLM prompts are assembled from multiple context sources:
┌─────────────────────────────────────────────────────────────────┐
│ LLM prompt (one call) │
├─────────────────────────────────────────────────────────────────┤
│ 1. Agent identity (agent-identity.md) │
│ 2. AI identity mode (invisible / transparent / defensive) │
│ 3. Rules / status / bond permissions │
│ 4. Relationship + human profile context │
│ 5. Recent chat messages + RAG hits from older chat │
│ 6. Vault knowledge snippets (RAG) │
│ 7. External MCP knowledge (if configured) │
│ 8. User query or inbound message │
└─────────────────────────────────────────────────────────────────┘
Native text (read directly): .txt, .md, .json, .csv
Extracted text (parsed at index time): .pdf, .docx, .doc, .pptx, .ppt, .xlsx, .xls, .html, .htm, .rtf