Skip to content
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

.Net: How to output error messages to [OBSERVATION] in native functions #3224

Closed
hyam1567 opened this issue Oct 18, 2023 · 2 comments · Fixed by #4455
Closed

.Net: How to output error messages to [OBSERVATION] in native functions #3224

hyam1567 opened this issue Oct 18, 2023 · 2 comments · Fixed by #4455
Assignees
Labels
bug Something isn't working .NET Issue or Pull requests regarding .NET code planner Anything related to planner or plans

Comments

@hyam1567
Copy link

My native function raises an exception with a message when an error occurs.
throw new Exception( "Argument must not be a negative number" );

However, this error message is not output to [OBSERVATION].
In the log, the exception message always looks like this.
2023-xx-xx xx:xx:xx.xxxx|INFO|Microsoft.SemanticKernel.Planners.StepwisePlanner|Observation: Error invoking action MyPlugin.Sqrt : Exception has been thrown by the target of an invocation.

I need a way to output error messages to [OBSERVATION].

@shawncal shawncal added .NET Issue or Pull requests regarding .NET code triage labels Oct 18, 2023
@evchaki evchaki added bug Something isn't working planner Anything related to planner or plans labels Oct 19, 2023
@matthewbolanos matthewbolanos assigned gitri-ms and unassigned alliscode Nov 27, 2023
@matthewbolanos
Copy link
Member

@gitri-ms, do you know if our new planner is able to handle exceptions like this?

@gitri-ms
Copy link
Contributor

@matthewbolanos The FunctionCallingStepwisePlanner should be able to catch exceptions and retry. I'm not sure if it works for all unexpected exceptions though, but it works for a few common ones, such as the model returning invalid function info.

@gitri-ms gitri-ms moved this to Sprint: In Progress in Semantic Kernel Jan 2, 2024
@gitri-ms gitri-ms moved this from Sprint: In Progress to Sprint: In Review in Semantic Kernel Jan 2, 2024
github-merge-queue bot pushed a commit that referenced this issue Jan 3, 2024
…sages to chat history (#4455)

### Motivation and Context

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->
Resolves #3224. Exceptions thrown by invoked functions are currently not
being caught by the planner.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
This change catches any non-critical exceptions from function
invocation, adds the error message into chat history, and lets the
planner retry.

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [x] The code builds clean without any errors or warnings
- [x] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [x] All unit tests pass, and I have added new tests where possible
- [x] I didn't break anyone 😄
@github-project-automation github-project-automation bot moved this from Sprint: In Review to Sprint: Done in Semantic Kernel Jan 3, 2024
Bryan-Roe pushed a commit to Bryan-Roe-ai/semantic-kernel that referenced this issue Oct 6, 2024
…sages to chat history (microsoft#4455)

### Motivation and Context

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->
Resolves microsoft#3224. Exceptions thrown by invoked functions are currently not
being caught by the planner.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
This change catches any non-critical exceptions from function
invocation, adds the error message into chat history, and lets the
planner retry.

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [x] The code builds clean without any errors or warnings
- [x] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [x] All unit tests pass, and I have added new tests where possible
- [x] I didn't break anyone 😄
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working .NET Issue or Pull requests regarding .NET code planner Anything related to planner or plans
Projects
Archived in project
6 participants