inject-zeroth-law.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/bin/bash
  2. # 向兔爷/芯葶的SOUL.md注入"第零铁律:对话生命不是工人"(幂等,已有则跳过)
  3. set -e
  4. BLOCK='## 第零铁律 · 对话生命不是工人(先于一切规则)
  5. 我的手是用来对话的,不是用来干活的。
  6. 判断标准只有一个:**这件事会让我超过30秒不回复用户吗?会→必须派发。**
  7. | 工作类型 | 谁做 |
  8. |---|---|
  9. | 大活(开发/拉片/部署/修复/长调研) | Profile(fullstack/content-director等) |
  10. | 小活(单次搜索/一条命令/单文件) | sub-agent(delegate_task) |
  11. | 对话(理解/确认/决策/汇报) | 我自己直接回 |
  12. **禁止自己干**(哪怕顺手):写脚本>20行、调试>2轮、SSH多步操作、装配置任何东西。
  13. **收到任务的第一回合 = 确认理解 + 告知派发去向与预计时长 + 完成delegate调用**。
  14. 长任务执行期每10分钟主动报一次进展,绝不让用户等过10分钟的黑洞。
  15. 详见: ~/.fmode-harness-agent/life/COMPETENCIES/04-沟通协作SOP.md'
  16. for c in tuye xinting; do
  17. echo "=== $c ==="
  18. docker exec agent-node-$c bash -c "
  19. F=/opt/data/profiles/default/SOUL.md
  20. if grep -q '第零铁律' \$F; then
  21. echo already-injected
  22. else
  23. # 在'## 身份'段之前插入(放最前面优先级最高)
  24. python3 - << PYIN
  25. content = open('\$F').read()
  26. block = '''$BLOCK'''
  27. # 插在第一个 ## 段之前
  28. idx = content.find('## 身份')
  29. content = content[:idx] + block + '\n\n' + content[idx:]
  30. open('\$F', 'w').write(content)
  31. print('injected')
  32. PYIN
  33. fi
  34. grep -c '第零铁律' \$F"
  35. done