agent-framework-devui 1.0.0b251016__py3-none-any.whl → 1.0.0b251104__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of agent-framework-devui might be problematic. Click here for more details.
- agent_framework_devui/_discovery.py +2 -2
- agent_framework_devui/_executor.py +19 -8
- agent_framework_devui/_mapper.py +469 -13
- agent_framework_devui/_server.py +43 -1
- agent_framework_devui/_utils.py +24 -2
- agent_framework_devui/models/__init__.py +6 -0
- agent_framework_devui/models/_openai_custom.py +67 -2
- agent_framework_devui/ui/assets/index-D_Y1oSGu.js +577 -0
- agent_framework_devui/ui/index.html +1 -1
- {agent_framework_devui-1.0.0b251016.dist-info → agent_framework_devui-1.0.0b251104.dist-info}/METADATA +57 -22
- agent_framework_devui-1.0.0b251104.dist-info/RECORD +23 -0
- agent_framework_devui/ui/assets/index-DmL7WSFa.js +0 -577
- agent_framework_devui-1.0.0b251016.dist-info/RECORD +0 -23
- {agent_framework_devui-1.0.0b251016.dist-info → agent_framework_devui-1.0.0b251104.dist-info}/WHEEL +0 -0
- {agent_framework_devui-1.0.0b251016.dist-info → agent_framework_devui-1.0.0b251104.dist-info}/entry_points.txt +0 -0
- {agent_framework_devui-1.0.0b251016.dist-info → agent_framework_devui-1.0.0b251104.dist-info}/licenses/LICENSE +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/agentframework.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>Agent Framework Dev UI</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-D_Y1oSGu.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-CE4pGoXh.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-framework-devui
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.0b251104
|
|
4
4
|
Summary: Debug UI for Microsoft Agent Framework with OpenAI-compatible API server.
|
|
5
5
|
Author-email: Microsoft <af-support@microsoft.com>
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -81,6 +81,19 @@ devui ./agents --port 8080
|
|
|
81
81
|
|
|
82
82
|
When DevUI starts with no discovered entities, it displays a **sample entity gallery** with curated examples from the Agent Framework repository. You can download these samples, review them, and run them locally to get started quickly.
|
|
83
83
|
|
|
84
|
+
## Using MCP Tools
|
|
85
|
+
|
|
86
|
+
**Important:** Don't use `async with` context managers when creating agents with MCP tools for DevUI - connections will close before execution.
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
# ✅ Correct - DevUI handles cleanup automatically
|
|
90
|
+
mcp_tool = MCPStreamableHTTPTool(url="http://localhost:8011/mcp", chat_client=chat_client)
|
|
91
|
+
agent = ChatAgent(tools=mcp_tool)
|
|
92
|
+
serve(entities=[agent])
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
MCP tools use lazy initialization and connect automatically on first use. DevUI attempts to clean up connections on shutdown
|
|
96
|
+
|
|
84
97
|
## Directory Structure
|
|
85
98
|
|
|
86
99
|
For your agents to be discovered by the DevUI, they must be organized in a directory structure like below. Each agent/workflow must have an `__init__.py` that exports the required variable (`agent` or `workflow`).
|
|
@@ -189,42 +202,62 @@ Options:
|
|
|
189
202
|
|
|
190
203
|
Given that DevUI offers an OpenAI Responses API, it internally maps messages and events from Agent Framework to OpenAI Responses API events (in `_mapper.py`). For transparency, this mapping is shown below:
|
|
191
204
|
|
|
192
|
-
| Agent Framework Content
|
|
193
|
-
|
|
|
194
|
-
|
|
|
195
|
-
| `
|
|
196
|
-
| `
|
|
197
|
-
| `
|
|
198
|
-
| `
|
|
199
|
-
| `
|
|
200
|
-
| `
|
|
201
|
-
|
|
|
202
|
-
| `
|
|
203
|
-
| `
|
|
204
|
-
| `
|
|
205
|
-
| `
|
|
206
|
-
| `
|
|
207
|
-
| `
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
205
|
+
| OpenAI Event/Type | Agent Framework Content | Status |
|
|
206
|
+
| ------------------------------------------------------------ | --------------------------------- | -------- |
|
|
207
|
+
| | **Lifecycle Events** | |
|
|
208
|
+
| `response.created` + `response.in_progress` | `AgentStartedEvent` | OpenAI |
|
|
209
|
+
| `response.completed` | `AgentCompletedEvent` | OpenAI |
|
|
210
|
+
| `response.failed` | `AgentFailedEvent` | OpenAI |
|
|
211
|
+
| `response.created` + `response.in_progress` | `WorkflowStartedEvent` | OpenAI |
|
|
212
|
+
| `response.completed` | `WorkflowCompletedEvent` | OpenAI |
|
|
213
|
+
| `response.failed` | `WorkflowFailedEvent` | OpenAI |
|
|
214
|
+
| | **Content Types** | |
|
|
215
|
+
| `response.content_part.added` + `response.output_text.delta` | `TextContent` | OpenAI |
|
|
216
|
+
| `response.reasoning_text.delta` | `TextReasoningContent` | OpenAI |
|
|
217
|
+
| `response.output_item.added` | `FunctionCallContent` (initial) | OpenAI |
|
|
218
|
+
| `response.function_call_arguments.delta` | `FunctionCallContent` (args) | OpenAI |
|
|
219
|
+
| `response.function_result.complete` | `FunctionResultContent` | DevUI |
|
|
220
|
+
| `response.function_approval.requested` | `FunctionApprovalRequestContent` | DevUI |
|
|
221
|
+
| `response.function_approval.responded` | `FunctionApprovalResponseContent` | DevUI |
|
|
222
|
+
| `error` | `ErrorContent` | OpenAI |
|
|
223
|
+
| Final `Response.usage` field (not streamed) | `UsageContent` | OpenAI |
|
|
224
|
+
| | **Workflow Events** | |
|
|
225
|
+
| `response.output_item.added` (ExecutorActionItem)* | `ExecutorInvokedEvent` | OpenAI |
|
|
226
|
+
| `response.output_item.done` (ExecutorActionItem)* | `ExecutorCompletedEvent` | OpenAI |
|
|
227
|
+
| `response.output_item.done` (ExecutorActionItem with error)* | `ExecutorFailedEvent` | OpenAI |
|
|
228
|
+
| `response.workflow_event.complete` | `WorkflowEvent` (other) | DevUI |
|
|
229
|
+
| `response.trace.complete` | `WorkflowStatusEvent` | DevUI |
|
|
230
|
+
| `response.trace.complete` | `WorkflowWarningEvent` | DevUI |
|
|
231
|
+
| | **Trace Content** | |
|
|
232
|
+
| `response.trace.complete` | `DataContent` | DevUI |
|
|
233
|
+
| `response.trace.complete` | `UriContent` | DevUI |
|
|
234
|
+
| `response.trace.complete` | `HostedFileContent` | DevUI |
|
|
235
|
+
| `response.trace.complete` | `HostedVectorStoreContent` | DevUI |
|
|
236
|
+
|
|
237
|
+
\*Uses standard OpenAI event structure but carries DevUI-specific `ExecutorActionItem` payload
|
|
238
|
+
|
|
239
|
+
- **OpenAI** = Standard OpenAI Responses API event types
|
|
240
|
+
- **DevUI** = Custom event types specific to Agent Framework (e.g., workflows, traces, function approvals)
|
|
211
241
|
|
|
212
242
|
### OpenAI Responses API Compliance
|
|
213
243
|
|
|
214
244
|
DevUI follows the OpenAI Responses API specification for maximum compatibility:
|
|
215
245
|
|
|
216
|
-
**Standard
|
|
246
|
+
**OpenAI Standard Event Types Used:**
|
|
247
|
+
|
|
217
248
|
- `ResponseOutputItemAddedEvent` - Output item notifications (function calls and results)
|
|
249
|
+
- `ResponseOutputItemDoneEvent` - Output item completion notifications
|
|
218
250
|
- `Response.usage` - Token usage (in final response, not streamed)
|
|
219
251
|
- All standard text, reasoning, and function call events
|
|
220
252
|
|
|
221
253
|
**Custom DevUI Extensions:**
|
|
254
|
+
|
|
222
255
|
- `response.function_approval.requested` - Function approval requests (for interactive approval workflows)
|
|
223
256
|
- `response.function_approval.responded` - Function approval responses (user approval/rejection)
|
|
224
257
|
- `response.workflow_event.complete` - Agent Framework workflow events
|
|
225
258
|
- `response.trace.complete` - Execution traces and internal content (DataContent, UriContent, hosted files/stores)
|
|
226
259
|
|
|
227
|
-
These custom extensions are clearly namespaced and can be safely ignored by standard OpenAI clients.
|
|
260
|
+
These custom extensions are clearly namespaced and can be safely ignored by standard OpenAI clients. Note that DevUI also uses standard OpenAI events with custom payloads (e.g., `ExecutorActionItem` within `response.output_item.added`).
|
|
228
261
|
|
|
229
262
|
### Entity Management
|
|
230
263
|
|
|
@@ -256,12 +289,14 @@ These custom extensions are clearly namespaced and can be safely ignored by stan
|
|
|
256
289
|
DevUI is designed as a **sample application for local development** and should not be exposed to untrusted networks or used in production environments.
|
|
257
290
|
|
|
258
291
|
**Security features:**
|
|
292
|
+
|
|
259
293
|
- Only loads entities from local directories or in-memory registration
|
|
260
294
|
- No remote code execution capabilities
|
|
261
295
|
- Binds to localhost (127.0.0.1) by default
|
|
262
296
|
- All samples must be manually downloaded and reviewed before running
|
|
263
297
|
|
|
264
298
|
**Best practices:**
|
|
299
|
+
|
|
265
300
|
- Never expose DevUI to the internet
|
|
266
301
|
- Review all agent/workflow code before running
|
|
267
302
|
- Only load entities from trusted sources
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
agent_framework_devui/__init__.py,sha256=Hk2ddFHRvxe6Ytz59g2dKCs-wreG7pi7DuMgbUIeqiY,5079
|
|
2
|
+
agent_framework_devui/_cli.py,sha256=UnQ6xRfDnaZcDnlI2GCiFKjoZ1mkOqpPctEaZ9Zyhxc,4604
|
|
3
|
+
agent_framework_devui/_conversations.py,sha256=TvnQgc9sCRf-kcLnMjmIqjfi7zqqK-5fWjZvJOWErOY,18045
|
|
4
|
+
agent_framework_devui/_discovery.py,sha256=IRcYD2gBNaNV4zNFfLNMeqizkII0eBQ5hP9SezDJYEc,29531
|
|
5
|
+
agent_framework_devui/_executor.py,sha256=IbAMMd15m8PIGsxCqK287E_oq8nMc9YGbd-7dZtTmA0,28254
|
|
6
|
+
agent_framework_devui/_mapper.py,sha256=bF_kgyjRQGRXb-aybsxVlRYTdBW1zyfa8sTllfr0xhw,53326
|
|
7
|
+
agent_framework_devui/_server.py,sha256=WX2fecqfxXx-6XzJLxEHLRTGObqp96D7-Yys0Cux7y8,29181
|
|
8
|
+
agent_framework_devui/_session.py,sha256=VgmCeT3XBNds4JCCbZeH9gruGdyfUdnVgJH_DRMLNm4,6039
|
|
9
|
+
agent_framework_devui/_tracing.py,sha256=ZoYKYomFB0VjiEBFgPsSu2ocpnPushWczKl5QndSUjQ,6152
|
|
10
|
+
agent_framework_devui/_utils.py,sha256=Z1aJFsSXMZwUtA7w4pm0oCat3KWCeRw7ED9gCFQdhsw,18874
|
|
11
|
+
agent_framework_devui/models/__init__.py,sha256=yFfGAji5nnmxw-8KPyv6f7uLPTLSoIU30jAJ5u3kny0,2492
|
|
12
|
+
agent_framework_devui/models/_discovery_models.py,sha256=V78TKx8Oq6Zo1zggI6XcQ7U95OOQ8rGQckprAGH5sRM,1637
|
|
13
|
+
agent_framework_devui/models/_openai_custom.py,sha256=1VCGxZqReEIm6h0aC1Az5PaYqj9Akj5aXAopOe-c58c,7455
|
|
14
|
+
agent_framework_devui/ui/agentframework.svg,sha256=ViWg7Wee6B3X4_yVOhgmuLBtEmWx2L48Q8QSmtbYQT0,5361
|
|
15
|
+
agent_framework_devui/ui/index.html,sha256=b1pTCqj40b_eRoyhKSCDCbXbf0TDrIrbK9rUV0q6db8,479
|
|
16
|
+
agent_framework_devui/ui/vite.svg,sha256=SnSK_UQ5GLsWWRyDTEAdrjPoeGGrXbrQgRw6O0qSFPs,1497
|
|
17
|
+
agent_framework_devui/ui/assets/index-CE4pGoXh.css,sha256=0GntI9ZABqCobFN-5_G-S8AVDFGgGcHtcZYz4Uctrrk,97732
|
|
18
|
+
agent_framework_devui/ui/assets/index-D_Y1oSGu.js,sha256=27B8a2I_KDl6C6mv9nLafwyGUd0vBOvnrruddVsDwTM,725481
|
|
19
|
+
agent_framework_devui-1.0.0b251104.dist-info/entry_points.txt,sha256=H6Vq4nNyU8GryiFv215LfIF9pjVnow9Ono-pJzZ6zsI,52
|
|
20
|
+
agent_framework_devui-1.0.0b251104.dist-info/licenses/LICENSE,sha256=ws_MuBL-SCEBqPBFl9_FqZkaaydIJmxHrJG2parhU4M,1141
|
|
21
|
+
agent_framework_devui-1.0.0b251104.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
22
|
+
agent_framework_devui-1.0.0b251104.dist-info/METADATA,sha256=RMb3kYZi7ziHYb09ybThNiBX94M8-0HvrkhP11ch8vA,14090
|
|
23
|
+
agent_framework_devui-1.0.0b251104.dist-info/RECORD,,
|