Commit 458c171
authored
Reduce AppLens failures (#2018)
* Reduce AppLens failures
The "diagnose" tool uses an AppLens endpoint to identify problems in Azure resources and provide solutions. It currently has a high failure rate. I suspect this is due in part to the way we present the parameters to the LM and how we handle them internally. The subscription, resource group, and resource type are presented as optional parameters, when in fact we need them all to construct the resource ID to pass to the AppLens API. It is likely that the LMs first attempt at diagnosing an issue will thus result in a failure, with a message telling it what it needs to provide. At that point it _may_ be able to find the necessary information, but it might also hallucinate it (leading to further failures) or just give up on the tool entirely.
Instead, we should treat only the resource name as required, and then use an Azure Resource Graph query to find all of the potentially relevant resources. The subscription, group, and type can then be used to disambiguate when more than one possibility is found. This should increase the likelihood of finding the expected resource on the first try.
* Add a changelog entry
* Add trailing newline
* Remove unnecessary filter
The `AppLensService` currently uses ARG to find all resources of a given name, and then filters those results by subscription, resource group, and resource type, if they have been provided. Since the ARG query results are broad we have the opportunity to do some error correction; e.g., if resource group is given _but_ the resource is actually in a different group we will still find it and can return a message asking the LM if that's actually the one it meant.
However, if we have a subscription we pass it in to the ARG query and results will necessarily be limited to that subscription; there is no value in further filtering. Here we remove the unncessary code.1 parent d2c3c4f commit 458c171
File tree
7 files changed
+417
-78
lines changed- servers/Azure.Mcp.Server/changelog-entries
- tools/Azure.Mcp.Tools.AppLens
- src
- Commands/Resource
- Options
- Resource
- Services
- tests/Azure.Mcp.Tools.AppLens.UnitTests/Resource
7 files changed
+417
-78
lines changedLines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 16 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
| 4 | + | |
6 | 5 | | |
7 | 6 | | |
8 | 7 | | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
13 | | - | |
14 | 12 | | |
15 | 13 | | |
16 | 14 | | |
17 | 15 | | |
18 | 16 | | |
| 17 | + | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | | - | |
34 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
| |||
47 | 48 | | |
48 | 49 | | |
49 | 50 | | |
50 | | - | |
51 | | - | |
52 | | - | |
| 51 | + | |
| 52 | + | |
53 | 53 | | |
| 54 | + | |
| 55 | + | |
54 | 56 | | |
55 | 57 | | |
56 | 58 | | |
57 | 59 | | |
58 | 60 | | |
59 | | - | |
| 61 | + | |
| 62 | + | |
60 | 63 | | |
61 | 64 | | |
62 | | - | |
| 65 | + | |
63 | 66 | | |
64 | 67 | | |
65 | 68 | | |
| |||
80 | 83 | | |
81 | 84 | | |
82 | 85 | | |
83 | | - | |
| 86 | + | |
84 | 87 | | |
85 | 88 | | |
86 | 89 | | |
| |||
Lines changed: 18 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
11 | 13 | | |
12 | 14 | | |
13 | 15 | | |
| |||
23 | 25 | | |
24 | 26 | | |
25 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
26 | 42 | | |
27 | 43 | | |
28 | 44 | | |
29 | | - | |
30 | | - | |
| 45 | + | |
| 46 | + | |
31 | 47 | | |
32 | 48 | | |
Lines changed: 7 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
27 | 32 | | |
0 commit comments