- 
                Notifications
    
You must be signed in to change notification settings  - Fork 77
 
Enable native Dapr workflows with LLM and Agent decorators #232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
amazingggggggg - thank you for your efforts on this! Few comments for my own understanding/clarity please 🙏 🙌
| 
           A few thoughts I wrote down while reviewing: 
 tagging @bibryam too, do you have any thoughts on how this might look when applied to orchestrators? We’re seeing more users on Discord starting to use them...  | 
    
          
 Yes! I like the idea of supporting prompts from files 💯. I like that idea. Regarding the  I will push a PR on this hopefully tomorrow. I am almost done. After that PR, I will have to figure out the "Observability" challenge. Moving away from a   | 
    
          
 There will be efforts in dapr upstream in the sdks to bring in telemetry tracing to the clients. That is currently missing and something that dapr agents will benefit from to where we can just propagate the trace context instead of having our wrapper classes. This will also give us the full story in our workflow activities where right now you do not see things like the underlying activity might call something like a state store so we should see a state trace within the activity. IMO tracing will not be the best until we get that from the sdk side of things, so don't spend tooooooo much time there as it does not have to be perfect, and will have to be updated when sdks have the trace context for us. I also say that because I have also spent a fair amount of time on the tracing, so I know it gets quite complex there 🙃 furthermore, imo, if tracing gets broken on the "legacy" bits, then I don't think we really need to worry about that... just call it out in the PR pls bc before we cut any release I go through and check all the quickstarts (manually until I automate it) so I do confirm things on the tracing side are g2g too. I also really appreciate the PRs separated out some to help with reviewing 🤗  | 
    
| 
           @Cyb3rWard0g this is a fantastic PR, thank you!  | 
    
| 
           any chance we can add a few tests for the decorators too pls? 🙏  | 
    
…-activities Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
          
 I will add tests when we finish the latest big PR since that will be using the new ways to create DurableAgents and Orchestrators :)  | 
    
Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
          
 Actually I read that wrong. I thought I read orchestrators. Decorators tests are in ;)  | 
    
| 
           @sicoyle ready for last review before merge.  | 
    
Signed-off-by: Roberto Rodriguez <[email protected]>
Signed-off-by: Roberto Rodriguez <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
send itttttt 🚀 nice job!
Overview
This PR extends Dapr’s native workflow model to support LLM-powered and agent-based activity execution through new unified decorators. Developers can now define, register, and run workflows using standard Dapr patterns (
@runtime.workflow,@runtime.activity) while seamlessly integrating reasoning and automation via@llm_activityand@agent_activity. This approach preserves full control over the workflow runtime while enabling declarative, composable AI-driven orchestration.Key Changes
@llm_activityfor direct LLM-powered activity execution@agent_activityfor integrating autonomous agents in workflowsconvert_result()to handle bothBaseMessageand agent message typesExamples
LLM-based Single Task Workflow
LLM-based Parallel Tasks Workflow
Agent-Based Workflow