bee-agent-framework icon indicating copy to clipboard operation
bee-agent-framework copied to clipboard

feat: experimental workflows prototype

Open michael-desmond opened this issue 9 months ago • 2 comments

Which issue(s) does this pull-request address?

The PR contains a prototype for more flexible workflows. Its supports the standard features of our previous implementation such as shared state, and basic flows but adds:

  1. Workflow is defined in a single class
  2. Each step in a method
  3. Support static fan out and in
  4. Supports dynamic fan out and in

The major advantage of this approach is that you can have a step wait on multiple other steps to run, and you can have multiple steps that wait on a single step. The implementation also supports dynamic fan out/in.

Checklist

General

Code quality checks

  • [x] Linting passes: Python poe lint or poe lint --fix / TypeScript yarn lint or yarn lint:fix
  • [x] Formatting is applied: Python poe format or poe format --fix / TypeScript: yarn format or yarn format:fix
  • [x] Static type checks pass: Python poe type-check

Testing

  • [x] Unit tests pass: Python poe test --type unit / TypeScript yarn test:unit
  • [x] E2E tests pass: Python poe test --type e2e / TypeScript: yarn test:e2e
  • [x] Integration tests pass: Python poe test --type integration
  • [ ] Tests are included (for bug fixes or new features)

Documentation

  • [ ] Documentation is updated
  • [ ] Embedme embeds code examples in docs. To update after edits, run: Python poe docs --type build

michael-desmond avatar May 08 '25 21:05 michael-desmond

@Tomas2D @jenna-winkler if you get a chance please take a look. This is an initial proposal for a new approach to workflows. With the understanding that there is likely down stream effects that I have not fully taken into account.

michael-desmond avatar May 08 '25 21:05 michael-desmond

Discussed internally. We will work on a more appealing interface.

Tomas2D avatar May 17 '25 10:05 Tomas2D

Stale. Closing.

Tomas2D avatar Aug 01 '25 13:08 Tomas2D