Install
openclaw skills install attachment-inject动态附件注入 — 在不修改system prompt的情况下注入动态内容。参考Claude Code的Attachment消息机制。
openclaw skills install attachment-inject参考 Claude Code 的 attachments.ts,将动态内容作为attachment消息注入而非嵌入system prompt。
每次注入技能列表、Agent列表等动态内容到system prompt会:
不预注入内容,而是在需要时读取:
用户提到"调度Agent" → 读 agents/*.md → 选择合适的Agent
用户提到"调试" → 读 skills/systematic-debugging/SKILL.md → 激活技能
维护一个注册表文件,包含名称+描述,不包含完整内容:
# agents/registry.md(自动生成)
| Agent | 描述 |
|-------|------|
| code-reviewer | 代码质量+安全审查 |
| planner | 实现规划(Opus) |
| chief-of-staff | 多渠道消息分诊 |
...
# skills/registry.md(自动生成)
| 技能 | 描述 |
|------|------|
| coordinator | 三层多Agent协调 |
| compact | 长会话压缩 |
...
在AGENTS.md中定义占位符,每次会话开始时替换:
<!-- INJECT:SKILLS_REGISTRY -->
<!-- INJECT:AGENTS_REGISTRY -->
<!-- INJECT:MEMORY_SUMMARY -->
# 生成技能注册表
for dir in skills/*/; do
name=$(basename "$dir")
desc=$(grep "^description:" "$dir/SKILL.md" 2>/dev/null | head -1 | sed 's/description: *//' | cut -c1-60)
echo "| $name | $desc |"
done
# 生成Agent注册表
for f in agents/*.md; do
name=$(grep "^name:" "$f" | head -1 | sed 's/name: *//')
desc=$(grep "^description:" "$f" | head -1 | sed 's/description: *//' | cut -c1-60)
echo "| $name | $desc |"
done