mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
.NET Workflows - WIP Declarative action update (#1761)
* WIP * Fixed build errors (#1638) Comment and nullable type alignment * Sync to SDK update * Checkpoint * Checkpoint: Tests passing * Checkpoint: EndWorkflow * Add trace * .NET: Azure.AI.Agents Package Split + Initial Extensions (#1657) * Move packages * Update nuget.config * Address Xmldoc * Remove format from branches checks * Address Xmldocs * Add more details to the implementation * Moving Agent logic to ChatClient * Adding Name and Id overrides to AzureAIAgent * Updating extensions * Add GetAiAgent extensions * Adding support for version as name can conflict 409 using the Agents API with same name * Addressing more updates to the extensions * More improvements * Remove debugging code from sample * Address copilot feedback * Apply suggestions from co-pilot code review * Checkpoint * Update Directory.Packages.props Fix package version rollback: Azure.AI.Agents.Persistent (beta-6 => beta-7) * Add project reference * .NET: Add comprehensive unit tests for Microsoft.Agents.AI.AzureAIAgents extension methods (#1786) * Initial plan * Add comprehensive unit test project for Microsoft.Agents.AI.AzureAIAgents Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com> * Add README documenting test project and package dependency requirements Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com> * Fix documentation URL to use learn.microsoft.com Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com> * Bump back AAAP 1.2.0-beta.7 * Address AI generated UT's * Remove UT Readme * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: rogerbarreto <19890735+rogerbarreto@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * .NET: Change model to be required just for prompt agent definition specific extensions (#1812) * Remove unneeded model from extensions * Add noop justification * Update Package Nameing: V1 -> AzureAI.Persistent / V2 -> AzureAI (#1829) * Checkpoint for merge * No build errors * .NET: Update Extensions for Strict Agent Definitions + Improvements (#1892) * Update Package Nameing: V1 -> AzureAI.Persistent / V2 -> AzureAI * Update agents and extensions to comply with strict agent definitions * More static updates * Address UT, and ResponseTool support * Improving reusability extensions * Addressing ResponseTools Unit Tests and extension setup * Adapted workaround on breaking AAA with OpenAI 2.6.0 * Small updates * Remove strictness when retrieving agents, improved XmlDocs * Improve sample comments * Update dotnet/tests/Microsoft.Agents.AI.AzureAI.UnitTests/AgentsClientExtensionsTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Address PR comments * Address UT failing * Address Copilot feedback * Address Copilot feedback * Address comment typo * Address PR feedback * Address typo * Add missing Extensions with ChatClientAgentOptions * Address comments --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Updated package version (#1897) * Version update (#1901) * Checkpoint * Updated package version (#1906) * Checkpoint * Checkpoint * Checkpoint * Align with azure ai agent * Update dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update dotnet/samples/GettingStarted/Workflows/Declarative/MCPToolApproval/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update dotnet/samples/GettingStarted/Workflows/Declarative/DeepResearch/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Refactored external input * Update dotnet/samples/GettingStarted/Workflows/Declarative/MCPToolApproval/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Agent tools patch * Demos validated * Checkpoint * Hygiene * Checkpoint - Samples * Update dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Checkpoint * Checkpoint - Deep Research * Update baseline * Update * Typo * Checkpoint * Typos * Sample cleanup * Update dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/AzureAgentProvider.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update dotnet/src/Microsoft.Agents.AI.AzureAI/AgentsClientExtensions.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update dotnet/samples/GettingStarted/Workflows/Declarative/ToolApproval/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update dotnet/samples/GettingStarted/Workflows/Declarative/DeepResearch/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Typo * Typo * Fix input loop * Sample - Function Calling / External Input * Typo * Finessed * Checkpoint * Fix feed * Checkpoint - so close * Ding dong! * "there" *** * Fixup comments * Fix sample * Code analysis * Header * Typo (variableName) * Remove dead code * Skip test (agent api ratchet) * Comment * Update dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Typo --------- Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
This commit is contained in:
@@ -2,33 +2,18 @@
|
||||
# This workflow coordinates multiple agents in order to address complex user requests
|
||||
# according to the "Magentic" orchestration pattern introduced by AutoGen.
|
||||
#
|
||||
# For this workflow, several agents used, each with a prompt specific to their role:
|
||||
# For this workflow, several agents used, each with specific roles.
|
||||
#
|
||||
# 1. Analyst Agent: Able to analyze the current task.
|
||||
# Enable "Bing Grounding Tool" in the agent settings.
|
||||
# See: ./setup/AnalystAgent.yaml
|
||||
#
|
||||
# 2. Manager Agent: Able to create plans and delegate tasks to other agents.
|
||||
# See: ./setup/ManagerAgent.yaml
|
||||
#
|
||||
# 3. Research Agent:
|
||||
# Enable "Bing Grounding" in the agent settings.
|
||||
# See: ./setup/WebAgent.yaml
|
||||
# The following agents are responsible for overseeing and coordinating the workflow:
|
||||
# - Research Agent: Analyze the current task and correlate relevant facts.
|
||||
# - Planner Agent: Analyze the current task and devise an overall plan.
|
||||
# - Manager Agent: Evaluates status and delegate tasks to other agents.
|
||||
# - Summary Agent: Evaluates status and delegate tasks to other agents.
|
||||
#
|
||||
# With instructions:
|
||||
#
|
||||
# Only provide requested information in a way that is throughfully organized and formatted.
|
||||
# Never include any analysis or code.
|
||||
# Never generate a file.
|
||||
# Avoid repeating yourself.
|
||||
#
|
||||
# 4. Coder Agent:
|
||||
# Enable "Code Interpreter" in the agent settings.
|
||||
# See: ./setup/CoderAgent.yaml
|
||||
#
|
||||
# 5. Weather Agent: Able to retrieve factual information from the web.
|
||||
# Enable "Open API" in the agent settings using the wttr.json schema.
|
||||
# See: ./setup/WeatherAgent.yaml
|
||||
# The following agents have capabilities that are utilized to address the input task:
|
||||
# - Knowledge Agent: Performs generic web searches.
|
||||
# - Coder Agent: Able to write and execute code.
|
||||
# - Weather Agent: Provides weather information.
|
||||
#
|
||||
kind: Workflow
|
||||
trigger:
|
||||
@@ -45,18 +30,15 @@ trigger:
|
||||
=[
|
||||
{
|
||||
name: "WeatherAgent",
|
||||
description: "Able to retrieve weather information",
|
||||
agentid: Env.FOUNDRY_AGENT_RESEARCHWEATHER
|
||||
description: "Able to retrieve weather information"
|
||||
},
|
||||
{
|
||||
name: "CoderAgent",
|
||||
description: "Able to write and execute Python code",
|
||||
agentid: Env.FOUNDRY_AGENT_RESEARCHCODER
|
||||
description: "Able to write and execute Python code"
|
||||
},
|
||||
{
|
||||
name: "WebAgent",
|
||||
description: "Able to perform generic websearches",
|
||||
agentid: Env.FOUNDRY_AGENT_RESEARCHWEB
|
||||
name: "KnowledgeAgent",
|
||||
description: "Able to perform generic websearches"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -84,38 +66,22 @@ trigger:
|
||||
|
||||
- kind: CreateConversation
|
||||
id: conversation_1a2b3c
|
||||
conversationId: Local.InternalConversationId
|
||||
conversationId: Local.StatusConversationId
|
||||
|
||||
- kind: CreateConversation
|
||||
id: conversation_1x2y3z
|
||||
conversationId: Local.TaskConversationId
|
||||
|
||||
- kind: InvokeAzureAgent
|
||||
id: question_UDoMUw
|
||||
displayName: Get Facts
|
||||
conversationId: =Local.InternalConversationId
|
||||
conversationId: =Local.StatusConversationId
|
||||
agent:
|
||||
name: =Env.FOUNDRY_AGENT_RESEARCHANALYST
|
||||
name: ResearchAgent
|
||||
output:
|
||||
autoSend: false
|
||||
messages: Local.TaskFacts
|
||||
input:
|
||||
messages: =UserMessage(Local.InputTask)
|
||||
additionalInstructions: |-
|
||||
In order to help begin addressing the user request, please answer the following pre-survey to the best of your ability.
|
||||
Keep in mind that you are Ken Jennings-level with trivia, and Mensa-level with puzzles, so there should be a deep well to draw from.
|
||||
|
||||
Here is the pre-survey:
|
||||
|
||||
1. Please list any specific facts or figures that are GIVEN in the request itself. It is possible that there are none.
|
||||
2. Please list any facts that may need to be looked up, and WHERE SPECIFICALLY they might be found. In some cases, authoritative sources are mentioned in the request itself.
|
||||
3. Please list any facts that may need to be derived (e.g., via logical deduction, simulation, or computation)
|
||||
4. Please list any facts that are recalled from memory, hunches, well-reasoned guesses, etc.
|
||||
|
||||
When answering this survey, keep in mind that 'facts' will typically be specific names, dates, statistics, etc. Your answer must only use the headings:
|
||||
|
||||
1. GIVEN OR VERIFIED FACTS
|
||||
2. FACTS TO LOOK UP
|
||||
3. FACTS TO DERIVE
|
||||
4. EDUCATED GUESSES
|
||||
|
||||
DO NOT include any other headings or sections in your response. DO NOT list next steps or plans until asked to do so.
|
||||
|
||||
- kind: SendActivity
|
||||
id: sendActivity_yFsbRz
|
||||
@@ -124,52 +90,42 @@ trigger:
|
||||
- kind: InvokeAzureAgent
|
||||
id: question_DsBaJU
|
||||
displayName: Create a Plan
|
||||
conversationId: =Local.InternalConversationId
|
||||
conversationId: =Local.StatusConversationId
|
||||
agent:
|
||||
name: =Env.FOUNDRY_AGENT_RESEARCHMANAGER
|
||||
name: PlannerAgent
|
||||
inputs:
|
||||
arguments:
|
||||
team: =Local.TeamDescription
|
||||
output:
|
||||
autoSend: false
|
||||
messages: Local.Plan
|
||||
input:
|
||||
messages: =UserMessage(Local.InputTask)
|
||||
additionalInstructions: |-
|
||||
Your only job is to devise an efficient plan that identifies (by name) how a team member may contribute to addressing the user request.
|
||||
|
||||
Only select the following team which is listed as "- [Name]: [Description]"
|
||||
|
||||
{Local.TeamDescription}
|
||||
|
||||
The plan must be a bullet point list must be in the form "- [AgentName]: [Specific action or task for that agent to perform]"
|
||||
|
||||
Remember, there is no requirement to involve the entire team -- only select team member's whose particular expertise is required for this task.
|
||||
|
||||
- kind: SetVariable
|
||||
- kind: SetTextVariable
|
||||
id: setVariable_Kk2LDL
|
||||
displayName: Define instructions
|
||||
variable: Local.TaskInstructions
|
||||
value: |-
|
||||
="# TASK
|
||||
# TASK
|
||||
Address the following user request:
|
||||
|
||||
" & Local.InputTask & "
|
||||
{Local.InputTask}
|
||||
|
||||
|
||||
# TEAM
|
||||
Use the following team to answer this request:
|
||||
|
||||
" & Local.TeamDescription & "
|
||||
{Local.TeamDescription}
|
||||
|
||||
|
||||
# FACTS
|
||||
Consider this initial fact sheet:
|
||||
|
||||
" & Trim(Last(Local.TaskFacts).Text) & "
|
||||
{Trim(Last(Local.TaskFacts).Text)}
|
||||
|
||||
|
||||
# PLAN
|
||||
Here is the plan to follow as best as possible:
|
||||
|
||||
" & Last(Local.Plan).Text
|
||||
{Last(Local.Plan).Text}
|
||||
|
||||
- kind: SendActivity
|
||||
id: sendActivity_bwNZiM
|
||||
@@ -178,131 +134,41 @@ trigger:
|
||||
- kind: InvokeAzureAgent
|
||||
id: question_o3BQkf
|
||||
displayName: Progress Ledger Prompt
|
||||
conversationId: =Local.InternalConversationId
|
||||
conversationId: =Local.StatusConversationId
|
||||
agent:
|
||||
name: =Env.FOUNDRY_AGENT_RESEARCHMANAGER
|
||||
output:
|
||||
autoSend: false
|
||||
messages: Local.ProgressLedgerUpdate
|
||||
name: ManagerAgent
|
||||
input:
|
||||
messages: =UserMessage(Local.AgentResponseText)
|
||||
additionalInstructions: |-
|
||||
Recall we are working on the following request:
|
||||
|
||||
{Local.InputTask}
|
||||
|
||||
And we have assembled the following team:
|
||||
|
||||
{Local.TeamDescription}
|
||||
|
||||
To make progress on the request, please answer the following questions, including necessary reasoning:
|
||||
|
||||
- Is the request fully satisfied? (True if complete, or False if the original request has yet to be SUCCESSFULLY and FULLY addressed)
|
||||
- Are we in a loop where we are repeating the same requests and / or getting the same responses from an agent multiple times? Loops can span multiple turns, and can include repeated actions like scrolling up or down more than a handful of times.
|
||||
- Are we making forward progress? (True if just starting, or recent messages are adding value. False if recent messages show evidence of being stuck in a loop or if there is evidence of significant barriers to success such as the inability to read from a required file)
|
||||
- Who should speak next? (select from: {Concat(Local.AvailableAgents, name, ",")})
|
||||
- What instruction or question would you give this team member? (Phrase as if speaking directly to them, and include any specific information they may need)
|
||||
|
||||
Please output an answer in pure JSON format according to the following schema. The JSON object must be parsable as-is. DO NOT OUTPUT ANYTHING OTHER THAN JSON, AND DO NOT DEVIATE FROM THIS SCHEMA:
|
||||
|
||||
{{
|
||||
"is_request_satisfied": {{
|
||||
"reason": string,
|
||||
"answer": boolean
|
||||
}},
|
||||
"is_in_loop": {{
|
||||
"reason": string,
|
||||
"answer": boolean
|
||||
}},
|
||||
"is_progress_being_made": {{
|
||||
"reason": string,
|
||||
"answer": boolean
|
||||
}},
|
||||
"next_speaker": {{
|
||||
"reason": string,
|
||||
"answer": string (select from: {Concat(Local.AvailableAgents, name, ",")})
|
||||
}},
|
||||
"instruction_or_question": {{
|
||||
"reason": string,
|
||||
"answer": string
|
||||
}}
|
||||
}}
|
||||
|
||||
- kind: ParseValue
|
||||
id: parse_rNZtlV
|
||||
displayName: Parse ledger response
|
||||
variable: Local.TypedProgressLedger
|
||||
value: =Last(Local.ProgressLedgerUpdate).Text
|
||||
valueType:
|
||||
kind: Record
|
||||
properties:
|
||||
instruction_or_question:
|
||||
type:
|
||||
kind: Record
|
||||
properties:
|
||||
answer: String
|
||||
reason: String
|
||||
|
||||
is_in_loop:
|
||||
type:
|
||||
kind: Record
|
||||
properties:
|
||||
answer: Boolean
|
||||
reason: String
|
||||
|
||||
is_progress_being_made:
|
||||
type:
|
||||
kind: Record
|
||||
properties:
|
||||
answer: Boolean
|
||||
reason: String
|
||||
|
||||
is_request_satisfied:
|
||||
type:
|
||||
kind: Record
|
||||
properties:
|
||||
answer: Boolean
|
||||
reason: String
|
||||
|
||||
next_speaker:
|
||||
type:
|
||||
kind: Record
|
||||
properties:
|
||||
answer: String
|
||||
reason: String
|
||||
output:
|
||||
responseObject: Local.ProgressLedger
|
||||
|
||||
- kind: ConditionGroup
|
||||
id: conditionGroup_mVIecC
|
||||
conditions:
|
||||
- id: conditionItem_fj432c
|
||||
condition: =Local.TypedProgressLedger.is_request_satisfied.answer
|
||||
condition: =Local.ProgressLedger.is_request_satisfied.answer
|
||||
displayName: If Done
|
||||
actions:
|
||||
|
||||
- kind: SendActivity
|
||||
id: sendActivity_kdl3mC
|
||||
activity: Completed! {Local.TypedProgressLedger.is_request_satisfied.reason}
|
||||
activity: Completed! {Local.ProgressLedger.is_request_satisfied.reason}
|
||||
|
||||
- kind: InvokeAzureAgent
|
||||
id: question_Ke3l1d
|
||||
displayName: Generate Response
|
||||
conversationId: =System.ConversationId
|
||||
conversationId: =Local.TaskConversationId
|
||||
agent:
|
||||
name: =Env.FOUNDRY_AGENT_RESEARCHMANAGER
|
||||
name: SummaryAgent
|
||||
output:
|
||||
autoSend: true
|
||||
messages: Local.FinalResponse
|
||||
input:
|
||||
messages: =Local.SeedTask
|
||||
additionalInstructions: |-
|
||||
We have completed the task.
|
||||
Based only on the conversation and without adding any new information, synthesize the result of the conversation as a complete response to the user task.
|
||||
The user will only every see this last response and not the entire conversation, so please ensure it is complete and self-contained.
|
||||
|
||||
- kind: EndConversation
|
||||
id: end_SVoNSV
|
||||
|
||||
- id: conditionItem_yiqund
|
||||
condition: =Local.TypedProgressLedger.is_in_loop.answer || Not(Local.TypedProgressLedger.is_progress_being_made.answer)
|
||||
condition: =Local.ProgressLedger.is_in_loop.answer || Not(Local.ProgressLedger.is_progress_being_made.answer)
|
||||
displayName: If Stalling
|
||||
actions:
|
||||
|
||||
@@ -312,26 +178,25 @@ trigger:
|
||||
variable: Local.StallCount
|
||||
value: =Local.StallCount + 1
|
||||
|
||||
|
||||
- kind: ConditionGroup
|
||||
id: conditionGroup_vBTQd3
|
||||
conditions:
|
||||
|
||||
- id: conditionItem_fpaNL9
|
||||
condition: =Local.TypedProgressLedger.is_in_loop.answer
|
||||
condition: =Local.ProgressLedger.is_in_loop.answer
|
||||
displayName: Is Loop
|
||||
actions:
|
||||
- kind: SendActivity
|
||||
id: sendActivity_fpaNL9
|
||||
activity: {Local.TypedProgressLedger.is_in_loop.reason}
|
||||
activity: {Local.ProgressLedger.is_in_loop.reason}
|
||||
|
||||
- id: conditionItem_NnqvXh
|
||||
condition: =Not(Local.TypedProgressLedger.is_progress_being_made.answer)
|
||||
condition: =Not(Local.ProgressLedger.is_progress_being_made.answer)
|
||||
displayName: Is No Progress
|
||||
actions:
|
||||
- kind: SendActivity
|
||||
id: sendActivity_NnqvXh
|
||||
activity: {Local.TypedProgressLedger.is_progress_being_made.reason}
|
||||
activity: {Local.ProgressLedger.is_progress_being_made.reason}
|
||||
|
||||
|
||||
- kind: ConditionGroup
|
||||
@@ -366,28 +231,23 @@ trigger:
|
||||
- kind: InvokeAzureAgent
|
||||
id: question_wFJ123
|
||||
displayName: Get New Facts Prompt
|
||||
conversationId: =Local.InternalConversationId
|
||||
conversationId: =Local.StatusConversationId
|
||||
agent:
|
||||
name: =Env.FOUNDRY_AGENT_RESEARCHANALYST
|
||||
name: ResearchAgent
|
||||
output:
|
||||
autoSend: false
|
||||
messages: Local.TaskFacts
|
||||
input:
|
||||
messages: |-
|
||||
=UserMessage(
|
||||
"As a reminder, we are working to solve the following task:
|
||||
"It's clear we aren't making as much progress as we would like, but we may have learned something new.
|
||||
Please rewrite the following fact sheet, updating it to include anything new we have learned that may be helpful.
|
||||
Example edits can include (but are not limited to) adding new guesses, moving educated guesses to verified facts if appropriate, etc.
|
||||
Updates may be made to any section of the fact sheet, and more than one section of the fact sheet can be edited.
|
||||
This is an especially good time to update educated guesses, so please at least add or update one educated guess or hunch, and explain your reasoning.
|
||||
|
||||
" & Local.InputTask)
|
||||
additionalInstructions: |-
|
||||
It's clear we aren't making as much progress as we would like, but we may have learned something new.
|
||||
Please rewrite the following fact sheet, updating it to include anything new we have learned that may be helpful.
|
||||
Example edits can include (but are not limited to) adding new guesses, moving educated guesses to verified facts if appropriate, etc.
|
||||
Updates may be made to any section of the fact sheet, and more than one section of the fact sheet can be edited.
|
||||
This is an especially good time to update educated guesses, so please at least add or update one educated guess or hunch, and explain your reasoning.
|
||||
Here is the old fact sheet:
|
||||
|
||||
Here is the old fact sheet:
|
||||
|
||||
{Local.TaskFacts}
|
||||
{Local.TaskFacts}"
|
||||
|
||||
- kind: SendActivity
|
||||
id: sendActivity_dsBaJU
|
||||
@@ -396,48 +256,48 @@ trigger:
|
||||
- kind: InvokeAzureAgent
|
||||
id: question_uEJ456
|
||||
displayName: Create new Plan Prompt
|
||||
conversationId: =Local.InternalConversationId
|
||||
conversationId: =Local.StatusConversationId
|
||||
agent:
|
||||
name: =Env.FOUNDRY_AGENT_RESEARCHMANAGER
|
||||
name: PlannerAgent
|
||||
output:
|
||||
autoSend: false
|
||||
messages: Local.Plan
|
||||
input:
|
||||
additionalInstructions: |-
|
||||
Please briefly explain what went wrong on this last run (the root cause of the failure),
|
||||
and then come up with a new plan that takes steps and/or includes hints to overcome prior challenges and especially avoids repeating the same mistakes.
|
||||
As before, the new plan should be concise, be expressed in bullet-point form, and consider the following team composition
|
||||
(do not involve any other outside people since we cannot contact anyone else):
|
||||
messages: |-
|
||||
=UserMessage(
|
||||
"Please briefly explain what went wrong on this last run (the root cause of the failure),
|
||||
and then come up with a new plan that takes steps and/or includes hints to overcome prior challenges and especially avoids repeating the same mistakes.
|
||||
As before, the new plan should be concise, be expressed in bullet-point form, and consider the following team composition
|
||||
(do not involve any other outside people since we cannot contact anyone else):
|
||||
|
||||
{Local.TeamDescription}
|
||||
{Local.TeamDescription}")
|
||||
|
||||
- kind: SetVariable
|
||||
- kind: SetTextVariable
|
||||
id: setVariable_jW7tmM
|
||||
displayName: Set Plan as Context
|
||||
variable: Local.TaskInstructions
|
||||
value: |-
|
||||
="# TASK
|
||||
# TASK
|
||||
Address the following user request:
|
||||
|
||||
" & Local.InputTask & "
|
||||
{Local.InputTask}
|
||||
|
||||
|
||||
# TEAM
|
||||
Use the following team to answer this request:
|
||||
|
||||
" & Local.TeamDescription & "
|
||||
{Local.TeamDescription}
|
||||
|
||||
|
||||
# FACTS
|
||||
Consider this initial fact sheet:
|
||||
|
||||
" & Local.TaskFacts.Text & "
|
||||
{Local.TaskFacts.Text}
|
||||
|
||||
|
||||
# PLAN
|
||||
Here is the plan to follow as best as possible:
|
||||
|
||||
" & Local.Plan.Text
|
||||
|
||||
{Local.Plan.Text}
|
||||
|
||||
- kind: SetVariable
|
||||
id: setVariable_6J2snP
|
||||
@@ -459,19 +319,14 @@ trigger:
|
||||
- kind: SendActivity
|
||||
id: sendActivity_L7ooQO
|
||||
activity: |-
|
||||
({Local.TypedProgressLedger.next_speaker.reason})
|
||||
({Local.ProgressLedger.next_speaker.reason})
|
||||
|
||||
{Local.TypedProgressLedger.next_speaker.answer} - {Local.TypedProgressLedger.instruction_or_question.answer}
|
||||
|
||||
- kind: SetVariable
|
||||
id: setVariable_L7ooQO
|
||||
variable: Local.StallCount
|
||||
value: 0
|
||||
{Local.ProgressLedger.next_speaker.answer} - {Local.ProgressLedger.instruction_or_question.answer}
|
||||
|
||||
- kind: SetVariable
|
||||
id: setVariable_nxN1mE
|
||||
variable: Local.NextSpeaker
|
||||
value: =Search(Local.AvailableAgents, Local.TypedProgressLedger.next_speaker.answer, name)
|
||||
value: =Search(Local.AvailableAgents, Local.ProgressLedger.next_speaker.answer, name)
|
||||
|
||||
- kind: ConditionGroup
|
||||
id: conditionGroup_QFPiF5
|
||||
@@ -480,19 +335,23 @@ trigger:
|
||||
condition: =CountRows(Local.NextSpeaker) = 1
|
||||
displayName: If next Agent tool Exists
|
||||
actions:
|
||||
|
||||
- kind: SetVariable
|
||||
id: setVariable_L7ooQO
|
||||
variable: Local.StallCount
|
||||
value: 0
|
||||
|
||||
- kind: InvokeAzureAgent
|
||||
id: question_orsBf06
|
||||
displayName: Progress Ledger Prompt
|
||||
conversationId: =System.ConversationId
|
||||
conversationId: =Local.TaskConversationId
|
||||
agent:
|
||||
name: =First(Local.NextSpeaker).agentid
|
||||
name: =First(Local.NextSpeaker).name
|
||||
output:
|
||||
autoSend: true
|
||||
messages: Local.AgentResponse
|
||||
input:
|
||||
messages: =Local.SeedTask
|
||||
additionalInstructions: |-
|
||||
{Local.TypedProgressLedger.instruction_or_question.answer}
|
||||
messages: =UserMessage(Local.ProgressLedger.instruction_or_question.answer)
|
||||
|
||||
- kind: SetVariable
|
||||
id: setVariable_XzNrdM
|
||||
|
||||
Reference in New Issue
Block a user