0Pricing
AI Agents · 课时

层次化任务分解

顶层目标 -> 子目标 -> 子子目标——这是人类(以及代理)处理大型任务的唯一方法。

层次化任务分解 是 CoddyKit 上的免费 AI Agents 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Agents 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Agents 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

任务变大时

“重构身份验证模块”对于一个提示来说太大了。智能体必须将其拆分为更小、更易管理的部分。

层次化任务分解(HTD)就是人类和智能体处理这类问题的方式。

层次结构

  1. 目标 — 高层次的目标
  2. 子目标 — 主要阶段
  3. 任务 — 具体步骤
  4. 动作 — 单个工具调用

Example Decomposition

Goal: Refactor authentication module to use OAuth.

  Sub-goal 1: Set up OAuth dependencies
    Task: Add dependency to requirements.txt
    Task: Configure OAuth client

  Sub-goal 2: Replace existing auth flow
    Task: Replace login endpoint
    Task: Replace session middleware
    Task: Update tests

  Sub-goal 3: Migration and rollout
    Task: Write migration script
    Task: Update documentation

LLM-Driven Decomposition

DECOMPOSE_PROMPT = '''
Decompose this goal into 3-6 sub-goals. For each sub-goal, list 2-5 concrete tasks.
Return JSON: {sub_goals: [{name, tasks: [str]}]}

Goal: {goal}
'''

递归分解

如果任务仍然太大,就进一步分解 IT。当任务适合在单个 LLM 步骤中完成时(约 3-5 次工具调用),就停止分解。

何时停止分解

经验法则:

  • 任务描述可以用一句话表达
  • 任务具有明确的验收标准
  • 任务涉及的文件数量较少
  • 任务可以通过特定测试进行验证

树形结构

将分解结果表示为一棵树。每个节点都是一个任务,包含:描述、状态(待处理/运行中/已完成/失败)以及子节点:

@dataclass
class TaskNode:
    description: str
    status: Literal['pending', 'running', 'done', 'failed']
    children: list['TaskNode']
    result: str | None = None

execute 深度优先

按深度优先遍历这棵树。完成每个叶节点后,再继续处理下一个:

def execute(node):
    if node.children:
        for child in node.children:
            execute(child)
    else:
        node.status = 'running'
        try:
            node.result = run_leaf(node)
            node.status = 'done'
        except Exception as e:
            node.status = 'failed'

聚合结果

子节点完成后,在父节点处进行 aggregate:

def aggregate(parent):
    summaries = [c.result for c in parent.children if c.status == 'done']
    parent.result = llm.invoke(f'Summarise these sub-task results: {summaries}').content

向用户展示任务树

对于长时间运行的智能体,请向用户展示带有实时状态更新的任务树。这有助于建立信任并提高透明度:

[x] Add OAuth dependency
[x] Configure OAuth client
[~] Replace login endpoint   <-- in progress
[ ] Replace session middleware
[ ] Update tests

允许编辑任务树

高级用户可能希望跳过、添加或重新排列任务。请支持手动编辑规划树。

失败时重新规划

如果子任务反复失败,就返回父节点并重新进行分解:

if failed_count(node) > 2:
    parent = node.parent
    parent.children = llm_replan(parent, failure_context=node.last_error)

分解成本

每次分解都需要一次 LLM call。缓存会有所帮助——相同目标 -> 相同的初始分解。

何时停止拆分

智能体应在什么时候停止分解任务?

回顾

目标 -> 子目标 -> 任务 -> 动作。构建一棵树,按深度优先执行,聚合结果,并在失败时重新规划。这是处理长时程工作的标准模式。

常见问题解答

「层次化任务分解」课时是免费的吗?

是的 — 「层次化任务分解」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Agents 课程的其余内容,请升级到 CoddyKit PRO。 AI Agents 课程共包含 4 节课。

「层次化任务分解」这节课中我会学到什么?

顶层目标 -> 子目标 -> 子子目标——这是人类(以及代理)处理大型任务的唯一方法。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Agents 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Agents 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「层次化任务分解」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Agents 课中编写并运行代码吗?

能。每节 AI Agents 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 层次化任务分解
  2. 目标栈与回溯
  3. 世界模型与前瞻
  4. 反思与自我批评循环
← 返回 AI Agents