- 人工智能
- AI Agent
- 大模型
- 深度研究
- 自主智能体
- 深度学习
【免费下载链接】auto-deep-researcher-24x7
🔥 An autonomous AI agent that runs your deep learning experiments 24/7 while you sleep. Zero-cost monitoring, Leader-Worker architecture, constant-size memory.
auto-deep-researcher-24x7 是一个自主 AI Agent,核心能力是让你睡觉时它替你 7×24 小时自动跑深度学习实验。它的灵魂是一个名为 THINK→EXECUTE→REFLECT 的自主循环:想清楚下一步 → 动手做实验 → 复盘并更新记忆,然后无限重复。这篇文章带你完整拆解core/目录下的核心代码,看看这个 24×7 研究循环是如何被写出来、又是如何保证一直稳定转下去的。
一张图看懂:auto-deep-researcher-24x7 的核心架构
在拆代码之前,先看官方架构图,后文每一节都对应图中的一块:
整个项目core/目录只有 7 个 Python 文件,职责非常清晰:
| 文件 | 角色 | 一句话说明 |
|---|---|---|
| core/loop.py | 循环驱动 | THINK→EXECUTE→REFLECT 主循环 |
| core/agents.py | 多智能体调度 | Leader-Worker 架构 + 工具调用循环 |
| core/tools.py | 工具注册 | 每个 Agent 3~5 个最小工具集 |
| core/memory.py | 两层记忆 | 恒定大小的记忆系统 |
| core/monitor.py | 零成本监控 | 训练期间零 LLM 调用 |
| core/execution.py | 执行后端 | local / SSH 双模式 |
| core/obsidian.py | 进度导出 | Obsidian 看板 + 每日笔记 |
主循环拆解:一个 while 循环如何驱动 7×24 研究循环
一切从 core/loop.py 的ResearchLoop.run()开始,它就是一个朴素到极致的无限循环,每个周期做四件事:
- 重置 Leader 上下文(把 LLM 对话成本限制在单个周期内)
- THINK:让 Leader 决策下一步
- EXECUTE + 监控:派 Worker 干活,零成本盯到实验结束
- REFLECT:复盘结果、写回记忆、刷新进度看板
core/loop.py#L91-L98:
while self._running: if self.max_cycles > 0 and self.cycle_count >= self.max_cycles: break self.cycle_count += 1 self._save_cycle_counter() logger.info(f"=== Cycle {self.cycle_count} ===")三个"永远不崩"的设计细节藏在主循环里:
- 异常兜底:整个周期包在
try/except里,任何一步出错都会把错误写进workspace/state.json和记忆日志,然后进入加倍冷却再试,而不是直接挂掉(core/loop.py#L179-L190); - 周期计数器落盘:
cycle_count持久化到.cycle_counter文件,进程重启后接着数,不会"失忆"; - 优雅退出:构造时就注册了
SIGTERM/SIGINT信号处理,kill一下它也会体面收尾(core/loop.py#L83-L85)。
THINK 阶段:上下文只有 4 份材料,Leader 只输出一个 JSON
_think()的实现短到惊人——组装一个上下文字典,扔给 Leader Agent:
core/loop.py#L194-L211:
context = { "brief": self.memory.get_brief(), # 项目目标(冻结摘要) "memory_log": self.memory.get_log(), # 滚动记忆 "cycle": self.cycle_count, "directive": directive, # 人工指令(可选) } result = self.dispatcher.dispatch_leader(task="think", context=context)Leader 的人设在 agents/leader.md 里,它被要求严格输出一个 JSON 决策块:
{ "action": "experiment|wait|report", "agent": "code|idea|writing", "task": "给 worker 的完整任务描述", "hypothesis": "我们期望学到什么", "success_criteria": "如何判断成功" }框架解析这个 JSON 后:action是wait就进入智能冷却(core/loop.py#L119-L130);是experiment就进入 EXECUTE 阶段。
值得注意的一个 token 成本控制:Leader 在一个周期内保留对话历史(THINK 和 REFLECT 可以"接着聊"),但每个周期结束都会清空历史(reset_leader_history())。这就是为什么它跑一周也不会上下文爆炸。
EXECUTE 阶段:Leader-Worker 架构与多轮工具调用循环
EXECUTE 的本质是一次"派工":_execute()读取 Leader 决策里的agent字段,把任务连同工具集交给对应的 Worker(core/loop.py#L213-L226)。三个 Worker 的工具配置写在 core/agents.py#L53-L69:
| Worker | 最大轮次 | 最小工具集 |
|---|---|---|
| idea(想法) | 12 | 论文搜索、读/写文件 |
| code(代码) | 40 | 跑 shell、launch_experiment、读写文件、列目录 |
| writing(写作) | 30 | 写文件、读文件、列目录 |
Worker 如何"动手"?core/agents.py#L204-L232 实现了经典的 ReAct 式多轮工具调用循环:LLM 输出tool_call块 → 框架执行工具 → 结果以tool_result块回传 → 继续下一轮,直到某轮回复里没有tool_call块,视为最终答案。
两个精妙的防御性设计值得点名:
- 围栏免疫:解析前先剥掉代码围栏内容(core/agents.py#L261-L277)——LLM 经常把协议示例写在 ``` 里"讲解",不剥掉就会把示例当真实调用执行;
- 权威 PID:code Worker 调用
launch_experiment后,进程 PID 和日志路径直接从工具返回值取,只保留正则抓取文本作为兜底(core/agents.py#L637-L661),保证监控环节拿到的信息永远可靠。
工具层还有安全边界:所有路径必须工作区相对(防穿越),rm、sudo、dd等危险命令被黑名单拦截(core/tools.py#L197-L209),state.json、MEMORY_LOG.md等状态文件禁止 Worker 覆写(core/tools.py#L32)。
零成本监控:实验跑 10 小时,LLM 费用是 0
这是整个项目最省钱的一招。实验一旦启动,ExperimentMonitor.wait_for_completion()进入轮询(core/monitor.py#L74-L116),默认每15 分钟只做三件"纯系统调用"的事:
while self._is_process_alive(pid): time.sleep(self.poll_interval) # 默认 900 秒 gpu_info = self._safe_gpu_status() log_tail = self._safe_tail_file(log_file, lines=5)进程还活着吗?看一眼日志尾部、查一下 GPU 利用率——全程零 LLM 调用。训练 10 小时的实验,监控成本是 0;只有实验结束、需要分析结果时,才"叫醒" LLM 进入 REFLECT 阶段。配合 config.yaml 里的monitor.zero_llm: true和poll_interval: 900,这就是"24×7 低成本"的真正含义。
实验结束时,框架还会用正则从日志尾部抽取loss、accuracy、FGD、FID等常见指标(core/monitor.py#L142-L167),直接喂给 REFLECT 阶段。
REFLECT 阶段:把结果变回记忆,闭环成立
_reflect()把实验结果、训练日志尾部、指标打包给 Leader 做复盘(core/loop.py#L243-L265):
if result.get("milestone"): self.memory.log_milestone(result["milestone"]) if result.get("decision"): self.memory.log_decision(result["decision"])Leader 按固定框架思考四件事:超过基线了吗?假设被证实了吗?继续迭代还是转向?应该记录什么里程碑?——然后里程碑和决策被写回两层记忆系统。至此,一个完整的 THINK→EXECUTE→REFLECT 闭环跑完,while循环进入下一个周期。
两层恒定记忆:跑 7 天和跑 70 天,上下文一样大
长期运行的 Agent 最容易死在"上下文无限膨胀"上。core/memory.py 的解法是恒定预算:
- Tier 1 — 项目摘要:
PROJECT_BRIEF.md,人写的"项目宪法",Agent 只读不改,上限 3000 字符; - Tier 2 — 滚动日志:
workspace/MEMORY_LOG.md分"关键结果"和"最近决策"两区,自动压缩规则写死在代码里(core/memory.py#L67-L89):关键结果超 1200 字符就丢最旧一条,决策只保留最近 15 条,总日志硬上限 2000 字符。
总预算约5K 字符(约 1500 token)——不管 Agent 跑了多久,每次 THINK 看到的上下文规模都一样,性能不衰减、token 费用不失控。
防呆机制:让循环"一直转"而不是"一直空转"
24×7 不间断,最怕的不是出错,而是出错后的无效循环。代码里埋了三个防呆开关:
| 机制 | 触发条件 | 行为 |
|---|---|---|
| 无进展回退 | 同一计划连续 3 个周期无进展 | 强制wait,等新信号(core/loop.py#L289-L314) |
| 错误退避 | 周期异常 | 冷却时间 ×2,上限 30 分钟(core/loop.py#L355-L359) |
| 智能冷却 | Leader 决策wait | 每 60 秒轮询,实验一完成立即"唤醒"(core/loop.py#L342-L353) |
还有一个很实用的"人类干预口":往workspace/HUMAN_DIRECTIVE.md写一句话,下一个周期就会以最高优先级注入 Leader 的决策上下文,读完自动归档(core/loop.py#L361-L374)——想改方向,不用停进程。
核心文件地图:下一步读什么
| 想了解 | 从哪里读起 |
|---|---|
| 主循环与状态机 | core/loop.py |
| Leader-Worker 调度与工具调用协议 | core/agents.py |
| 四个 Agent 的人设提示词 | agents/leader.md、agents/code_agent.md |
| 记忆压缩策略 | core/memory.py |
| 零成本监控 | core/monitor.py |
| 工具安全边界 | core/tools.py |
| 全部可调参数 | config.yaml |
| 完整架构说明 | docs/architecture.md |
总结:三招换来 7×24 稳定运转
拆开看完你会发现,auto-deep-researcher-24x7 的设计哲学可以浓缩成三招:
- 把 LLM 当"昂贵的决策大脑"——只在 THINK 和 REFLECT 关键时刻唤醒;
- 把"便宜的活"全部交给纯代码——进程存活检查、日志轮询、GPU 查询,监控期间 LLM 费用归零;
- 恒定记忆预算 + 防呆回退——上下文不膨胀、循环不空转。
一个朴素while循环,配上克制的 LLM 使用策略,这就是它敢说自己能 7×24 不间断跑实验的全部底气。
- 人工智能
- AI Agent
- 大模型
- 深度研究
- 自主智能体
- 深度学习
【免费下载链接】auto-deep-researcher-24x7
🔥 An autonomous AI agent that runs your deep learning experiments 24/7 while you sleep. Zero-cost monitoring, Leader-Worker architecture, constant-size memory.
相关推荐
streetmerchant核心功能揭秘:24/7不间断库存检查原理
你是否曾为抢购热门商品而熬夜守候?是否因错过短暂的库存窗口期而懊悔不已?streetmerchant作为一款强大的库存检查工具(The world's easi
网页爬虫电商解决长时运行Agent的上下文爆炸难题:auto-deep-researcher-24x7双层恒定大小记忆设计详解
解决长时运行Agent的上下文爆炸难题:auto deep researcher 24x7双层恒定大小记忆设计详解 auto deep researcher 2
人工智能AI Agent大模型深度研究自主智能体深度学习Human-in-the-Loop实战:3种方法随时接管auto-deep-researcher-24x7的实验方向
Human in the Loop实战:3种方法随时接管auto deep researcher 24x7的实验方向 auto deep researcher
人工智能AI Agent大模型深度研究自主智能体深度学习
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考