事实集
人工智能代理的自我维护知识库,通过 模型上下文协议(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
] [--client ]
# Explicit mcp-server command (same as above)
bunx factsets mcp-server [--database-url
] [--client ]
# 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
]
# Run background maintenance worker
bunx factsets worker [--database-url
]
# 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