🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。
Skip to content

第 6 章 进阶功能

学完本章,你将掌握 GA 的五种进阶能力——自主行动、定时任务、反射模式、子代理和 Plan 模式。

🎯 学习目标

  1. 学会让 GA 在你离开时自主执行任务,回来看报告
  2. 掌握定时任务的创建与管理
  3. 理解反射模式的三要素,能让 GA 创建自定义反射脚本
  4. 学会用子代理并行处理独立任务
  5. 知道 Plan 模式何时触发,能审查和跟踪执行计划

6.1 自主行动模式(Autonomous)

睡前给 GA 留一张任务清单,醒来报告就写好了——这就是自主行动模式。

三步上手

第一步:写任务清单

直接用自然语言告诉 GA:

你:帮我在自主行动的 TODO 里添加一条:整理桌面上所有的 PDF 文件,按年份分到不同文件夹。

GA 会把任务写入 temp/TODO.txt。你可以一次添加多条,但 GA 每次只做一条,按顺序从上往下取第一条未完成的。

任务描述写得越具体越好。"整理文件"太模糊,"把桌面 PDF 按年份分到 ~/Documents/PDF/2024、2025 子文件夹"才够清晰。

💡 TODO.md 长什么样
markdown
- [ ] 整理桌面上所有的 PDF 文件,按年份分到不同文件夹
- [ ] 把 Downloads 里超过 30 天的文件归档到 Archive
- [x] 清理 temp 目录下的过期缓存文件

第二步:离开电脑

不需要额外操作。GA 检测到超过 30 分钟没收到你的消息,就会自动从 TODO 取任务开始执行。

第三步:回来看报告

回来后直接问 GA "你刚才做了什么",或者去 temp/autonomous_reports/ 看报告文件。报告自动编号,比如 R3_整理PDF文件.md,包含执行摘要、操作详情和遇到的问题。


权限边界

可以自主做写在报告里等你确认绝对不会做
读取分析文件修改 GA 的记忆和 SOP读取密钥文件
在临时目录写文件、跑脚本安装新软件修改 GA 核心代码
调用已有的 Skill调用外部 API不可逆的危险操作
写执行报告删除非临时文件

遇到拿不准的事,GA 会记在报告里等你回来决定,不会擅自做主


6.2 定时任务(Scheduled Task)

每天早上 8 点自动抓新闻、每周五整理文件——设好时间,GA 准时开干。

创建一个定时任务

直接用自然语言告诉 GA:

帮我创建一个定时任务,每天早上 9 点整理 Downloads 文件夹里的新文件,按类型分类。

GA 会在 sche_tasks/ 目录下生成一个 JSON 配置文件。

💡 配置文件长什么样
json
{
  "schedule": "09:00",
  "repeat": "daily",
  "enabled": true,
  "prompt": "整理 Downloads 文件夹里的新文件,按文件类型分到对应子文件夹里",
  "max_delay_hours": 3
}

每个字段的含义:

字段说明示例
schedule每天几点触发"09:00"
repeat重复方式见下方表格
enabled是否启用true / false
promptGA 要执行的指令你想让它做什么,写清楚
max_delay_hours最大延迟窗口默认 6,超过这个时间没开机就跳过

repeat 支持以下几种写法:

含义
"daily"每天
"weekday"仅工作日(周一到周五)
"weekly"每周
"monthly"每月
"once"只执行一次
"every_3h"每 3 小时
"every_30m"每 30 分钟
"every_2d"每 2 天

max_delay_hours:任务定在 8 点但你 12 点才开机,设了 3 就会跳过,避免执行过时任务。


管理定时任务

问 GA "我的定时任务都什么情况?" 可以查看所有任务状态。

告诉 GA "暂停整理文件那个定时任务" 即可暂停,GA 会把 JSON 里的 enabled 改为 false。恢复、删除同理,直接说就行。


查看执行报告

每次定时任务执行完,报告会自动保存在 sche_tasks/done/ 目录下,文件名格式:

sche_tasks/done/2026-04-17_0900_整理文件.md

报告里包含本次执行了什么、结果如何。你可以直接去这个目录翻看,也可以问 GA "上次定时任务的报告呢?"


