Planner

Purpose

Strategic, multi-resource, order-level task decomposition and goal reasoning. The Planner operates at the platform/cloud level with a global view of all resources. It answers: “given this goal, what tasks need to happen and in what order?”

Responsibilities

  • Decompose high-level goals into ordered task sequences

  • Reason about task dependencies and parallelism

  • Consider resource capabilities and constraints

  • Consult Policy Service for planning preferences

  • Consult Marie for spatial context (routes, proximity)

  • Trigger replanning when state diverges from plan

Key Entities

Entity

Description

Goal

A high-level objective (e.g., “fulfill order #1234”)

Plan

An ordered set of tasks that achieves a goal

Task

A single unit of work (e.g., “pick item A from rack B”)

Dependency

An ordering constraint between tasks

Planning vs Edge Planning

Aspect

Platform Planner (this service)

Edge Planner (on device)

Location

Cloud

Local (robot/PDA)

Scope

Global, multi-resource

Single-agent, local

Nature

Strategic

Tactical, reactive

Example

“Robot 1 picks from A, Robot 2 picks from B”

“Obstacle ahead, reroute left”

These are fundamentally different planners. They do not share logic. The Execution Contract bridges them.

API Surface

Operation

Description

POST /plans

Create a plan from a goal

GET /plans/{id}

Get plan details and status

POST /plans/{id}/replan

Trigger replanning

GET /plans/{id}/tasks

List tasks in a plan

Dependencies

Service

Relationship

Marie

Spatial queries for route optimization and resource proximity

Policy Service

Planning preferences and constraints

DeviceAdmin

Resource capabilities

Consumed By

Consumer

Usage

Scheduler

Receives task list for resource assignment

Applications

Submit goals, monitor plan status