Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计通过

vyasagraphvyasagraph 搜索

Agent Skill

vyasagraph 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

4,260

周安装

183

GitHub Stars

1

下载量

1,493
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:vyasagraph(vyasagraph 搜索)
来源仓库:https://github.com/minopop/vyasagraph
安装命令:
openclaw skills install vyasagraph
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install vyasagraph

简介

vyasagraph 提供代理的短期与长期记忆机制,支持语义搜索与知识图谱构建。

  • 适用于防止代理性失忆、增强上下文存活性和永久知识存储。
  • 通过热可生存上下文和知识图实现智能检索与经验沉淀。
  • 使用前需确认数据存储位置、隐私合规性及网络访问权限。
  • 建议查阅原始 README 了解索引更新频率和查询延迟表现。

SKILL.md

name
vyasagraph
description
No more agentic amnesia. Gives your agent short-term + long-term memory: hot survivable context + knowledge graph for permanent recall. Semantic search, graph relations, no server required.
metadata

VyasaGraph — Persistent Agent Memory

🇶🇦 Proudly built in Qatar 🇶🇦 — make ❤️ not 🚀

Most AI agents are amnesiac by design — every conversation starts from zero. VyasaGraph changes that. It's an embedded knowledge graph that lets your agent remember people, decisions, and relationships, then find them later by *meaning* — not just keywords. No server to run, no infrastructure to maintain. Just drop it in and your agent goes from stateless to genuinely context-aware.

Because memory is what separates a tool from a colleague.

VyasaGraph = No more Agentic Amnesia


🧠 Dual-Layer Memory System

What gives VyasaGraph superpowers?


1. SHORT TERM MEMORY — RAM layer. Instant access to current-session context. Survives context compaction. Written before every response.

  • 🔥 Holds *hot, in-flight context*: what's happening right now, decisions made this session, things to remember before the next compaction
  • 🛡️ Survives context window resets (compaction) because it's a file, not just tokens
  • 📝 Think of it as a *write-ahead log* — the agent writes to it continuously so nothing is lost mid-session