注意事项

  1. GA 必须在运行:关了 GA 或电脑关机,定时任务不会执行
  2. 多窗口不冲突:开了多个 GA 窗口也只有一个调度器在工作
  3. 任务 JSON 在 sche_tasks/,报告在 sche_tasks/done/,不要和 temp/autonomous_reports/ 搞混

6.3 反射模式(Reflect)

条件满足时自动触发任务,不用你盯着——这就是反射模式。

反射脚本的三个要素

所有反射脚本放在 reflect/ 文件夹下,每个都是一个 Python 文件。打开最简单的 reflect/autonomous.py

python
# reflect/autonomous.py
INTERVAL = 1800   # 每 1800 秒(30 分钟)检查一次
ONCE = False      # 持续检查,不是只查一次

def check():
    return "[AUTO]🤖 用户已经离开超过30分钟,作为自主智能体,请阅读自动化sop,执行自动任务。"
要素作用示例值
INTERVAL多久检查一次(秒)1800 = 30 分钟,600 = 10 分钟
ONCETrue = 触发一次就停,False = 持续监测False
check()返回字符串 → 触发任务;返回 None → 本轮跳过见上方代码

💡 前面学的自主行动(6.1)和定时任务(6.2)本质上都是反射脚本——autonomous.pyscheduler.py 就在 reflect/ 目录里。你可以用 ls reflect/ 查看所有现有脚本。


创建自定义反射脚本

直接告诉 GA 你想监测什么:

你:帮我写一个反射脚本,每 10 分钟检查桌面有没有新的 .csv 文件,有的话自动做数据分析,然后启动它。

GA 会自动完成创建和启动,你不需要自己写代码或敲命令。脚本支持热更新:修改后不用重启,下次检查时自动加载新版本。


6.4 子代理模式(Subagent)

把任务分给独立的"分身"去做,主 GA 只管分配和收结果。

启动一个子代理

最简单的方式——直接告诉 GA:

你:帮我用子代理分析 ~/Documents/report.pdf,提取关键结论写成摘要。

GA 会自动创建工作目录、写入任务描述、启动子代理。你不需要手动操作。

