Commit Graph

15 Commits

  • Python: Add FunctionExecutor and @executor decorator (#589)
    * Add FunctionExecutor and @executor decorator
    
    * refactor
    
    * add single argument function
    
    * fix test
    
    * update example code
    
    * add support for sync funciton
  • Python: Introduce WorkflowAgent (#424)
    * start a new implementation based on .net
    
    * add response handling
    
    * update init files
    
    * remove handling of WorkflowCompletedEvent
    
    * clean up implemenation
    
    * fix bug
    
    * update tests for merge_updates
    
    * WorkflowAgent validation
    
    * add a sample and fix bug
    
    * revert pre-commit config
    
    * revert pre-commit
    
    * add human in the loop sample
    
    * add comment
    
    * fix type issue in Executor
    
    * fix type errors and rename Executor.type to Executor.type_ with field alias
    
    * fix test
    
    ---------
    
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
  • Python: Add support for the MagenticWorkflowBuilder (#496)
    * magentic happy path - wip
    
    * Support workflow high-level magentic builder API. Add tests and samples.
    
    * Add sample docstring
    
    * Addressing PR feedback round 1
    
    * Fix mypy errors
    
    * Callback improvements
    
    * Rename to MagenticBuilder
    
    * Improvements
    
    * Emit function calling deltas
    
    * PR feedback 2
    
    * Clean up sample
  • Python: Tracing for workflows (#480)
    * workflow tracing design doc
    
    * add tracing implementation for workflow
    
    * fix bug caused by double wrapping of sub workflow request
    
    * add unit tests for tracing
    
    * add documentation for workflow tracing
    
    * remove unnecessary file
    
    * update aspire command
    
    * fix tests
    
    * proper serialization of subworkflows and add workflow.definition
    
    * add serialization test
    
    * fix subworkflow serialization
    
    * workflow_id --> id
    
    * update workflow sample to address comments
    
    * update naming; use costant
    
    * use NoOpTracer instead of nullcontext
    
    * use span event instead of attribtutes for status
    
    * fix typing
    
    * add workflow.build span
    
    * rename methods for clarity
    
    * ensure all source trace contexts are propagated in fan in
  • Python: Clean up and formatting (#487)
    * Clean up and formatting
    
    * Fix mypy
    
    * Bug fix
  • Python: Adding support for nested workflows (#460)
    * Adding design documents and data flow descriptions for sub-workflows
    
    * Updating docs.
    
    * Sub-workflow implementation #1. Stuck because of singleton RequestInfoExecutor, going to make a change to remove that restrivtion.
    
    * Removed the singleton restriction on RequestInfoExecutor so enable sub-workflows.
    
    * Scenarios seem to be working.
    
    * Sample improved.
    
    * going to have intern add generic response wrappers.
    
    * Wrapped responses working.
    
    * Non-hardcoded routing is working.
    
    * Sample showing external approved and not approved.
    
    * Cleaning up.
    
    * Updating some samples and user guide.
    
    * Removing old design doc.
    
    * Cleaning up.
    
    * Adding python-package-setup.md back.
    
    * Update python/packages/workflow/agent_framework_workflow/_executor.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Update python/packages/workflow/agent_framework_workflow/_validation.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * Removing prints.
    
    * Fixing lint and type issues.
    
    * Fixing lint and type issues.
    
    * Update python/packages/workflow/agent_framework_workflow/_executor.py
    
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
    
    * Adding type hints to intercepts decorator.
    
    * Removing unused files.
    
    * Fixing issue with sample 5 groupchat with hil.
    
    * Removing redundent samples.
    
    * Updates to ensure no conflicting request interceptors and to support a subflow with multiple requests in a single super step.
    
    * Fixing pypi errors.
    
    * clean up samples
    
    * update samples to make it more clear
    
    * warning for unhandled request info from sub workflow
    
    * add logger info
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
  • Python: Move Workflow, Edge, EdgeGroup and Executor to AFBaseModel (#472)
    * Refactor workflow to introduce EdgeRunner for edge execution.
    
    * Fix edge cases
    
    * Convert Workflow, Edge, EdgeGroup, and Executor into AFBaseModel to support object model serialization
    
    * format
    
    * remove accidental file
    
    * fix typing
    
    * Add type information to EdgeGroup and Executor subclasses
    
    * fix format
    
    * Add condition_name field to Edge
    
    * Add new fields
    
    * remove Optional
    
    * Update
  • Python: Use generic for WorkflowContext and use its type parameters to indicate executor's output types (#444)
    * Use generic for WorkflowContext and use its type parameters to indicate executor's output types
    
    * Update
    
    * Fix type errors and add in-line comments
    
    * fix test
    
    * type
    
    * Fix executor type issues
  • Python: Workflow visualization. (#372)
    * Workflow visualization.
    
    * fix typing
    
    * address comments
    
    * update all samples
    
    * Update fan in edge group visual
    
    * fix quality check
    
    * Update python/samples/getting_started/workflow/step_06_map_reduce.py
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * address comment
    
    * Catch up with changes in workflow; add to_mermaid method
    
    * Update examples
    
    * fix test
    
    * add installation guide to error messages
    
    * Remove visualization for samples except for one.
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
  • Python: Workflow Edge Groups (#393)
    * Introducing edge groups
    
    * Add conditional and partitioning edge groups; next add samples and tests
    
    * Add unit tests
    
    * Add samples
    
    * Address comments 1
    
    * Address comments 2
    
    * Update conditional edge group to take in cases and default
    
    * Minor updates to sample
    
    * Collapsing Paritioning Edge group and Conditional Edge group to source edge group
    
    * Improve sample clarity
    
    * Name consolidation
    
    ---------
    
    Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
  • Python: add better test coverage to individual tests, and all-tests task, gh … (#400)
    * add better test coverage to individual tests, and all-tests task, gh action to surface
    
    * remove cache location
    
    * test version-file
    
    * updated uv setup for consistency
    
    * mypy fix
    
    * update naming
    
    * temporarily removed mypy from workflow
  • Python: introduce workflow checkpointing (#366)
    * Add workflow checkpointing functionality.
    
    * Reintroduce protocol that went missing during merge
    
    * Checkpoint updates
    
    * Fix ordering of checkpointing
    
    * Cleanup
    
    * Cleanup - thanks Copilot
    
    * Cleanup - thanks Copilot
    
    * State reset updates
    
    * State reset updates 2
    
    * Workflow fixes and updates. Addressed PR feedback
    
    * A few updates
  • Python: added AIAnnotation types and extra tests (#374)
    * added AIAnnotation types and extra tests
    
    * fixed typing and such
    
    * use copy
    
    * fix raw representation for add
    
    * handle annotations in add
    
    * clarified concat
    
    * self to first
  • Python: Define Workflow and Executor APIs (#272)
    * Workflow init commit
    
    * Add samples and clean up
    
    * ExecutionContext -> WorkflowContext
    
    * Address comments 1
    
    * Fix mypy
    
    * flatting folder structure, and rename contexts
    
    * Remove add_loop
    
    * Add map reduce sample, remove Activation conditions
    
    * Add AgentExecutor and allow multiple handlers per executor
    
    * Minor improvement
    
    * Add RequestInfoExecutor
    
    * Add unit tests part 1
    
    * Address comments 2
    
    * Pre-commit update
    
    * Add run method and more unit tests
    
    * Add xml docs
    
    * run_stream -> run_streaming
    
    * message_handler -> handler
    
    ---------
    
    Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
    Co-authored-by: Evan Mattson <evan.mattson@microsoft.com>