2. LONG TERM MEMORY — Hard drive layer. Permanent knowledge graph with semantic search, graph relations, and project tracking. Persists across sessions.

  • 🗄️ An *embedded SurrealDB database* (no server needed — it's a local file)
  • 🧠 Stores *permanent knowledge*: entities, relations between them, past decisions, errors, project state
  • 🔍 Query it with natural language and it finds all relevant memories — full native semantic search

VyasaGraph does this all automatically. No need to tell it to do anything memory-related.


Why Two Layers?

SESSION-STATEVyasaGraph
SpeedInstant (file read)~5–100ms
ScopeCurrent sessionAll sessions
PurposeHot context, write-ahead logPermanent knowledge
Survives compaction?✅ Yes (plain file)✅ Yes
Semantic search?❌ No✅ Yes (HNSW vectors)
Best forPending tasks, decisions in flightPeople, projects, history

Features

  • 🗂️ Multi-model database — Graph + Document + Vector in one embedded engine
  • 🔍 Semantic search — HNSW-indexed 1536-dim embeddings (cosine similarity). Search by *meaning*, not just keywords
  • 🕸️ Graph relations — Native SurrealDB graph edges with traversal (works_at, reports_to, owns, etc.)
  • 📋 Project management — Built-in task board with status, priority, and next-action tracking (v3)
  • 🐛 Error tracking — Verrors system: log recurring issues as entities, detect patterns over time (v4)
  • Zero infrastructure — Embedded RocksDB, no server needed. Just a local file
  • 🔌 MCP-compatible API — Drop-in replacement for MCP memory operations
  • 🟢 Node.js 18+ — ES Modules, works anywhere Node runs

🔒 Security & Privacy

What this skill does with your data:

  • 📁 Local only — all data is stored in files on your machine (memory.db, SESSION-STATE.md). Nothing is sent to external servers except OpenAI embedding calls (if you set OPENAI_API_KEY).
  • 🔑 OpenAI API key — used only to generate text embeddings. Embeddings are computed from entity observations (facts you explicitly store), not from raw conversation messages. The text sent to OpenAI is what you have written into VyasaGraph entities — not the full conversation transcript. Omit the key entirely to use keyword search only.
  • 🌐 No telemetry — VyasaGraph makes no outbound network calls except to the OpenAI embeddings API when a key is configured.
  • 📦 Open source — full source code at https://github.com/minopop/vyasagraph. Review it before installing.

What you should NOT store in VyasaGraph:

  • ❌ API keys, passwords, or credentials
  • ❌ Payment card or financial account details
  • ❌ Health or medical records
  • ❌ Any data you would not want stored in a local unencrypted file

Memory is opt-in by design. The instructions in this skill tell the agent *when* to record information, but you control what data you share with your agent. The agent only stores what you tell it — it does not scrape, intercept, or auto-collect data from other sources.

Retention: SESSION-STATE.md is designed to be cleared at session end. memory.db is permanent until you delete it. To erase all memory: delete memory.db.


Setup

npm install vyasagraph

Copy the SESSION-STATE template to your workspace root:

cp node_modules/vyasagraph/SESSION-STATE-TEMPLATE.md SESSION-STATE.md

Set your OpenAI API key (for semantic embeddings — text search works without it):

# .env
OPENAI_API_KEY=sk-...

Wire into your agent

Add this to your MEMORY.md (or equivalent instruction file):

## FIRST ACTION EVERY MESSAGE — MANDATORY
1. READ `SESSION-STATE.md` for hot context from current session
2. WRITE to SESSION-STATE.md BEFORE responding if user gives new decisions, deadlines, or context
   - Update "Last updated" timestamp on every write
   - Clear completed tasks from Pending Actions
3. SEARCH VyasaGraph: `const results = await vg.smartSearch('topic', 5);`
4. THEN respond with loaded context

## AUTO-RECORD — EVERY CONVERSATION
When the user shares substantive information, record it in that same reply:
- New facts about people → addObservations()
- Decisions or strategies → createEntities() + addObservations()
- New relationships → createRelations()
- Status changes → updateEntity()

Rule: If the user tells you something you didn't know before, write it to VyasaGraph
in that same reply. Do not wait for end of session.

## SESSION-STATE vs VyasaGraph
- SESSION-STATE = CPU cache (hot, ephemeral, write-ahead log, session scope)
- VyasaGraph = hard drive (permanent, semantic search, cross-session knowledge)
- Both required. Neither replaces the other.

## Key Paths
- VyasaGraph DB: `./memory.db`
- SESSION-STATE: `./SESSION-STATE.md`

Add this to your SOUL.md:

## Memory System
I use a two-layer memory stack:
1. SESSION-STATE.md — working memory for the current session. I read this at the
   start of every message and update it before responding with anything important.
   This is how I remember what we were doing when context compresses.
2. VyasaGraph — long-term knowledge graph. Stores entities (people, projects,
   decisions) with relations and semantic vector search. I search this for context
   on every substantive message.

If the user tells me something I didn't know before, I write it to VyasaGraph
in that same reply. I do not defer to end-of-session.

Basic Usage

import * as vg from 'vyasagraph/src/index.js';

// Initialize (creates memory.db if it doesn't exist)
await vg.init('memory.db');

// Store knowledge
await vg.createEntities([{
  name: 'Alice (user)',
  entityType: 'Person',
  observations: ['Software engineer', 'Based in Berlin', 'Prefers concise answers']
}]);

// Create relationships
await vg.createRelations([{
  from: 'Alice (user)',
  to: 'Acme Corp',
  relationType: 'works_at'
}]);

// Add facts as you learn them
await vg.addObservations([{
  entityName: 'Alice (user)',
  contents: ['Leading the platform redesign project', 'Deadline: end of Q2']
}]);

// Semantic search — finds by meaning, not just keywords
const results = await vg.smartSearch('software engineering Berlin', 5);

// Always close
await vg.close();

Search

// ✅ Always use smartSearch — semantic + name boosting
const results = await vg.smartSearch('project management strategy', 10);

// Text fallback (no embeddings needed)
const found = await vg.searchText('Berlin engineer', 5);

// Open specific entities by name
const entities = await vg.openNodes(['Alice (user)', 'Bob (colleague)']);

// Full graph export
const { entities, relations } = await vg.readGraph();

// Stats
const stats = await vg.getStats();
// { entityCount: 42, relationCount: 18 }

Project & Task Tracking (v3)

Built-in task board — track projects with status, priority, and next actions:

await vg.createEntities([{
  name: 'P01 - Website redesign',
  entityType: 'Project',
  observations: ['Modernise the company website'],
  metadata: {
    status: 'Active',        // Not Started | Active | On Hold | Blocked | Complete
    priority: 'High',        // High | Medium | Low
    category: 'Work',        // Work | Personal
    nextAction: 'Finalise wireframes by Friday'
  }
}]);

// Update when done
await vg.updateEntity('P01 - Website redesign', {
  metadata: { status: 'Complete', completedAt: new Date().toISOString() }
});

// Get formatted markdown task board
const board = await vg.formatAsVtasks();

Error Tracking (v4 verrors)

Log recurring errors as entities — build a pattern library over time:

await vg.createVerror({
  subsystem: 'cron_daily_brief',
  errorType: 'timeout',
  errorMessage: 'Daily brief timed out after 30s',
  impact: 'User did not receive morning update'
});

// Check unresolved issues
const unresolved = await vg.getUnresolvedVerrors();

// Mark resolved
await vg.resolveVerror('ERR-123456 (cron timeout, 2025-01-15)', 'Increased timeout to 60s');

Naming Conventions

Descriptive names = better semantic search:

// Person: Name (aliases, role, relationship)
'Alice Johnson (Alice, Head of Engineering, reports to Bob)'

// Project: ID + name
'P01 - Website redesign'

// Document: Name (type, date)
'Q1 Strategy (board presentation, 2025-Q1)'

Entity Types

Always set entityType:

  • Person — individuals
  • Project — tracked work (with metadata)
  • Document — written artefacts
  • Analysis — analytical outputs
  • Communication — messages, threads
  • Error — verrors (auto-managed)

Tech Stack

  • SurrealDB — embedded graph database
  • RocksDB — storage engine (reliable on all platforms, no config needed)
  • HNSW — approximate nearest-neighbour vector index (cosine similarity)
  • OpenAI — text-embedding-3-small (1536 dimensions)
  • Node.js 18+ — ES Modules

Full Docs

  • GitHub: https://github.com/minopop/vyasagraph
  • npm: https://www.npmjs.com/package/vyasagraph
  • INSTALL.md (bundled with package) — full wiring guide for all agent platforms
  • ARCHITECTURE.md (bundled) — technical deep-dive

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

79.26%
按下载量换算1,183

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills