| name | ex-brain |
| description | CLI 个人知识库工具,支持智能编译、时间线管理、实体链接、混合检索。当用户需要管理知识笔记、编译信息、建立实体关联、时间线提取、或启动 MCP Server 时使用此 skill。 |
ex-brain
本地优先的个人知识库 CLI,基于 seekdb 构建。核心能力:智能编译新信息、自动提取时间线、实体关联、混合检索。
安装
bun install -g ex-brain
npm install -g ex-brain
ebrain init
配置
编辑 ~/.ebrain/settings.json:
{
"db": { "path": "~/.ebrain/data/ebrain.db" },
"embed": {
"provider": "hash",
"baseURL": "...",
"model": "text-embedding-v4",
"dimensions": 1024,
"apiKey": "",
"apiKeyEnv": "DASHSCOPE_API_KEY"
},
"llm": {
"baseURL": "...",
"model": "qwen-plus",
"apiKeyEnv": "DASHSCOPE_API_KEY"
}
}
运行 ebrain config 查看当前配置。
核心命令
页面管理
ebrain put <slug> --file <path>
ebrain put <slug> --stdin
ebrain put <slug> --type <type> --content "内容"
ebrain get <slug>
ebrain get <slug> --json
ebrain list [--type person] [--tag yc] [--limit 50]
ebrain delete <slug> [--dry-run]
智能编译(核心功能)
智能编译会分析新信息、更新 Compiled Truth、提取时间线事件:
ebrain compile <slug> <info> --source <source> --date <date>
ebrain compile companies/river-ai \
"River AI 上了 A 轮,Sequoia 领投,5000万" \
--source meeting_notes \
--date 2024-05-20
编译结果:
- 状态信息(融资阶段、CEO)→ 更新,旧值归档到 History
- 事实信息(成立年份、行业)→ 追加保留
- 事件信息 → 记录到时间线
时间线
ebrain timeline list <slug>
ebrain timeline extract <slug>
ebrain timeline add <slug> --date YYYY-MM-DD --summary "..."
检索
ebrain search <query> [--type person] [--limit 10]
ebrain query <question> [--limit 10]
ebrain search "River AI 融资"
ebrain query "哪些公司最近融资了?"
实体链接
ebrain link <from_slug> <to_slug> --context "关系描述"
ebrain backlinks <slug>
标签
ebrain tag list <slug>
ebrain tag add <slug> <tag>
ebrain tag remove <slug> <tag>
知识图谱可视化
ebrain graph
ebrain graph --port 8080 --open
MCP Server
ebrain serve
ebrain serve --db /path/to/db
MCP 配置
在 Claude Desktop 或其他 MCP 客户端中配置:
{
"mcpServers": {
"ebrain": {
"command": "ebrain",
"args": ["serve"]
}
}
}
MCP 工具列表
| 工具 | 功能 |
|---|
brain_get | 获取页面内容 |
brain_put | 创建/更新页面 |
brain_search | 混合检索 |
brain_query | 语义查询 |
brain_compile | 智能编译新信息 |
brain_link | 创建实体链接 |
brain_timeline_list | 查看时间线 |
brain_timeline_extract | 提取时间线事件 |
Slug 命名规范
使用 {type}/{name} 格式:
companies/river-ai
people/sarah-chen
projects/alpha-launch
notes/meeting-2024-05-20
类型:company, person, project, organization, event, note, other
最佳实践
1. 编译优于追加
遇到新信息时,优先用 compile 而不是直接 put:
ebrain compile companies/river-ai "新信息" --source news
ebrain put companies/river-ai --content "追加的内容"
2. 信息来源标注
始终标注信息来源,便于追溯:
ebrain compile companies/river-ai "信息" \
--source meeting_notes \
--date 2024-05-20
3. 类型分类
写入页面时指定类型,便于筛选:
ebrain put companies/river-ai --type company --file notes.md
ebrain put people/sarah-chen --type person --content "..."
4. 使用管道输入
适合脚本和自动化:
cat notes.md | ebrain put my/note --stdin
curl -s https://api.example.com/data | ebrain raw set my/page --source api --stdin
5. JSON 输出供程序处理
ebrain get companies/river-ai --json | jq '.compiledTruth'
ebrain list --type company --json | jq '.[] | .slug'
数据模型
pages:知识页面(slug、type、title、compiled_truth、timeline)
links:实体关联(from_slug、to_slug、context)
timeline_entries:时间线事件(date、source、summary、detail)
page_tags:页面标签
raw_data:原始数据存储
ebrain_pages(向量集合):用于语义检索
技术栈
- 数据库:seekdb(嵌入式数据库)
- 运行时:Bun 或 Node.js
- 嵌入:本地 Hash 或 OpenAI Compatible API
- LLM:用于智能编译、时间线提取、实体链接
参考