知识库管理工具

一个为AI代理设计的自维护知识库,通过Model Context Protocol (MCP)提供事实、资源、技能和执行日志的管理功能。

  • by joshua-auchincloss
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 joshua-auchincloss/factsets

使用说明

事实集

包装
CI/CD

人工智能代理的自我维护知识库,通过 模型上下文协议(MCP).管理 事实 (原子知识), 资源 (缓存的外部内容), 技能 (程序性降价),以及 执行日志 (命令历史)使用SQLite。

特性

  • 持久上下文 -知识在会议中得以保留
  • 自我维护 -带有刷新指令的状态检测
  • 基于标签的组织 -灵活的分类和检索
  • 技能文档 -用于程序知识的Markdown文件
  • 用户选项 -可配置的输出样式和代理行为
  • MCP协议 -AI工具/提示定义的标准界面

安装

npm install --global factsets
pnpm install --global factsets
bun install --global factsets

快速开始

作为MCP服务器

使用以下命令添加到MCP客户端配置(Claude Desktop、GitHub Copilot、Cursor等) bunx, npx 或 pnpm dlx 因此:

{
  "mcpServers": {
    "factsets": {
      "command": "bunx",
      "args": ["factsets", "mcp-server"]
    }
  }
}

或者直接运行:

bunx factsets mcp-server

首次设置

将Factsets添加到MCP客户端后,运行安装提示将其集成到您的项目中:

在支持的IDE中:类型 /mcp.factsets.setup 在聊天中运行引导设置

在其他客户中:呼叫 get_setup_guide 工具或使用 setup 提示

安装指南将:

  • 分析你的项目结构并建立基线事实
  • 为您的AI客户端配置技能目录
  • 创建或更新 AGENTS.md 使用Factsets指令
  • 通过Factsets集成迁移任何现有技能
  • 将密钥配置文件注册为资源

这种一次性设置可确保代理在未来的每次交互中都有完整的上下文。

CLI命令

# Start MCP server (default command - auto-watches skill files and seeds starter content)
bunx factsets [--database-url <path>] [--client <type>]

# Explicit mcp-server command (same as above)
bunx factsets mcp-server [--database-url <path>] [--client <type>]

# Start without file watching
bunx factsets --no-watch-skills

# Start without seeding starter content
bunx factsets --no-seed

# Run file watcher standalone
bunx factsets watch-files [--database-url <path>]

# Run background maintenance worker
bunx factsets worker [--database-url <path>]

# Export database to JSON
bunx factsets dump backup.json

# Restore database from JSON
bunx factsets restore backup.json

这 --client 标志配置技能文件的存储位置(例如。, github-copilot -> .github/prompts/skills/).如果您想更改客户/技能目录,请通过您的代理进行更改,该代理将为您迁移技能。

看 配置指南 对于所有选项。

核心概念

概念 描述
事实 原子知识单元(1-3个句子),带标签和时间戳
资源 具有缓存快照和检索方法的外部内容(文件、URL、API)
技能 用于程序知识的Markdown文档,存储在文件系统上
执行日志 命令历史记录,包括技能验证的成功/失败跟踪
标签 对所有内容类型进行灵活分类

MCP工具

事实

工具 说明
submit_facts 添加带有标签和来源跟踪的事实
search_facts 按标签、内容或过滤器查询事实
verify_facts 将事实标记为已通过ID验证
verify_facts_by_tags 通过标签批量验证事实
update_fact 更新事实内容、元数据或标签
delete_facts 按标准删除事实
restore_facts 恢复软删除的事实

资源

工具 说明
add_resources 使用检索方法注册资源
search_resources 按标签、类型或URI查找资源
get_resources 通过ID或URI获取新鲜度资源
update_resource_snapshot 更新单个资源的缓存内容
update_resource_snapshots 批量更新缓存内容
update_resource 更新资源元数据(不是内容)
delete_resources 删除资源
restore_resources 恢复软删除的资源

技能

工具 说明
create_skill 创建降价技能文档
update_skill 更新技能元数据/参考
search_skills 通过标签或查询查找技能
get_skills 通过内容按名称获取技能
link_skill 将技能与事实/资源/技能联系起来
sync_skill 文件编辑后的同步技能
delete_skills 删除技能
get_dependency_graph 获取技能依赖树
restore_skills 恢复软删除技能

执行日志

工具 说明
submit_execution_logs 记录命令/测试/构建执行
search_execution_logs 按查询、标签、成功查找执行
get_execution_log 按ID获取执行详细信息

标签

工具 说明
create_tags 创建组织标签
list_tags 列出带有使用次数的标签
update_tags 更新标签描述
prune_orphan_tags 清理未使用的孤立标签

配置

工具 说明
get_config 按键获取配置值
set_config 设置配置值
delete_config 删除配置值
list_config 列出所有具有架构的配置
get_config_schema 获取带有描述的可用选项

用户选项

工具 说明
get_preference_prompt 获取自然语言偏好提示
get_user_preferences 获取结构化偏好数据
infer_preference 根据用户行为更新偏好
reset_preferences 将首选项重置为默认值

维护

工具 说明
check_stale 查找过时的资源和依赖关系
mark_resources_refreshed 将资源标记为当前资源

背景与指南

工具 说明
get_knowledge_context 从标签构建上下文(事实/资源/技能)
build_skill_context 掌握格式化内容和参考文献的技能
get_maintenance_report 生成老化/维护报告
get_refresh_guide 获取刷新资源的说明
get_agent_guide 获取代理工作流程指南(先致电)
get_concept_guide 获取概念概述和设计理念
get_config_guide 获取包含所有选项的配置指南

MCP提示

提示 描述
setup 指导新项目集成的设置
user_preferences 获取用户对输出格式的偏好
knowledge_context 从标签构建上下文
recall_skill 掌握推荐信技巧
maintenance_report 稳定性总结
refresh_guide 刷新资源的说明
agent_guide 代理工作流程指南(先呼叫)
concept 概念概述和哲学
config 包含所有选项的配置指南

文档

发展

# Run tests
bun test

# Run full e2e (tests + build + dry run)
bun e2e

# Build distribution
bun dist

# Format code
bun format

# Lint
bun lint

# Generate database migrations
bun migrations

# Inspect MCP server with inspector
bun inspect