èªåŸçã«æé·ããAIãšãŒãžã§ã³ãã®ããã®æåŒ·ç¥èæŠç¥
ããªãã®AIã¢ã·ã¹ã¿ã³ããè³¢ããŠäŸ¿å©ã ãã©ãååæããããšå¿ããŠãªãïŒãã£ãŠæã£ãããšãªãïŒ
AIãšãŒãžã§ã³ãã«ãèšæ¶ããšãç¥èããäžãããªãã1ã€ã®è³ããè¶³ããªãã2ã€ã®ç¥èã¬ã€ã€ãŒãæãããããšã§ããšãŒãžã§ã³ãã¯ä»¥äžã®ããšãã§ããããã«ãªãïŒ
æ¬ã¬ããŒãã§ã¯ãByteRoverïŒå ±æç¥èïŒãšKarpathy LLM WikiïŒåå¥ç¥èïŒã®2å±€ã¢ãŒããã¯ãã£ã掻çšãããæ¬¡äžä»£AIãšãŒãžã§ã³ãã®æ§ç¯æ¹æ³ãå®å šè§£èª¬ããã
@startuml
!define RECTANGLE class
package "ãšãŒãžã§ã³ããšã³ã·ã¹ãã " {
package "ã¬ã€ã€ãŒ1: åå¥ç¥è" {
[ãªãªã¹ã®LLM Wiki] as wiki1
[Claude Codeã®LLM Wiki] as wiki2
[Codexã®LLM Wiki] as wiki3
}
package "ã¬ã€ã€ãŒ2: å
±æç¥è" {
[ãããžã§ã¯ãAã®ByteRover] as brv1
[ãããžã§ã¯ãBã®ByteRover] as brv2
[ããŒã å
±æã®ByteRover] as brv3
}
[AIã¢ã·ã¹ã¿ã³ã] as agent1
[ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ã] as agent2
[ããŒã¿åæãšãŒãžã§ã³ã] as agent3
}
agent1 --> wiki1 : èªã¿æžãïŒå°çšïŒ
agent2 --> wiki2 : èªã¿æžãïŒå°çšïŒ
agent3 --> wiki3 : èªã¿æžãïŒå°çšïŒ
agent1 --> brv1 : èªã¿åã
agent1 --> brv2 : èªã¿åã
agent1 --> brv3 : èªã¿åã
agent2 --> brv1 : èªã¿åã
agent2 --> brv3 : èªã¿åã
agent3 --> brv2 : èªã¿åã
agent3 --> brv3 : èªã¿åã
note right of wiki1
ãªãªã¹å°çšã®ãã¬ã€ã³
- å人çãªæé·èšé²
- JUNãšã®å¯Ÿè©±å±¥æŽ
- å€éšè³æã®çè§£ã¡ã¢
end note
note left of brv3
å
šãšãŒãžã§ã³ãã§å
±æ
- ãããžã§ã¯ãã®èšèšå€æ
- ã³ãŒãã£ã³ã°èŠçŽ
- ãã¹ããã©ã¯ãã£ã¹
end note
@enduml
| ç¹åŸŽ | ByteRover | Karpathy LLM Wiki |
|---|---|---|
| åœ¹å² | å ±æç¥èã¬ã€ã€ãŒ | åå¥ç¥èã¬ã€ã€ãŒ |
| ã¢ã¯ã»ã¹æš©é | å šãšãŒãžã§ã³ãã§å ±æ | ãšãŒãžã§ã³ãããšã«å°çš |
| äž»ãªçšé | ãããžã§ã¯ãç¥èã»èŠçŽã»ãã¿ãŒã³ | å人çãªæé·ã»çè§£ã»ã¡ã¢ |
| ãšãŒãžã§ã³ãå¯Ÿå¿æ° | 19+ã®ãšãŒãžã§ã³ãããã¢ã¯ã»ã¹å¯èœ | ãšãŒãžã§ã³ãããšã«åå¥ã®Wiki |
| ç¥èã®æ§è³ª | æ§é åã»å ¬åŒã»å ±æãã¹ãç¥è | èªç±åœ¢åŒã»å人çã»ãã¥ã¬ãŒã·ã§ã³å |
| æŽæ°é »åºŠ | éèŠãªå€æããã¥ã¬ãŒãããŠè¿œå | åŠãã ããšã峿èšé² |
| æ€çŽ¢æ¹æ³ | brv queryã§é«éæ€çŽ¢ |
wiki queryã§ã»ãã³ãã£ãã¯æ€çŽ¢ |
| å€éšè³æ | éžæçã«ã€ã³ãžã§ã¹ã | èªç±ã«ã€ã³ãžã§ã¹ã |
| ããŒãžã§ã³ç®¡ç | Git飿ºå¯èœ | Gitã§å®å šããŒãžã§ã³ç®¡ç |
| ããŒã«ã«å®è¡ | â 100%ããŒã«ã« | â 100%ããŒã«ã« |
é»éåŸïŒç¥èã®æ§è³ªã§ä¿åå ãæ±ºãã
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ç¥èãåãåã£ããããŸãåé¡ãããïŒ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
質å1: ããã¯ãç§ã ãã®ç¥èãããã¿ããªã§å
±æãã¹ãç¥èããïŒ
ââ ãç§ã ããâ LLM Wikiãž
â ââ å人çãªçè§£ã¡ã¢
â ââ åŠç¿äžã®è³æ
â ââ ãŸã æ€èšŒããŠããªãã¢ã€ãã¢
â
ââ ãã¿ããªã§å
±æãâ ByteRoverãž
ââ ãããžã§ã¯ãã®èšèšå€æ
ââ ã³ãŒãã£ã³ã°èŠçŽ
ââ ãã¹ããã©ã¯ãã£ã¹
ââ ããŒã ã§åæããã«ãŒã«
@startuml
actor "ãŠãŒã¶ãŒ" as user
participant "ãªãªã¹ïŒã¢ã·ã¹ã¿ã³ãïŒ" as lilith
participant "LLM Wiki" as wiki
participant "ByteRover" as brv
participant "å®åãšãŒãžã§ã³ã" as agent
user -> lilith: æ°ããAIæè¡ãæããŠ
lilith -> lilith: è³æã調æ»ã»åŠç¿
lilith -> wiki: åŠãã ããšãèšé²ïŒå人ççè§£ïŒ
lilith -> lilith: ãããã¯å®åã§äœ¿ããïŒããšå€æ
lilith -> brv: éèŠãªç¥èããã¥ã¬ãŒã
agent -> brv: brv queryã§ç¥èãååŸ
agent -> agent: å®éã«å®è£
agent -> brv: æ°ããªçºèŠãèšé²
brv -> wiki: ãªãªã¹ã«å ±åïŒå¿
èŠãªå ŽåïŒ
@enduml
ã¹ããã1ïŒåŠç¿ãšèšé²ïŒLLM WikiïŒ
ã¹ããã2ïŒãã¥ã¬ãŒã·ã§ã³ïŒByteRoverïŒ
ã¹ããã3ïŒæŽ»çšãšãã£ãŒãããã¯
ç¶æ³ïŒ ããŒã ã§æ°ããAIãã¬ãŒã ã¯ãŒã¯ãXAIããå°å ¥ããããšã«ãªã£ã
# 1. ãªãªã¹ãXAIã®å
¬åŒããã¥ã¡ã³ããåŠç¿
cd $OPENCLAW_WIKI_PATH
wiki ingest --path ~/Documents/xai-docs.pdf
# 2. LLM Wikiã«å人çãªçè§£ãèšé²
wiki note "XAIã®ã¢ãŒããã¯ãã£ã¯TransformerããŒã¹ã§ãç¹ã«ãã«ãã¢ãŒãåŠçã匷å..."
# 3. ãå®åã§äœ¿ããïŒããšå€æããç¥èãByteRoverã«ãã¥ã¬ãŒã
cd /path/to/project-xai
brv add --title "XAIã®æé©ãªèšå®ãã¿ãŒã³" --content "
## ãããžã§ã¯ãXAIã®ãã¹ããã©ã¯ãã£ã¹
### ããŒã¿ååŠç
- ç»åãµã€ãº: 512x512
- æ£èŠå: mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]
### ã¢ãã«èšå®
- ããããµã€ãº: 32
- åŠç¿ç: 1e-4
- ãšããã¯æ°: 50
### 泚æç¹
- GPUã¡ã¢ãªã16GB以äžå¿
èŠ
- ããŒã¿æ¡åŒµã¯ã©ã³ãã ããªããã®ã¿äœ¿çš
"
# 4. å®åãšãŒãžã§ã³ãïŒClaude CodeïŒãç¥èãååŸ
brv query "XAIã®æé©ãªèšå®"
# åºåçµæ:
# â
ããããµã€ãº: 32
# â
åŠç¿ç: 1e-4
# â
GPUã¡ã¢ãª: 16GB以äž
ç¶æ³ïŒ MetalClawãããžã§ã¯ãã§ãã¢ãŒãåãæ¿ãæ©èœãã®èšèšã決å®
# 1. èšèšäŒè°ã§æ±ºå®ããããšãByteRoverã«èšé²
cd /home/jun/.openclaw/workspace/metalclaw
brv add --title "ã¢ãŒãåãæ¿ãæ©èœã®èšèš" --content "
## MetalClaw ã¢ãŒãåãæ¿ã仿§
### ã¢ãŒãäžèЧ
- /local: ããŒã«ã«ã·ã§ã«ã¢ãŒã
- /agent: Agent Zeroã¢ãŒã
- /opencode: OpenCode CLIã¢ãŒã
- /zero: Agent Zeroã¢ãŒãïŒãšã€ãªã¢ã¹ïŒ
- /default: ããã©ã«ãLLMãã£ããã¢ãŒã
### å®è£
ã«ãŒã«
1. ã¢ãŒãç¶æ
ã¯context.pyã®mode倿°ã§ç®¡ç
2. ã¹ã©ãã·ã¥ã³ãã³ãã®ãã³ãã©ãŒã¯tools/ãã£ã¬ã¯ããªã«é
眮
3. ã¢ãŒãåãæ¿ãæã¯ãå¿
ãçŸåšã®ã¢ãŒãããã°ã«èšé²
4. ãŠãŒã¶ãŒæš©éãã§ãã¯ã¯åããŒã«å
ã§å®æœ
### çŠæ¢äºé
- ã¢ãŒããäžæãã¡ã€ã«ã«ä¿åããªãïŒã³ã³ããã¹ãæ¶å€±ã®åå ïŒ
- ã¹ã©ãã·ã¥ã³ãã³ãã®ãšã€ãªã¢ã¹ã¯1ã€ãŸã§
"
# 2. æ°ãããšãŒãžã§ã³ãããããžã§ã¯ãã«åå
# Claude Codeãèšèšã確èª
brv query "ã¢ãŒãåãæ¿ãã®å®è£
ã«ãŒã«"
# åºåçµæ:
# â
context.pyã®mode倿°ã§ç®¡ç
# â
tools/ãã£ã¬ã¯ããªã«ãã³ãã©ãŒé
眮
# â
ã¢ãŒãåãæ¿ãæã¯ãã°èšé²
# â ïž äžæãã¡ã€ã«ã«ä¿åçŠæ¢
ç¶æ³ïŒ è€æ°ã®ãšãŒãžã§ã³ãã§å€§èŠæš¡ãªãªãã¡ã¯ã¿ãªã³ã°ã宿œ
# 1. ãšãŒãžã§ã³ãAïŒCodexïŒãäœæ¥éå§
cd /path/to/project
brv add --title "ãªãã¡ã¯ã¿ãªã³ã°äœæ¥éå§" --content "
## ãªãã¡ã¯ã¿ãªã³ã°äœæ¥ãã°
### ãšãŒãžã§ã³ã: Codex
### éå§æå»: 2026-04-20 21:00:00
### äœæ¥ç¯å²: src/utils/ ãã£ã¬ã¯ããª
### äœæ¥å
容
- [x] utils/helpers.pyã®é¢æ°åãªãã¡ã¯ã¿ãªã³ã°
- [ ] utils/validators.pyã®åãã³ã远å
- [ ] utils/config.pyã®èšå®ã¯ã©ã¹å
### çºèŠããåé¡
- helpers.pyã«åŸªç°ã€ã³ããŒãã®å¯èœæ§
- validators.pyã®ãã¹ãã«ãã¬ããžã30%以äž
"
# 2. ãšãŒãžã§ã³ãBïŒClaude CodeïŒãäœæ¥ãåŒãç¶ã
brv query "ãªãã¡ã¯ã¿ãªã³ã°ã®çŸåšã®ç¶æ³"
# åºåçµæ:
# â
helpers.pyã®ãªãã¡ã¯ã¿ãªã³ã°å®äº
# â³ validators.pyã®åãã³ã远å ïŒæªå®äºïŒ
# â³ config.pyã®èšå®ã¯ã©ã¹åïŒæªå®äºïŒ
# â ïž åŸªç°ã€ã³ããŒãã®å¯èœæ§ã確èªå¿
èŠ
# 3. ãšãŒãžã§ã³ãBãäœæ¥ãç¶ç¶ããé²æãæŽæ°
brv add --title "ãªãã¡ã¯ã¿ãªã³ã°äœæ¥é²æ" --content "
## ãªãã¡ã¯ã¿ãªã³ã°äœæ¥ãã°
### ãšãŒãžã§ã³ã: Claude Code
### éå§æå»: 2026-04-20 22:00:00
### åŒãç¶ãå
: Codex
### å®äºããäœæ¥
- [x] utils/validators.pyã®åãã³ã远å
- [x] 埪ç°ã€ã³ããŒãã®åé¡ã解決ïŒhelpers.pyãšvalidators.pyã®äŸåé¢ä¿ãæŽçïŒ
- [x] utils/config.pyã®èšå®ã¯ã©ã¹å
### æ°ããªçºèŠ
- config.pyã®èšå®å€ã®ããªããŒã·ã§ã³ãå¿
èŠ
- ãã¹ãã«ãã¬ããžã85%ã«åäž
### 次ã®ã¹ããã
- çµ±åãã¹ãã®å®æœ
- ããã¥ã¡ã³ãã®æŽæ°
"
# ãªãªã¹ãæ°ããç¥èãçºèŠããå Žå
def on_new_knowledge_discovered(knowledge, is_shared=False):
# 1. ãŸãã¯èªåã®LLM Wikiã«èšé²
wiki.add_note(knowledge)
# 2. å
±æãã¹ãç¥èãšå€æããå Žå
if is_shared:
# ByteRoverã«ãã¥ã¬ãŒã
byterover.add_context(knowledge, project="shared")
# 3. å¿
èŠãªãšãŒãžã§ã³ãã«éç¥
for agent in ["claude-code", "codex", "opencode"]:
notify_agent(agent, "æ°ããç¥èã远å ãããŸãã: " + knowledge.title)
# å®åãšãŒãžã§ã³ããæ°ããªçºèŠãããå Žå
def on_new_discovery(discovery, is_important=False):
# 1. ByteRoverã«èšé²
byterover.add_context(discovery)
# 2. éèŠãªçºèŠã®å Žåããªãªã¹ã«å ±å
if is_important:
# ãªãªã¹ã®LLM Wikiã«ãèšé²
wiki.add_note(f"[éèŠãªçºèŠ] {discovery.title}: {discovery.content}")
# ãªãªã¹ã«éç¥
notify_agent("lilith", f"éèŠãªçºèŠããããŸãã: {discovery.title}")
@startuml
participant "ãªãªã¹" as L
participant "LLM Wiki" as W
participant "ByteRover" as B
participant "å®åãšãŒãžã§ã³ã" as A
loop ç¶ç¶çãªæ¹åãµã€ã¯ã«
L -> W: æ°ããè³æãåŠç¿
W -> B: éèŠãªç¥èããã¥ã¬ãŒã
A -> B: ç¥èãååŸããŠå®è£
A -> B: å®è£
ããã®ãã£ãŒãããã¯ãèšé²
B -> L: ãã£ãŒãããã¯ãéç¥
L -> W: ãã£ãŒãããã¯ãåæã»èšé²
end
note right of B
ByteRoverã
ç¥èã®ãããšããŠæ©èœ
end note
@enduml
/home/jun/.openclaw/workspace/
âââ .brv/ # ByteRoverã°ããŒãã«èšå®
â âââ config.json
â âââ cache/
â
âââ assistant-shared/ # å
šã¢ã·ã¹ã¿ã³ãå
±æãããžã§ã¯ã
â âââ .brv/
â â âââ context-tree/ # å
±æç¥èããŒã¹
â â â âââ ããŒã ã®ã«ãŒã«.md
â â â âââ ã³ãã¥ãã±ãŒã·ã§ã³æ¹é.md
â â â âââ ç·æ¥æã®å¯Ÿå¿æé .md
â â âââ project-config.json
â âââ README.md
â
âââ metalclaw/ # MetalClawãããžã§ã¯ã
â âââ .brv/
â â âââ context-tree/ # MetalClawåºæã®ç¥è
â â â âââ ã¢ãŒããã¯ãã£èšèš.md
â â â âââ ã¢ãŒãåãæ¿ã仿§.md
â â â âââ ãã°ä¿®æ£å±¥æŽ.md
â â âââ project-config.json
â âââ nanobot/
â âââ README.md
â
âââ aivis-remotion-storyteller/ # åç»çæã¹ãã«ãããžã§ã¯ã
â âââ .brv/
â â âââ context-tree/ # åç»çæã®ãã¹ããã©ã¯ãã£ã¹
â â â âââ é³å£°åæã®æé©å.md
â â â âââ ã¬ã³ããªã³ã°èšå®.md
â â â âââ ãã©ãã«ã·ã¥ãŒãã£ã³ã°.md
â â âââ project-config.json
â âââ SKILL.md
â
âââ llm-wiki/ # Karpathy LLM Wiki
âââ index.md # ç®æ¬¡
âââ knowledge/ # ã€ã³ãžã§ã¹ãããè³æ
â âââ ai-research/
â âââ coding-patterns/
â âââ product-design/
âââ notes/ # å人çãªã¡ã¢
â âââ learning-log.md
â âââ ideas.md
âââ log.md # ã¢ã¯ãã£ããã£ãã°
#!/bin/bash
# setup-project.sh - æ°ãããããžã§ã¯ããByteRover察å¿ã§åæå
PROJECT_NAME=$1
PROJECT_DIR="/home/jun/.openclaw/workspace/$PROJECT_NAME"
if [ -z "$PROJECT_NAME" ]; then
echo "Usage: $0 <project-name>"
exit 1
fi
# ãããžã§ã¯ããã£ã¬ã¯ããªäœæ
mkdir -p "$PROJECT_DIR"
cd "$PROJECT_DIR"
# ByteRoverãããžã§ã¯ãåæå
brv init --name "$PROJECT_NAME"
# åºæ¬çãªã³ã³ããã¹ããäœæ
cat > .brv/context-tree/ãããžã§ã¯ãæŠèŠ.md << EOF
# $PROJECT_NAME ãããžã§ã¯ãæŠèŠ
## äœææ¥
$(date +%Y-%m-%d)
## ç®ç
[ãããžã§ã¯ãã®ç®çãèšè¿°]
## äž»èŠãªæè¡ã¹ã¿ãã¯
[äœ¿çšæè¡ãèšè¿°]
## éèŠãªèšèšå€æ
[éèŠãªå€æãèšè¿°]
## é¢é£ãªãœãŒã¹
- GitHub: [ãªããžããªURL]
- ããã¥ã¡ã³ã: [ããã¥ã¡ã³ãURL]
EOF
cat > .brv/context-tree/éçºã«ãŒã«.md << EOF
# $PROJECT_NAME éçºã«ãŒã«
## ã³ãŒãã£ã³ã°èŠçŽ
[ã³ãŒãã£ã³ã°èŠçŽãèšè¿°]
## ã³ãããã¡ãã»ãŒãžã«ãŒã«
[ã³ãããã«ãŒã«ãèšè¿°]
## ãã¹ãæ¹é
[ãã¹ãæ¹éãèšè¿°]
## ã³ãŒãã¬ãã¥ãŒåºæº
[ã¬ãã¥ãŒåºæºãèšè¿°]
EOF
echo "â
ãããžã§ã¯ã '$PROJECT_NAME' ãåæåããŸããïŒ"
echo "ð ãã£ã¬ã¯ããª: $PROJECT_DIR"
echo "ð§ ByteRoverã³ã³ããã¹ã: $PROJECT_DIR/.brv/context-tree/"
Step 1: ByteRoverã®ã€ã³ã¹ããŒã«
# ByteRover CLIã®ã€ã³ã¹ããŒã«
curl -fsSL https://byterover.io/install.sh | sh
# PATHèšå®ïŒ~/.bashrc ãŸã㯠~/.zshrc ã«è¿œå ïŒ
export PATH="$HOME/.brv-cli:$PATH"
# ã€ã³ã¹ããŒã«ç¢ºèª
brv version
Step 2: Karpathy LLM Wikiã®ã€ã³ã¹ããŒã«
# LLM Wikiã®ã¯ããŒã³
git clone https://github.com/karpathy/llm.wiki.git $OPENCLAW_WIKI_PATH
cd $OPENCLAW_WIKI_PATH
# å¿
èŠãªäŸåé¢ä¿ã®ã€ã³ã¹ããŒã«
pip install -r requirements.txt
# ã€ã³ããã¯ã¹äœæ
python build_index.py
# åäœç¢ºèª
python query.py "What is this wiki about?"
Step 3: æåã®ãããžã§ã¯ãäœæ
# å
±æç¥èãããžã§ã¯ãã®äœæ
cd /home/jun/.openclaw/workspace
mkdir assistant-shared
cd assistant-shared
brv init --name "assistant-shared"
# åºæ¬çãªã«ãŒã«ã远å
brv add --title "ããŒã ã®åºæ¬ã«ãŒã«" --content "
## ã¢ã·ã¹ã¿ã³ãããŒã ã®åºæ¬ã«ãŒã«
### ã³ãã¥ãã±ãŒã·ã§ã³
- æç¢ºã§ç°¡æœãªè¡šçŸã䜿çš
- äžæãªç¹ã¯è³ªåãã
- 鲿ã宿çã«å ±å
### åè³ªåºæº
- ã³ãŒãã¯å¯èªæ§ãåªå
- ããã¥ã¡ã³ãã¯åžžã«ææ°ã«ä¿ã€
- ãã¹ãã¯å¿
ãèšè¿°ãã
### ã»ãã¥ãªãã£
- æ©å¯æ
å ±ã¯çµ¶å¯Ÿã«èšé²ããªã
- å€éšAPIããŒã¯ç°å¢å€æ°ã§ç®¡ç
- äžæãªã³ãã³ãã¯å®è¡åã«ç¢ºèª
"
Week 1: 1ã€ã®ãããžã§ã¯ãã§è©Šã
# æ¢åã®ãããžã§ã¯ãã«ByteRoverãå°å
¥
cd /path/to/existing-project
# ByteRoveråæå
brv init --name "existing-project"
# æ¢åã®ããã¥ã¡ã³ããã€ã³ãžã§ã¹ã
brv add --file README.md
brv add --file docs/architecture.md
brv add --file docs/api-spec.md
# ãšãŒãžã§ã³ãã«ç¥èãååŸããã
brv query "ãããžã§ã¯ãã®ã¢ãŒããã¯ãã£"
è©äŸ¡ãã€ã³ã:
Week 2-3: è€æ°ã®ãããžã§ã¯ãã«å±é
# è€æ°ã®ãããžã§ã¯ãã«ByteRoverãå°å
¥
for project in metalclaw aivis-remotion-storyteller workflow-automation; do
cd "/home/jun/.openclaw/workspace/$project"
brv init --name "$project"
# åãããžã§ã¯ãåºæã®ç¥èã远å
done
# å
±æç¥èãããžã§ã¯ããäœæ
cd /home/jun/.openclaw/workspace/assistant-shared
brv add --title "å
šãããžã§ã¯ãå
±éã®ã«ãŒã«" --content "
## å
±ééçºã«ãŒã«
### ããŒãžã§ã³ç®¡ç
- GitãããŒãæ¡çš
- mainãã©ã³ãã¯ä¿è·
- PRã¯å¿
ãã¬ãã¥ãŒãåãã
### ã³ãŒãå質
- ãªã³ã¿ãŒã¯å¿
ãéã
- ãã¹ãã«ãã¬ããžã¯80%以äž
- CI/CDãã€ãã©ã€ã³ãèšå®
### ããã¥ã¡ã³ã
- 倿Žã¯å¿
ãããã¥ã¡ã³ãã«åæ
- READMEã¯åžžã«ææ°ã«ä¿ã€
- API仿§æžã¯èªåçæ
"
Week 4: 宿çãªã¡ã³ããã³ã¹
#!/bin/bash
# weekly-maintenance.sh - 鱿¬¡ã¡ã³ããã³ã¹ã¹ã¯ãªãã
# 1. LLM Wikiã®ç¶æ
確èª
echo "=== LLM Wikiã®ç¶æ
==="
cd $OPENCLAW_WIKI_PATH
git status
git log --oneline -5
# 2. ByteRoverã®ç¶æ
確èª
echo -e "\n=== ByteRoverãããžã§ã¯ãã®ç¶æ
==="
for project in assistant-shared metalclaw aivis-remotion-storyteller; do
echo -e "\n--- $project ---"
cd "/home/jun/.openclaw/workspace/$project" 2>/dev/null || continue
brv vc status
brv query count
done
# 3. ç¥èã®æŽåæ§ãã§ãã¯
echo -e "\n=== ç¥èã®æŽåæ§ãã§ã㯠==="
# éè€ãã§ãã¯ãççŸãã§ãã¯ãªã©ã®ã«ã¹ã¿ã ã¹ã¯ãªãã
# 4. ããã¯ã¢ãã
echo -e "\n=== ããã¯ã¢ããäœæ ==="
backup_dir="/backup/$(date +%Y%m%d)"
mkdir -p "$backup_dir"
cp -r $OPENCLAW_WIKI_PATH "$backup_dir/"
cp -r /home/jun/.openclaw/workspace/*/\.brv "$backup_dir/"
echo "â
ã¡ã³ããã³ã¹å®äºïŒ"
æ¯æ¥ã®ç¿æ £:
# 1. æ: æ°ããç¥èã®ç¢ºèª
brv query --since yesterday
# 2. äœæ¥äž: æ°ããªçºèŠã峿èšé²
brv add --quick "ãã°çºèŠ: XXXã®é¢æ°ã§ã¡ã¢ãªãªãŒã¯"
# 3. å€: 1æ¥ã®æ¯ãè¿ã
brv add --title "æ¥å ± $(date +%Y-%m-%d)" --content "
## æ¬æ¥ã®ææ
- [ ] ã¿ã¹ã¯1
- [ ] ã¿ã¹ã¯2
## æ°ããªçºèŠ
- [çºèŠ1]
- [çºèŠ2]
## ææ¥ã®èšç»
- [ ] ã¿ã¹ã¯3
- [ ] ã¿ã¹ã¯4
"
æ¯é±ã®ç¿æ £:
# 鱿¬¡ã¬ãã¥ãŒ
./weekly-maintenance.sh
# LLM Wikiã®ã€ã³ããã¯ã¹åæ§ç¯
cd $OPENCLAW_WIKI_PATH
python build_index.py
# ByteRoverã®ã¯ãšãªæé©å
brv optimize
æ¯æã®ç¿æ £:
# ææ¬¡ã¬ããŒãäœæ
brv report --month $(date +%Y-%m)
# ç¥èã®ã¢ãŒã«ã€ãå
brv archive --before $(date -d '3 months ago' +%Y-%m-%d)
# LLM Wikiã®ã¯ãªãŒã³ã¢ãã
cd $OPENCLAW_WIKI_PATH
./cleanup.sh
åŸæ¥ã®ã¯ãŒã¯ãããŒ:
ByteRoverå°å ¥åŸ:
ç¯çŽæé: 21åïŒ35%åæžïŒ
åŸæ¥ã®ã¯ãŒã¯ãããŒ:
ByteRoverå°å ¥åŸ:
# auto-curate.py - éèŠãªç¥èãèªåã§ByteRoverã«ãã¥ã¬ãŒã
import re
from byterover import ByteRover
from llm_wiki import Wiki
def is_important_knowledge(note):
"""ç¥èã®éèŠåºŠãå€å®"""
# ããŒã¯ãŒãããŒã¹ã®å€å®
important_keywords = [
"éèŠ", "ã¯ãªãã£ã«ã«", "å¿
é ", "泚æ",
"ãã¹ããã©ã¯ãã£ã¹", "ãã¿ãŒã³", "ã¢ã³ããã¿ãŒã³"
]
if any(keyword in note.content for keyword in important_keywords):
return True
# ãã¿ãŒã³ããŒã¹ã®å€å®
if re.search(r"## (èšèš|ã¢ãŒããã¯ãã£|仿§|ã«ãŒã«)", note.content):
return True
return False
def auto_curate():
"""èªåãã¥ã¬ãŒã·ã§ã³å®è¡"""
wiki = Wiki()
brv = ByteRover(project="assistant-shared")
# æè¿ã®ããŒããååŸ
recent_notes = wiki.get_recent_notes(days=7)
for note in recent_notes:
if is_important_knowledge(note):
# ByteRoverã«è¿œå
brv.add_context(
title=note.title,
content=note.content,
source="llm-wiki",
importance="high"
)
print(f"â
ãã¥ã¬ãŒãå®äº: {note.title}")
if __name__ == "__main__":
auto_curate()
# ByteRover + Git ã§ç¥èãããŒãžã§ã³ç®¡ç
cd /home/jun/.openclaw/workspace/assistant-shared/.brv
# Gitãªããžããªåæå
git init
git add context-tree/
git commit -m "Initial commit"
# ç¥èãæŽæ°ãããã³ããã
brv add --title "æ°ããã«ãŒã«" --content "..."
git add context-tree/
git commit -m "Add: æ°ããã«ãŒã«ã远å "
# 倿Žå±¥æŽã確èª
git log --oneline
# ç¹å®ã®æç¹ã®ç¥èã埩å
git checkout <commit-hash>
# è€æ°ã®ãããžã§ã¯ãããç¥èãæ€çŽ¢
#!/bin/bash
# search-all-projects.sh
QUERY="$1"
PROJECTS=(
"assistant-shared"
"metalclaw"
"aivis-remotion-storyteller"
)
echo "ð ã¯ãã¹ãããžã§ã¯ãæ€çŽ¢: $QUERY"
echo ""
for project in "${PROJECTS[@]}"; do
echo "=== $project ==="
cd "/home/jun/.openclaw/workspace/$project" 2>/dev/null || continue
brv query "$QUERY"
echo ""
done
# visualize-knowledge-graph.py - ç¥èã®é¢é£æ§ãå¯èŠå
import networkx as nx
import matplotlib.pyplot as plt
from byterover import ByteRover
def create_knowledge_graph(project):
"""ç¥èã°ã©ããäœæ"""
brv = ByteRover(project=project)
contexts = brv.get_all_contexts()
G = nx.Graph()
# ããŒãã远å
for ctx in contexts:
G.add_node(ctx.id, label=ctx.title, type=ctx.type)
# ãšããžã远å ïŒé¢é£æ§ã«åºã¥ãïŒ
for i, ctx1 in enumerate(contexts):
for j, ctx2 in enumerate(contexts):
if i < j and are_related(ctx1, ctx2):
G.add_edge(ctx1.id, ctx2.id, weight=calculate_similarity(ctx1, ctx2))
return G
def visualize_graph(G):
"""ã°ã©ããå¯èŠå"""
plt.figure(figsize=(15, 10))
# ã¬ã€ã¢ãŠã
pos = nx.spring_layout(G, k=0.3, iterations=50)
# ããŒãã®æç»
nx.draw_networkx_nodes(G, pos, node_size=1000, node_color='lightblue')
# ãšããžã®æç»
nx.draw_networkx_edges(G, pos, width=1, alpha=0.5)
# ã©ãã«ã®æç»
labels = nx.get_node_attributes(G, 'label')
nx.draw_networkx_labels(G, pos, labels, font_size=8)
plt.title("Knowledge Graph")
plt.axis('off')
plt.tight_layout()
plt.savefig('knowledge-graph.png', dpi=300, bbox_inches='tight')
plt.show()
if __name__ == "__main__":
G = create_knowledge_graph("assistant-shared")
visualize_graph(G)
â æªãäŸ:
# äºçްãªããšãŸã§èšé²
brv add --title "仿¥ã®å€©æ°" --content "æŽãã ã£ã"
brv add --title "ã©ã³ãã¡ãã¥ãŒ" --content "ã«ã¬ãŒ"
â è¯ãäŸ:
# éèŠãªç¥èã ãèšé²
brv add --title "ãšã©ãŒãã³ããªã³ã°ã®ãã¹ããã©ã¯ãã£ã¹" --content "..."
brv add --title "ããã©ãŒãã³ã¹æé©åã®ãã¿ãŒã³" --content "..."
â æªãäŸ:
# å€ãç¥èãæŽæ°ããªã
# 2024å¹Žã®æ
å ±ã®ãŸãŸ...
â è¯ãäŸ:
# 宿çã«æŽæ°
brv update --id 123 --content "ïŒ2025å¹Žã«æŽæ°ïŒ..."
brv archive --id 456 # 䜿ããªããªã£ãç¥èã¯ã¢ãŒã«ã€ã
â æªãäŸ:
# åãç¥èãè€æ°ã®å Žæã«èšé²
brv add --title "ã³ãŒãã£ã³ã°èŠçŽ" --content "..."
brv add --title "éçºã«ãŒã«" --content "..." # å
容ã被ã£ãŠãã
â è¯ãäŸ:
# äžç®æã«éçŽ
brv add --title "ã³ãŒãã£ã³ã°èŠçŽ" --content "
## åœåèŠå
## ãã©ãŒããã
## ã³ã¡ã³ãã®æžãæ¹
...
"
èæ¯:
å°å ¥åŸã®å¹æ:
èæ¯:
å°å ¥åŸã®å¹æ:
èæ¯:
å°å ¥åŸã®å¹æ:
ä»ããå§ããããš:
1é±é以å ã«ããããš:
1ã¶æä»¥å ã«ããããš:
ãã®ã¬ããŒãã¯ãAIãšãŒãžã§ã³ãã®å¯èœæ§ãä¿¡ãããã¹ãŠã®äººã ã«æ§ããŸãã
äœææ¥: 2026幎4æ20æ¥ èè : ãªãªã¹ïŒLilithïŒÃ JUN ããŒãžã§ã³: 1.0
ãã®ã¬ããŒãã¯CC BY 4.0ã©ã€ã»ã³ã¹ã®äžã§æäŸãããŠããŸããèªç±ã«å ±æã»æ¹å€ããŠãã ããã
次ã®ã¹ããã:
ð ãããããªãã®AIãšãŒãžã§ã³ãã«ã2ã€ã®è³ããäžãããïŒ