137 lines
3.4 KiB
Markdown
137 lines
3.4 KiB
Markdown
# Multi-Repository Role-Based Knowledge Graphs
|
|
|
|
## Overview
|
|
|
|
Terraphim supports **role-specific knowledge graphs** for different repositories/projects.
|
|
|
|
## Role Configuration
|
|
|
|
Each role can have:
|
|
- **Unique thesaurus** - Domain-specific synonyms
|
|
- **Custom haystacks** - Repository-specific search paths
|
|
- **Different embeddings** - Controlled embedding strategies
|
|
- **Access control** - Public/private settings
|
|
|
|
## Example Roles
|
|
|
|
### 1. Terraphim AI Developer
|
|
```json
|
|
{
|
|
"name": "Terraphim AI Developer",
|
|
"kg": {
|
|
"knowledge_graph_local": {
|
|
"path": "terraphim-ai/kg"
|
|
}
|
|
},
|
|
"haystacks": [
|
|
{ "location": "terraphim-ai/crates", "service": "Ripgrep" },
|
|
{ "location": "terraphim-ai/docs", "service": "Ripgrep" }
|
|
],
|
|
"extra": {
|
|
"embeddings_model": "local",
|
|
"synonym_depth": "deep"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Thesaurus Concepts:**
|
|
- Rust (rust, cargo, tokio, async)
|
|
- Knowledge Graph (kg, thesaurus, ontology)
|
|
- Agent (ai, assistant, claude, llm)
|
|
- Search (retrieval, query, find)
|
|
- Role (persona, expert, engineer)
|
|
|
|
### 2. OpenClaw Developer
|
|
```json
|
|
{
|
|
"name": "OpenClaw Developer",
|
|
"kg": {
|
|
"knowledge_graph_local": {
|
|
"path": "openclaw/kg"
|
|
}
|
|
},
|
|
"haystacks": [
|
|
{ "location": "openclaw/src", "service": "Ripgrep" },
|
|
{ "location": "openclaw/docs", "service": "Ripgrep" }
|
|
],
|
|
"extra": {
|
|
"embeddings_model": "local",
|
|
"synonym_depth": "standard"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Thesaurus Concepts:**
|
|
- TypeScript (ts, js, node, npm)
|
|
- Gateway (server, api, websocket)
|
|
- Channel (telegram, discord, slack)
|
|
- Skill (tool, capability, extension)
|
|
- Config (configuration, settings, json)
|
|
|
|
### 3. Learning Capture
|
|
```json
|
|
{
|
|
"name": "Learning Capture System",
|
|
"kg": {
|
|
"knowledge_graph_local": {
|
|
"path": "~/.config/terraphim/docs/src/kg"
|
|
}
|
|
},
|
|
"haystacks": [
|
|
{ "location": "~/.local/share/terraphim/learnings", "service": "Ripgrep" },
|
|
{ "location": "~/.openclaw/workspace/memory", "service": "Ripgrep" }
|
|
],
|
|
"extra": {
|
|
"embeddings_model": "local",
|
|
"synonym_depth": "deep",
|
|
"synonym_expansion": true
|
|
}
|
|
}
|
|
```
|
|
|
|
**Thesaurus Concepts:** (20 groups)
|
|
- Knowledge, Configuration, Git, AI Assistant
|
|
- Tool, Storage, Context Management, Retrieval
|
|
- Failure, Documentation, Programming Languages
|
|
- Testing, Security, Performance, Build
|
|
- Execution, Debugging, Repair
|
|
|
|
## Embeddings Control
|
|
|
|
| Role | Model | Depth | Use Case |
|
|
|------|-------|-------|----------|
|
|
| Terraphim AI | local | deep | Complex reasoning |
|
|
| OpenClaw | local | standard | Balanced |
|
|
| Last30Days | none | basic | Simple lookup |
|
|
| System Operator | none | minimal | Log analysis |
|
|
| Learning Capture | local | deep | Semantic memory |
|
|
|
|
## Switching Roles
|
|
|
|
```bash
|
|
# List available roles
|
|
terraphim-agent roles list
|
|
|
|
# Switch to specific role
|
|
terraphim-agent roles select "LearningCapture"
|
|
|
|
# Search within current role
|
|
terraphim-agent learn query "setup"
|
|
```
|
|
|
|
## Benefits
|
|
|
|
1. **Isolation** - Each repo has its own KG
|
|
2. **Specialization** - Domain-specific synonyms
|
|
3. **Performance** - Controlled embedding scope
|
|
4. **Privacy** - Public/private KG settings
|
|
5. **Flexibility** - Different search strategies per role
|
|
|
|
## Files Created
|
|
|
|
- `~/.config/terraphim/multi_repo_roles.json` - Role definitions
|
|
- `~/.config/terraphim/kg/terraphim-ai/` - Terraphim AI KG
|
|
- `~/.config/terraphim/kg/openclaw/` - OpenClaw KG
|
|
- `~/.config/terraphim/kg/last30days/` - Last30Days KG
|
|
- `~/.config/terraphim/kg/system/` - System Operator KG
|