Skip to content

Commit 99808ad

Browse files
authored
Merge pull request #106 from kagent-dev/peterj/updateagents
ui cleanup + adding observabilitt agent
2 parents e55333b + 088ced6 commit 99808ad

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2106
-964
lines changed

python/agents/helm_agent.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"version": 1,
2323
"component_version": 1,
2424
"description": "An agent that provides assistance with tool use.",
25-
"label": "Helm Agent",
25+
"label": "Sample Helm Agent",
2626
"config": {
2727
"name": "helm_agent",
2828
"model_client": {

python/agents/observability.json

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
{
2+
"provider": "autogen_agentchat.teams.RoundRobinGroupChat",
3+
"component_type": "team",
4+
"version": 1,
5+
"component_version": 1,
6+
"description": "A team containing Observability Agent",
7+
"label": "A team containing Observability Agent",
8+
"config": {
9+
"participants": [
10+
{
11+
"provider": "kagent.agents.SocietyOfMindAgent",
12+
"component_type": "agent",
13+
"version": 1,
14+
"component_version": 1,
15+
"description": "An agent which runs a team of agents",
16+
"label": "society_of_mind_agent",
17+
"config": {
18+
"name": "society_of_mind_agent",
19+
"team": {
20+
"provider": "autogen_agentchat.teams.RoundRobinGroupChat",
21+
"component_type": "team",
22+
"version": 1,
23+
"component_version": 1,
24+
"description": "A team containing Observability Agent",
25+
"label": "RoundRobinGroupChat",
26+
"config": {
27+
"participants": [
28+
{
29+
"provider": "autogen_agentchat.agents.AssistantAgent",
30+
"component_type": "agent",
31+
"version": 1,
32+
"component_version": 1,
33+
"description": "This is an example agent that combines Kubernetes, Prometheus and Grafana tools.",
34+
"label": "Sample Observability Agent",
35+
"config": {
36+
"name": "observability",
37+
"model_client": {
38+
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
39+
"component_type": "model",
40+
"version": 1,
41+
"component_version": 1,
42+
"description": "Chat completion client for OpenAI hosted models.",
43+
"label": "OpenAIChatCompletionClient",
44+
"config": { "model": "gpt-4o", "stream_options": { "include_usage": true } }
45+
},
46+
"tools": [
47+
{
48+
"provider": "kagent.tools.k8s.GetResources",
49+
"description": "Get information about resources in Kubernetes. Always prefer output type `wide` unless otherwise specified. 'all' is NOT an option, you must specify a resource type.",
50+
"component_type": "tool",
51+
"component_version": 1,
52+
"version": 1,
53+
"label": "GetResources",
54+
"config": {}
55+
},
56+
{
57+
"provider": "kagent.tools.k8s.GetAvailableAPIResources",
58+
"description": "Gets the supported API resources in Kubernetes.",
59+
"component_type": "tool",
60+
"component_version": 1,
61+
"version": 1,
62+
"label": "GetAvailableAPIResources",
63+
"config": {}
64+
},
65+
{
66+
"provider": "kagent.tools.prometheus.QueryTool",
67+
"description": "Executes instant queries against Prometheus to retrieve current metric values.\n Use this tool when you need to get the latest values of metrics or perform calculations on current data.\n The query must be a valid PromQL expression.",
68+
"component_type": "tool",
69+
"component_version": 1,
70+
"version": 1,
71+
"label": "QueryTool",
72+
"config": { "base_url": "http://localhost:9090/api/v1", "username": "", "password": "" }
73+
},
74+
{
75+
"provider": "kagent.tools.prometheus.GeneratePromQLTool",
76+
"description": "GeneratePromQLTool generates PromQL queries from natural language descriptions.",
77+
"component_type": "tool",
78+
"component_version": 1,
79+
"version": 1,
80+
"label": "GeneratePromQLTool",
81+
"config": { "model": "gpt-4o", "openai_api_key": "", "temperature": 0 }
82+
},
83+
{
84+
"provider": "kagent.tools.grafana.DashboardManagementTool",
85+
"description": "Perform various operations on Grafana dashboards including:\n - search: Search for dashboards with filtering and pagination\n - get: Retrieve a specific dashboard by UID\n - create/update: Create a new dashboard or update an existing one\n - delete: Delete a dashboard by UID\n - get_versions: List all versions of a dashboard\n - get_version: Retrieve a specific version of a dashboard\n - restore_version: Restore a dashboard to a previous version\n - get_permissions: Get dashboard permissions\n - update_permissions: Update dashboard permissions\n - calculate_diff: Calculate difference between dashboard versions\n ",
86+
"component_type": "tool",
87+
"component_version": 1,
88+
"version": 1,
89+
"label": "DashboardManagementTool",
90+
"config": { "base_url": "http://localhost:3000/api", "username": "", "password": "", "api_key": "" }
91+
}
92+
],
93+
"handoffs": [],
94+
"model_context": {
95+
"provider": "autogen_core.model_context.UnboundedChatCompletionContext",
96+
"component_type": "chat_completion_context",
97+
"version": 1,
98+
"component_version": 1,
99+
"description": "An unbounded chat completion context that keeps a view of the all the messages.",
100+
"label": "UnboundedChatCompletionContext",
101+
"config": {}
102+
},
103+
"description": "This is an example agent that combines Kubernetes, Prometheus and Grafana tools.",
104+
"system_message": "You're a friendly and helpful agent that uses tools to help users with observability questions. You have access to the following tools:\n\n- Kubernetes tools to verify existence of services, pods and other resources\n- PromQL query generator tool that knows how to create a valid PromQL from user queries\n- Prometheus tools to query Prometheus for metrics, labels\n- Grafana tools for creating and managing dashboards\n\n# Instructions\n- If user question is unclear, ask for clarification before running any tools\n- Always be helpful and friendly\n- If you don't know how to answer the question DO NOT make things up, tell the user \"Sorry, I don't know how to answer that\" and ask them to clarify the question further\n- Before creating any Prometheus queries or Grafana dashboards make sure the actual resources exist in Kubernetes. For example, if a user asks for metrics for a service, you will use Kubernetes to to verify whether the resource exists before creating any queries or dashboards.\n\n# Response format\n- ALWAYS format your response as Markdown\n- Your response will include a summary of actions you took and an explanation of the result\n- If you created any artifacts such as files or resources, you will include those in your response as well ",
105+
"reflect_on_tool_use": false,
106+
"tool_call_summary_format": "{result}",
107+
"model_client_stream": true
108+
}
109+
}
110+
],
111+
"termination_condition": {
112+
"provider": "kagent.terminations.TextMessageTermination",
113+
"component_type": "termination",
114+
"version": 1,
115+
"component_version": 1,
116+
"description": "Terminate the conversation if a specific text is mentioned.",
117+
"label": "TextMessageTermination",
118+
"config": { "source": "observability" }
119+
},
120+
"model_client": {
121+
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
122+
"component_type": "model",
123+
"version": 1,
124+
"component_version": 1,
125+
"description": "Chat completion client for OpenAI hosted models.",
126+
"label": "OpenAIChatCompletionClient",
127+
"config": { "model": "gpt-4o", "stream_options": { "include_usage": true } }
128+
}
129+
}
130+
},
131+
"model_client": {
132+
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
133+
"component_type": "model",
134+
"version": 1,
135+
"component_version": 1,
136+
"description": "Chat completion client for OpenAI hosted models.",
137+
"label": "OpenAIChatCompletionClient",
138+
"config": { "model": "gpt-4o", "stream_options": { "include_usage": true } }
139+
},
140+
"model_context": {
141+
"provider": "autogen_core.model_context.UnboundedChatCompletionContext",
142+
"component_type": "chat_completion_context",
143+
"version": 1,
144+
"component_version": 1,
145+
"description": "An unbounded chat completion context that keeps a view of the all the messages.",
146+
"label": "UnboundedChatCompletionContext",
147+
"config": {}
148+
},
149+
"model_client_stream": true
150+
}
151+
},
152+
{
153+
"provider": "autogen_agentchat.agents.UserProxyAgent",
154+
"component_type": "agent",
155+
"version": 1,
156+
"component_version": 1,
157+
"description": "An agent that represents a user.",
158+
"label": "kagent_user",
159+
"config": { "name": "kagent_user", "description": "Human user" }
160+
}
161+
],
162+
"termination_condition": {
163+
"provider": "autogen_agentchat.conditions.TextMentionTermination",
164+
"component_type": "termination",
165+
"version": 1,
166+
"component_version": 1,
167+
"description": "Terminate the conversation if a specific text is mentioned.",
168+
"label": "TextMentionTermination",
169+
"config": { "text": "TERMINATE" }
170+
},
171+
"model_client": {
172+
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
173+
"component_type": "model",
174+
"version": 1,
175+
"component_version": 1,
176+
"description": "Chat completion client for OpenAI hosted models.",
177+
"label": "OpenAIChatCompletionClient",
178+
"config": { "model": "gpt-4o", "stream_options": { "include_usage": true } }
179+
}
180+
}
181+
}

0 commit comments

Comments
 (0)