microsoft / microsoft/agent-framework

Python: [Feature]: Using shared states in AgentExecutor

Open
#5,721 0 comments 0 reactions 0 assignees View on GitHub
.NET python workflows
Dominant language
Python
Stars
13.6k
Forks
2.3k
Avg merge
2d 45m
Merged PRs (30d)
358

Description

### Description

Currently, the agent executor is limited in a way that it can only receive messages from connected executors and doesn't consider the shared states written by earlier executors.

Here is the scenario we are trying to support:

An executor A that is not directly connected to an agent executor creates artifacts that the agent should consider. Before the workflow gets to the agent executor, it has to run other executors, for example auditing the artifacts or storing them externally, thus developers cannot directly connect executor A to the agent executor.

Executor A could store the artifacts in the shared states, and the agent executor can access the shared states. However, the agent executor doesn't consider the shared states and extract contents from there for the agent invocation.

This essentially boils down to two steps:
1. Data sharing between disconnected executors via shared states. Options:
- Key based
- ?
3. Consuming the data in the shared states (if there are any) in the agent executor. Options:
- Context provider that automatically extract information from the shared states.
- ?

### Language/SDK

Both

Contributor guide

Open the contributing guide

Research direction

Start by tracing AgentExecutor and the shared-state handling in the workflow implementation. Determine how disconnected executors would publish artifacts and how an agent invocation could consume them, comparing the key-based and context-provider options described here. Done means the design is settled and shared-state artifacts are available to the agent executor.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
ai, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.