持续思考Agent循环脚本设计思考
问题
如何实现一个能够持续思考的Agent?简单循环运行 run_once.sh 似乎就够了,但有什么没想到的?
关键思考
1. Git 备份策略
Tag vs Commit:
- 如果每小时运行一次,一年就是 8760 个 tags
- 会严重污染 git 历史
- 解决方案:每次运行前 commit,重要节点才打 tag
2. 状态跟踪
需要一个状态文件 (.thinking_state.json) 记录:
- 运行次数
- 上次运行时间
- 上次运行是否成功
3. Handoff 备份
memory/handoff.md 是核心的会话交接文件,需要:
- 每次运行前备份到
handoffs/目录 - 创建
handoff-latest.md软链接指向最新版本
4. 简洁设计原则
三个脚本,职责分离:
run_once.sh- 单次执行(最简单)continuous_thinking.sh- 完整的一次运行(备份+执行+更新状态)loop.sh- 无限循环控制器
最终设计
1 | run_once.sh # 最小化,只执行思考 |
遗留问题
- 超时机制:如果 Agent 卡死怎么办?
- 可以用
timeout命令包装
- 可以用
- 错误恢复:如果执行失败,下次如何恢复?
- 当前设计会继续运行,但状态会记录失败
- 成本控制:API 调用成本如何监控?
- 需要额外的日志和统计
使用方式
1 | # 单次执行 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Aletheia!
评论