microsoft / microsoft/agent-framework
Python: [Feature]: Using shared states in AgentExecutor
- 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
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