Skip to content

.Net: Planner Stabilization + Enhancement requests #2256

Closed

Description

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
From Chat Copilot:
Use one of the test tenants in our team Loop (Apps & Services > Test Tenants)
I tested with no safeguards or retries currently available in the app

ActionPlanner

  1. ActionPlanner creates plan when not needed:

    1. Enable GitHub plugin
    2. Ask "Hey, what are you able to help me with?"
    3. Observe:
      image
  2. ActionPlanner doesn't return plan in valid format. It returns plan in natural language:

    1. Enable GitHub Plugin
    2. Ask it to List Open Pull requests
    3. Observe error:

Unable to generate bot response. Details: Error: 400: => Invalid plan: Failed to extract valid json string from planner result: 'Based on the provided list of functions, the appropriate function to achieve the user's goal is GitHubPlugin.PullsList. The function takes the following parameters: - owner: The account owner of the repository. The name is not case sensitive. (required). - repo: The name of the repository. The name is not case sensitive. (required). - state: Either open, closed, or all to filter by state. (default value: open) - head: Filter pulls by head user or head organization and branch name in the format of user:ref-name or organization:ref-name. - base: Filter pulls by base branch name. - sort: What to sort results by. popularity will sort by the number of comments. long-running will sort by date created and will limit the results to pull requests that have been open for more than a month and have had activity within the past month. (defau...
image

  1. Hallucinating functions
    ActionPlanner: KernelException
    image

SequentialPlanner

Used both gpt-35-turbo and gpt-4 and both yielded the missing function errors

Planning Exception: Missing Function (hallucination)

  1. App Settings:
"Planner": {
    "Type": "Sequential",
    // Set RelevancyThreshold to a value >= 0.50 if using the SequentialPlanner with gpt-3.5-turbo. Ignored when Planner:Type is "Action"
    "RelevancyThreshold": "0.80",
    // Whether to allow missing functions in the plan on creation then sanitize output. Functions are considered missing if they're not available in the planner's kernel's context.
    // If set to true, the plan will be created with missing functions as no-op steps that are filtered from the final proposed plan.
    // If this is set to false, the plan creation will fail if any functions are missing.
    "SkipOnMissingFunctionsError": "false",
    // Whether to retry plan creation if LLM returned response with invalid plan.
    "AllowRetriesOnInvalidPlan": "true"
  },
  1. Enable Graph, Klarna, and GitHub plugins
  2. Ask: Can you email me a list of cameras I can buy with prices and details? I like Canon! and I'd prefer to spend less than $100.
    image

Microsoft.SemanticKernel.IKernel[0] Something went wrong while executing the native function. Function: b__0. Error: Create plan error: Unable to create plan Microsoft.SemanticKernel.Planning.PlanningException: Create plan error: Unable to create plan
---> Microsoft.SemanticKernel.Planning.PlanningException: Invalid plan: Failed to find function 'text.ExtractRegexMatch' in skill 'text'.at Microsoft.SemanticKernel.Planning.Sequential.SequentialPlanParser.ToPlanFromXml(String xmlString, String goal, Func`3 getSkillFunction, Boolean allowMissingFunctions) at Microsoft.SemanticKernel.Planning.SequentialPlanner.CreatePlanAsync(String goal, CancellationToken cancellationToken) --- End of inner exception stack trace ---

Known Issues even with stabilization

Other errors using SequentialPlanner with gpt-35-turbo and a relevancythreshold of .80

Missing URL

Confusing error I get with GitHub plugin sometimes, where it seems like it doesn't have the right server-url? But this error is typically transient if I prompt another plan and execute it.

Function invoke error: Error occurred while running plan step: Invalid URI: The format of the URI could not be determined.

Can't generate plan even though there are relevant functions

Unable to generate bot response. Details: Error: 400: Bad Request => Create plan error: Not possible to create plan for goal with available functions. Goal:Given the following context, accomplish the user intent. Context: INPUT: Do any PRs need my attention? chatId: 22166401-0394-4722-8be1-ea59e69bb884 knowledgeCutoff: Saturday, January 1, 2022 owner: microsoft tokenLimit: 842 messageType: 0 repo: semantic-kernel audienceExtractionTokenUsage: 174 userId: e0fab1ff-28d9-4371-aa3d-64ce0372994e.72f988bf-86f1-41af-91ab-2d7cd011db47 audience: List of participants: Teresa Hoang userName: Teresa Hoang userIntentExtractionTokenUsage: 410 User Intent:User intent: The user is asking if there are any pull requests that require their attention. Functions: GitHubPlugin.MetaRoot: description: Get Hypermedia links to resources accessible in GitHub's REST API inputs: - server_url: server-url (default value: https://api.github.com/) GitHubPlugin.PullsGet: description: Draft pull requests are...

Creates a plan even if one isn't needed to fulfil the user input,

i.e., I asked it to help me plan a trip to Hawaii and it returned a plan with GitHub and Klarna steps just because I had those plugins enabled.
image

Requests

1. Return completion token usage and step status

Tasks

  1. bug planner sk team issue
    RogerBarreto
  2. enhancement needs discussion planner sk team issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Labels

.NETIssue or Pull requests regarding .NET codeplannerAnything related to planner or planspythonPull requests for the Python Semantic Kernelsk team issueA tag to denote issues that where created by the Semantic Kernel team (i.e., not the community)

Type

No type

Projects

  • Status

    Sprint: Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions