Skip to content

Draft: chore: add autograph sequential graph with planning

Mikołaj Wawrzyniak requested to merge mwaw/add_sequential_graph into main

What does this merge request do and why?

Autograph is an in house framework built on top of LangGraph. It is designed to provide high level interface that enable flexible multi agent workflow composition.

This MR adds first multi agent graph scaffold method. The graph follows structure outlined in following chart for each following agent a subgraph of _planner, agent, _call_tool and _plan_supervisor are being added. In addition between each of the subgraph there is _handover node being added.

%%{init: {'flowchart': {'curve': 'linear'}}}%%
graph TD;
	__start__[__start__]:::startclass;
	__end__[__end__]:::endclass;
	Agent_X([Agent X]):::otherclass;
	Agent_X_planner([Agent X_planner]):::otherclass;
	Agent_X_call_tool([Agent X_call_tool]):::otherclass;
	Agent_X_plan_supervisor([Agent X_plan_supervisor]):::otherclass;
	Agent_Y([Agent Y]):::otherclass;
	Agent_Y_planner([Agent Y_planner]):::otherclass;
	Agent_Y_call_tool([Agent Y_call_tool]):::otherclass;
	Agent_Y_plan_supervisor([Agent Y_plan_supervisor]):::otherclass;
	Agent_X_handover([Agent X_handover]):::otherclass;
	Agent_X_call_tool --> Agent_X_plan_supervisor;
	Agent_X_handover --> Agent_Y_planner;
	Agent_X_plan_supervisor --> Agent_X;
	Agent_X_planner --> Agent_X;
	Agent_Y_call_tool --> Agent_Y_plan_supervisor;
	Agent_Y_plan_supervisor --> Agent_Y;
	Agent_Y_planner --> Agent_Y;
	__start__ --> Agent_X_planner;
	Agent_X -. call_tool .-> Agent_X_call_tool;
	Agent_X -. supervisor .-> Agent_X_plan_supervisor;
	Agent_X -. next .-> Agent_X_handover;
	Agent_Y -. call_tool .-> Agent_Y_call_tool;
	Agent_Y -. supervisor .-> Agent_Y_plan_supervisor;
	Agent_Y -. next .-> __end__;
	classDef startclass fill:#ffdfba;
	classDef endclass fill:#baffc9;
	classDef otherclass fill:#fad7de;

How to set up and validate locally

Use this notebook scratchpad.ipynb

Merge request checklist

  • Tests added for new functionality. If not, please raise an issue to follow up.
  • Documentation added/updated, if needed.
Edited by Mikołaj Wawrzyniak

Merge request reports