Memory

research-assistant

Try it

Knowledge builder that extracts entities, relationships, and key facts from web pages, documents, and files. Builds a searchable knowledge base with entity r...

What it does

Knowledge builder that extracts entities, relationships, and key facts from web pages, documents, and files. Builds a searchable knowledge base with entity resolution and auto-summarization. Integrates with memory-router.

The skill document

Research Assistant ⚡

Turn everything you read into a searchable knowledge base.

The Problem

Agents read web pages, docs, and files — but the knowledge disappears after the session. No persistent knowledge base, no entity tracking, no relationship mapping.

Research Assistant fixes this with one tool.

⚠️ Important Warnings

Read this section before using. Research Assistant makes outbound HTTP requests to user-supplied URLs and writes all extracted content (entities, summaries, relations) to persistent local files under memory/research/. These are not optional behaviors and they cannot be disabled. Do not point this tool at confidential documents, internal network endpoints, or sources containing PII.

Outbound Network Access

--extract makes an unauthenticated HTTP/HTTPS request to any user-supplied URL (10-second timeout). No URL allowlist, rate limit, or proxy is applied. The target server will see your real IP address. There is no SSRF protection — internal/private network URLs (10.x, 192.168.x, localhost, etc.) are NOT blocked. Treat this as remote code-execution-grade network exposure: only point it at URLs you would type into a browser.

Persistent Local Storage

All extracted entities, summaries, text content, and relationships are written to memory/research/ and persist indefinitely:

  • knowledge-base.json — every entry ever extracted
  • index.json — searchable entity index
  • relations.json — relationship graph

These files grow unbounded with every extraction. There is no retention limit, automatic redaction, or built-in deletion command. PII or sensitive content ingested from URLs and files is stored forever. Monitor with --status and manually clean the memory/research/ directory if needed.

PII in Extracted Data

Entity extraction captures proper nouns, URLs, numbers, and dates. Email address extraction is intentionally disabled — the extractEntities() function does not match email patterns (see line 90 of research-assistant.js: // NOTE: Email addresses are intentionally NOT extracted to avoid PII leakage). However, email addresses may still appear inside the summary text field (first 200 chars of source) or inside HTML content fetched from URLs. Do not rely on the email-extraction disablement as a complete PII filter — review the stored knowledge base before exporting or sharing it.

Quick Start

Extract from a file

node skills/research-assistant/research-assistant.js --extract /path/to/file.md

Extracts entities (proper nouns, numbers, URLs) and relationships, and creates a summary. Email address extraction is disabled — see "PII in Extracted Data" above.

Extract from a URL

node skills/research-assistant/research-assistant.js --extract https://example.com/article

Fetches the page via HTTP/HTTPS (no auth, no proxy, 10s timeout), strips HTML, extracts entities and relationships, and persists everything to memory/research/. The fetched content is stored in full. See the "Outbound Network Access" warning above.

Extract from an entire directory

node skills/research-assistant/research-assistant.js --extract --all /path/to/docs

Processes all .md, .txt, and .json files in a directory.

Search the knowledge base

node skills/research-assistant/research-assistant.js --search "machine learning"

Searches all indexed sources by entities and content.

Auto-summarize on a topic

node skills/research-assistant/research-assistant.js --summarize "climate change"

Collects all relevant entities and sources, generates a summary with key findings.

View knowledge graph

node skills/research-assistant/research-assistant.js --graph

Shows entities grouped by type and their relationships.

Status

node skills/research-assistant/research-assistant.js

Overview of indexed sources, unique entities, relations, and entity type breakdown.

How It Works

Entity Extraction

  1. Proper nouns — Capitalized phrases (companies, people, places)
  2. Numbers/dates — Dates, years, quantities
  3. URLs — Links found in content
  4. Emails — Email address extraction is intentionally disabled
  5. Relationships — "X is Y", "X works at Y" patterns

Knowledge Base

  • Sources are indexed with entities and relationships
  • Entity index enables fast lookups
  • Relations are deduplicated and tracked
  • Auto-summarization pulls from all relevant sources

Integration with Memory Router

Research Assistant builds on the same entity resolution system as MemoryRouter. Entities extracted from research can be linked to MEMORY.md sections for persistent memory.

Configuration

No config needed. Knowledge base is stored in memory/research/.

Override data directory:

--dir /path/to/data

Agent Protocol

When reading new content:

  1. Extract entities: --extract
  2. Search existing: --search before reading new content
  3. Summarize findings: --summarize after extraction
  4. Link to memory: Update MEMORY.md with key findings

Performance

  • File extraction: <10ms per file
  • URL extraction: <10s (network dependent)
  • Entity index: instant lookup
  • KB search: linear scan (optimized for <1000 sources)

Comparison

ApproachKnowledge RetentionSetupMaintenance
No knowledge base0%NoneNone
Manual notes30-50%HighHigh
Research Assistant80-95%NoneAutomated
Vector DB80-95%Very HighHigh

Research Assistant gives you 80-95% knowledge retention with zero setup.

Design Principles

  1. Zero setup — Works immediately, no config needed
  2. No dependencies — Pure Node.js, no npm packages
  3. Entity-first — Knowledge is structured around entities, not just text
  4. Transparent — Everything it extracts is reported
  5. Scalable — Handles 1000+ sources with entity index
  6. Integrates — Works with MemoryRouter for persistent memory

Related skills

Search the web for a topic and produce a structured summary with key findings, sources, and actionable takeaways. Best for quick research briefs, competitive landscape scans, and topic overviews.

1 installs

Summarize any web page by URL or by pasting text. Returns a concise structured summary with key points, entities, and action items. Use when the user wants a quick digest of an article, documentation page, or any web content without reading the full source.

Convert articles or Markdown/TXT files into 5-8 structured knowledge cards for review and self-testing.

Give AI agents Everything you read becomes knowledge. using BlueColumn persistent memory. Use when an agent researches and needs to keep findings; when the user wants to store, recall, or search research memory context. Requires a BlueColumn API key (bc_live_*).

13 installs

Produce a focused literature/knowledge review using only selected Research KB contents.

Import documents and run hybrid vector-plus-keyword search across WeKnora knowledge bases via the REST API.

43 installs13 stars