💡 GA 底层实际执行了什么
bash
python3 agentmain.py --task analyze_report --input "分析 report.pdf,提取关键结论" --bg
参数作用
--task 名称指定任务名,同时决定工作目录 temp/analyze_report/
--input "描述"任务描述(短文本直接传,长文本先写 input.txt
--bg后台运行,主 GA 不用等它做完
--llm_no N指定用第几个模型配置(可选)

查看进度和干预

直接问 GA 就能查看子代理的进度,比如 "分析报告那个子代理做完了吗?"

如果需要干预,也可以告诉 GA,比如 "让分析报告的子代理停下来""告诉那个子代理重点关注第三章"

💡 子代理的工作目录结构

子代理的所有文件都在 temp/{任务名}/ 目录下:

temp/analyze_report/
├── input.txt       # 任务描述(GA 自动生成)
├── output.txt      # 执行日志和结果(看到 [ROUND END] 表示完成)
├── context.json    # 文件路径清单(可选,用于复杂任务)
└── reply.txt       # 你可以写追加指令,子代理会继续执行

GA 通过在工作目录下创建特殊文件来干预子代理:

文件效果
_stop当前轮结束后停止
_keyinfo写入重要信息,子代理下轮会读到
_intervene写入新指令,子代理会调整方向

并行限制

多个子代理可以同时运行,但有一条硬约束:

  • 纯文件处理(分析、生成、转换)→ 放心并行
  • 需要浏览器或键鼠→ 必须排队,一个做完再做下一个
💡 写好子代理输入的技巧

好的输入只需要四样东西:

  1. 做什么:任务目标和产出物
  2. 约束:格式要求、工具限制等
  3. 输入文件:用绝对路径
  4. 输出位置:结果写到哪

不要写执行步骤——子代理和主 GA 一样聪明,会自己规划怎么做。


6.5 Plan 模式(复杂任务规划)

步骤多、有依赖、要并行——GA 会先写计划给你确认,再按步骤逐个执行。

什么时候会触发

你不需要手动开启 Plan 模式。当任务足够复杂时,GA 会自动进入。比如:

你:帮我把项目里所有 JavaScript 文件迁移到 TypeScript,保持功能不变,更新所有 import 路径。

这种任务涉及多文件、有依赖关系,GA 会自动走 Plan 模式。一般来说,满足以下任一条件就会触发:

  • 步骤超过 3 个,且步骤之间有先后依赖
  • 需要同时读取或修改多个文件
  • 包含条件分支("如果 X 就做 Y,否则做 Z")

简单的 1-2 步任务,GA 会直接做,不走 Plan 模式。


Plan 模式的五个阶段

探索 → 规划 → 你确认 → 执行 → 验证

① 探索:GA 派一个子代理去摸底——有什么文件、缺什么条件、有什么风险。子代理只看不改,把结论写成一份探索报告。

② 规划:基于探索报告,GA 写出 plan.md,列出每一步做什么、用什么 SOP、依赖哪一步。

③ 你确认:GA 把计划展示给你,等你说"可以"才开始执行。你可以要求修改步骤、调整顺序、补充遗漏。

④ 执行:逐步执行,每完成一步打 [✓] 标记。搬砖量大的步骤会自动委托给子代理。

⑤ 验证:全部执行完后,GA 启动一个独立的验证子代理来"挑毛病"。验证通过才算完成;失败则自动修复后重新验证。


审查计划时看什么

GA 给你展示 plan.md 后,重点关注三件事:

  1. 有没有遗漏? 你想做的事是否都覆盖了
  2. 顺序对不对? 有依赖关系的步骤是否排在前面
  3. 风险步骤有没有标出? 不可逆操作是否有保护措施

觉得哪里不对,直接告诉 GA 你的想法:

你:第 3 步应该在第 2 步之前,而且缺少备份这一步。

GA 会修改计划后再次让你确认。


跟踪执行进度

执行过程中 GA 不会主动停下来汇报。想知道做到哪了,随时问:

你:现在执行到哪一步了?

GA 会读取 plan.md,告诉你哪些步骤已经打了 [✓]、当前在做哪一步。

📖 plan.md 里的步骤标记含义
标记含义
[ ]待执行
[D]委托给子代理执行(搬砖量大的步骤)
[P]并行执行(同时启动多个子代理)
[?]条件分支(根据结果选路径)
[✓]已完成
[✗]已失败并跳过
[SKIP]因依赖步骤失败而跳过
[FIX]验证失败后追加的修复步骤
[VERIFY]强制验证步骤,不可跳过
📖 验证失败后会怎样

验证子代理会给出三种判定之一:

  • PASS:结果可用,任务完成
  • FAIL:有问题。GA 会把修复步骤追加到 plan.md(标记 [FIX]),只修复失败项,修完后重新验证。最多重复 2 轮,仍然失败则请你介入
  • PARTIAL:部分通过。GA 会告诉你哪些没过,由你决定是否可接受

📂 相关文件速查
内容路径
自主行动
任务清单temp/TODO.txt
执行报告temp/autonomous_reports/R1_xxx.md
行动 SOPmemory/autonomous_operation_sop.md
定时任务
任务配置sche_tasks/任务名.json
执行报告sche_tasks/done/2026-04-17_0900_任务名.md
调度日志sche_tasks/scheduler.log
任务 SOPmemory/scheduled_task_sop.md
反射模式
反射脚本目录reflect/
执行日志temp/reflect_logs/
子代理
任务描述temp/{任务名}/input.txt
执行日志和结果temp/{任务名}/output.txt
干预文件temp/{任务名}/ 下的 _stop / _keyinfo / _intervene
子代理 SOPmemory/subagent.md
Plan 模式
执行计划plan_XXX/plan.md(XXX 为任务英文短名)
探索报告plan_XXX/exploration_findings.md
验证上下文plan_XXX/verify_context.json
Plan 模式 SOPmemory/plan_sop.md

📝 小结

  • 自主行动:写 TODO → 离开 30 分钟 → GA 自动干活 → 回来看报告
  • 定时任务:一句话创建,JSON 配置,sche_tasks/done/ 看报告
  • 反射模式:三要素(INTERVAL + ONCE + check()),自主行动和定时任务的底层机制
  • 子代理:独立"分身"并行处理,纯文件任务可同时跑,浏览器任务要排队
  • Plan 模式:复杂任务自动触发,探索 → 规划 → 确认 → 执行 → 验证

上一章:第 5 章 聊天平台接入