Commit Graph
807 Commits
Author SHA1 Message Date
Eric ZhuandGitHub aba505df77 Python: Update lab packages and installation instructions (#1687)
* update lab packages and installation instructions

* fix dep
2025-10-24 21:12:08 +00:00
458819a12b Python: [BREAKING] Update Agent Framework Lab Lightning to use Agent-lightning v0.2.0 API (#1644)
* Merge changes from AGL release

* Merge changes from AGL release

* fix mypy

* fix tool call with pydantic

* Apply suggestion from @ekzhu

* fix lint

---------

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2025-10-24 17:02:56 +00:00
Tao ChenandGitHub 31701dbb92 [BREAKING] Python: Refactor Checkpointing for runner and runner context (#1645)
* Refactor Checkpointing for runner and runner context

* exception

* Fix formatting

* Comments

* rename

* Add detailed doc string
2025-10-24 03:34:55 +00:00
Victor DibiaandGitHub 6b66a34609 Python: DevUI Fix Serialization, Timestamp and Other Issues (#1584)
* refactor(devui): adopt standard OpenAI lifecycle events for agents and workflows

- Replace custom workflow events with OpenAI Responses API standard lifecycle events
- Add AgentStartedEvent, AgentCompletedEvent, AgentFailedEvent for clean separation
- Implement ExecutorActionItem for workflow executor tracking
- Convert informational events to trace events to reduce noise
- Update README mapper table with comprehensive event mappings
- Maintain full backward compatibility with legacy events

* fix(devui): resolve timestamp overwriting and Content serialization errors

- Fix tool call timestamps being overwritten on each render (#1483)
- Add recursive Content serialization to handle ChatMessage and nested objects (#1548)
- Implement proper MCP tool cleanup on server shutdown
- Add timestamp field to function_result.complete events
- Enhance credential and client resource cleanup

Fixes #1483, #1548
Partial improvements for #1476
2025-10-23 18:19:20 +00:00
Eric ZhuandGitHub 064ee8afbe Python: Update lab test trigger (#1632)
* Update lab test trigger

* fix tests
2025-10-23 18:11:57 +00:00
Giles OdigweandGitHub 1f19a6da5c Python: MCP Error Handling Fix + Added Unit Tests (#1621)
* mcp error fix

* test docstring fixes
2025-10-23 18:01:10 +00:00
Eric ZhuandGitHub 905e730dc2 Python: Skip flaky openai vector store file tests (#1667)
* Add poll interval to fix integration test

* skip flaky tests
2025-10-23 17:31:41 +00:00
Evan MattsonandGitHub b66619a544 Python: Add Handoff orchestration pattern support (#1469)
* Add Handoff orchestration pattern support

* PR feedback

* Use AOAI client in samples

* Adjust to tool

* Handoff to sub-agent via ai function

* PR feedback

* More cleanup

* Improvements

* PR feedback cleanup

* Add handoff migration sample.

* Remove type ignore

* fix markdown link formatting

* Remove readme link for non-existent sample
2025-10-22 01:51:51 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Victor Dibia
acfbc4bc3c Bump vite from 7.1.5 to 7.1.11 in /python/packages/devui/frontend (#1586)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.5 to 7.1.11.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.11/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.11
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Victor Dibia <chuvidi2003@gmail.com>
2025-10-21 01:17:40 +00:00
083d0de3f3 Code clean up: Checkpoint and WorkflowBuilder (#1557)
Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
2025-10-20 16:34:06 +00:00
8c24a72107 Python: Updated package version (#1528)
* Updated package version

* Update python/CHANGELOG.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Updated metadata for Purview

* Updated test

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-16 22:32:25 +00:00
59da578902 Python: Add Purview Middleware (#1142)
* [Py Purview] Purview Python Initial Commit

* [Py Purview] Purview Python Minor Fixes

* [Py Purview] Purview Python Comment Fixesish

* [Py Purview] Purview Python Agent Middleware Done

* [Py Purview] Purview Python Agent Middleware Done

* [Py Purview] Purview Python Lint Errors

* [Py Purview] Purview Python Final Hopefully

* [Py Purview] Purview Python Final Hopefully

* [Py Purview] Purview Python Fix ReadMe

* [Py Purview] Purview Python Fix MyPy

* [Py Purview] Purview Python Minor Updates on comments

* [Py Purview] Purview Python Fix Build Error

---------

Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
2025-10-16 21:46:04 +00:00
76ae0a62ac Python: Agent Name Sanitization (#1523)
* a2a agent name sanitization

* fix

* small fix

---------

Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
2025-10-16 20:33:25 +00:00
Dmytro StrukandGitHub 3b9193c15e Small fix in OpenAI Responses client (#1509) 2025-10-16 14:27:39 +00:00
Giles OdigweandGitHub db7f767180 Python: Added MCP headers for AzureAI (#1506)
* add mcp headers

* small fix
2025-10-16 05:42:45 +00:00
Victor DibiaandGitHub b64358df7e Python: Add Function Approval UI to DevUI (#1401)
* ensure function aproval is parsed correctly

* udpate ui, add deployment guide button, other debug panel fixes

* feat(devui): Implement lazy loading architecture with enhanced security and state management

Major architectural improvements to DevUI for better performance, security, and developer experience:

Performance & Architecture:
- Implement lazy loading for entity discovery - entities loaded on-demand instead of at startup
- Add hot reload capability for development workflow via new reload endpoint
- Reduce startup time and memory footprint by deferring module imports

Security Enhancements:
- Remove remote entity loading capabilities (POST /v1/entities/add, DELETE endpoints)
- DevUI now strictly local development tool - no remote code execution
- Add explicit security documentation and best practices in README

Frontend Improvements:
- Migrate to Zustand for centralized state management (replacing prop drilling)
- Add lightweight zero-dependency markdown renderer with code block copy support
- Improve gallery UX with setup instructions modal instead of direct URL loading
- Enhanced message UI with copy functionality and better token usage display

Testing & Quality:
- Expand test coverage for lazy loading, type detection, and cache invalidation
- Add comprehensive tests for new behaviors (+231 lines of test code)
- Improve type safety and documentation throughout

Breaking Changes:
- Remote entity loading via URLs is no longer supported
- Entities must be loaded from local filesystem only

* update ui issues, uupdate test descripion
2025-10-15 21:36:29 +00:00
9148392d00 Python: Enhanced documentation for dependency injection and serialization features (#1324)
* improvements in dep injection and sample

* fix for falsy default

* fix mypy

* update to use a nested dict instead of a string.

* clarify docs

* Update python/packages/core/agent_framework/_tools.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update python/packages/core/agent_framework/_tools.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update python/packages/core/agent_framework/_tools.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update python/packages/core/agent_framework/_serialization.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* format

---------

Co-authored-by: eavanvalkenburg <github@vanvalkenburg.eu>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-13 20:34:27 +00:00
Tao ChenandGitHub fc12ab9fed Python: Refactor RequestInfoExecutor (#1403)
* Refactor RequestInfoExecutor

* Update AI script

* Fix formatting

* Address comments

* fix unit test
2025-10-13 19:18:17 +00:00
baf59ca1ed Python: Added URL Citation Support to Azure AI Agent (#1397)
* added url citation to agentrunresponse

* small fix

* fix

* Update python/packages/azure-ai/agent_framework_azure_ai/_chat_client.py

Co-authored-by: Tao Chen <taochen@microsoft.com>

---------

Co-authored-by: Tao Chen <taochen@microsoft.com>
2025-10-13 19:04:08 +00:00
350cdfc1cd Python: Fix AI Search Tool Sample and improve AI Search Exceptions (#1206)
* Python: Fix AI Search Tool Sample and improve AI Search Exceptions

* Python: Fix AI Search Tool Test

---------

Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
2025-10-10 18:46:57 +00:00
Victor DibiaandGitHub e032fe3993 Python: Fix Failure with Function Approval Messages in Chat Clients (#1322)
* Python: set role=tool when processing approval responses

* Python: set role=tool when processing approval responses

* Fix approval mode with OpenAIChatClient and threads: add approval requests to assistant message, fix deduplication/rejection call_id, filter approval content, add tests and example

* update test tools after change

* Rename _collect_approval_todos to _collect_approval_responses and filter empty call_ids
2025-10-10 18:38:23 +00:00
Giles OdigweandGitHub 7238cde5af Python: AzureAI Bing Connection Name Support (#1364)
* bing connection name support

* error handling + unit tests

* connection id and name handling
2025-10-09 21:13:07 +00:00
2f53ce4abd Python: A2A AuthInterceptor Support (#1317)
* a2a authinterceptor support

* Update python/packages/a2a/agent_framework_a2a/_agent.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* small fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-09 18:56:54 +00:00
Dmytro StrukandGitHub a02b82f022 Python: Fixed instructions duplication in model clients (#1332)
* Small fix

* Updated instruction handling in chat clients
2025-10-09 14:49:03 +00:00
Tao ChenandGitHub 2397795c1d Python: Fix deadlock in Magentic workflow (#1325)
* Fix deadlock in Magentic workflow

* Fix unit test
2025-10-09 00:23:46 +00:00
Dmytro StrukandGitHub 7e891fab39 Python: Included existing agent definition in requests to Azure AI (#1285)
* Fixed instructions handling for existing Azure AI agents

* Updated tool handling for existing agents

* Small update

* Added more comments
2025-10-08 20:33:57 +00:00
Victor DibiaandGitHub c341ee7ed2 Python: DevUI - Internal Refactor, Conversations API support, and per… (#1235)
* Python: DevUI - Internal Refactor, Conversations API support, and performance improvements

Comprehensive refactor of DevUI package including samples relocation,
frontend reorganization, OpenAI Conversations API support, and critical
performance and code quality improvements.

Key Changes:

Architecture & Organization
- Moved DevUI samples to python/samples/getting_started/devui/
- Consolidated with other framework samples for better discoverability
- Added .env.example files and comprehensive README
- Restructured frontend components into feature-based folders (agent, workflow, gallery, layout)
- Created new OpenAI-compliant message renderers (devui should render oai responses types primarily)

New Features
- Added _conversations.py (467 lines) - Full conversation storage abstraction, replaces the /threads endpoint to better match oai conversations api
- Implements OpenAI Conversations API for thread management, Supports in-memory and extensible storage backends

API Simplification
- Use 'model' field as entity_id (agent/workflow name) instead of extra_body
- Use standard OpenAI 'conversation' field for conversation context.

Performance & Quality Improvements
- Improved context management in MessageMapper with bounded memory (~500KB max)
- Implemented hybrid LRU + cleanup approach to prevent unbounded memory growth
- General QOL improvement - Eliminated ~150 lines of dead/duplicate code, Consolidated helper functions into _utils.py, Extracted magic numbers to module-level constants, Optimized conversation item lookups with index-based approach

Testing
- Added test_conversations.py (13 tests)
- Added test_performance_fixes.py (9 tests)
- Updated existing tests for code consolidation
- 53 tests passing

Impact: 76 files changed: +4,106 insertions, -2,373 deletions
All linting and formatting checks passing. No breaking changes - backward compatible.

Migration: Samples moved to python/samples/getting_started/devui/

* readme lint fixes

* initial support for function approval and minor ui fixes
2025-10-08 19:34:30 +00:00
Eduard van ValkenburgandGitHub a36e183600 Python: improved thread serialization and deser with better tests (#1316)
* improved thread serialization and deser with better tests

* update redis with the same
2025-10-08 19:04:11 +00:00
Tao ChenandGitHub c2c8ec3d4e Python: Reorganize workflows modules (#1282)
* Reorganize modules

* Fix unit tests

* Remove submodules
2025-10-08 17:04:06 +00:00
Eric ZhuandGitHub 1c5e607a1f Python: fix tool call content not showing up in workflow events (#1290)
* fix tool call content not showing up in workflow events

* fix lint

* touch up

* add another sample to show function bridge

* missing sample
2025-10-08 16:39:08 +00:00
Giles OdigweandGitHub 334d52f300 Python: AzureAI Agent AI Search Sample (#1281)
* azure ai search sample

* small fix
2025-10-08 15:52:02 +00:00
Eduard van ValkenburgandGitHub 8b73b5b1be Python: bump version and update changelog (#1277)
* bump version and update changelog

* undo lab package version bump

* add changelog to exclude pattern for links

* fix for ignore path

* exclude file
2025-10-07 21:41:59 +00:00
Eduard van ValkenburgandGitHub 76900f0eab Python: [BREAKING] parameter naming and other fixes (#1255)
* parameter naming and other fixes

* fix test

* fix azure openai responses decorator ordering

* fix test

* fix mypy

* fixes in options handling

* fix tests

* final fixes

* exclude macos tests

* fix model param
2025-10-07 21:18:48 +00:00
a45e2ab28e Python: Added method to expose agent as MCP server (#1248)
* Added method to expose agent as MCP server

* Update python/packages/core/agent_framework/_agents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update python/packages/core/agent_framework/_agents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Addressed PR feedback

* Updated doc string

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-07 17:21:53 +00:00
8bb1266020 Python: Add PDF file support to OpenAI content parser with filename mapping (#1121)
* Add mapping for application media type in OpenAI responses client

* Enhance multimodal input samples: Add PDF testing functionality and fix image sample

* Standardize filename handling and add multimodal samples

- Standardized filename extraction logic between chat and responses clients
- Both clients now omit filename when not provided (no default fallback)
- Added Azure Responses API multimodal sample with PDF support
- Cleaned up Azure Chat sample to focus on supported features only
- Fixed test comment placement for better code documentation
- Updated README with clear API capability differences

* Enhance multimodal input samples with image and PDF handling

- Refactor image and PDF handling in `azure_chat_multimodal.py` and `openai_chat_multimodal.py` to use new utility functions.
- Add `load_sample_pdf` and `create_sample_image` functions for better test asset management.
- Remove redundant code for creating sample images and PDFs.
- Introduce a sample PDF file in `sample_assets` for testing purposes.

* Fix formatting in OpenAI chat client

---------

Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
2025-10-07 17:04:33 +00:00
Giles OdigweandGitHub 1d27b57672 Python: ollama + azureai openapi samples fix (#1244)
* ollama + azureai openapi samples fix

* small fix
2025-10-07 16:14:34 +00:00
Eric ZhuandGitHub d01d9afb92 Python: Introduce add_agent functionality and added output_response to AgentExecutor; agent streaming behavior to follow workflow invocation (#1184)
* refactor AgentExecutor, add output_response flag for switching on or off workflow output for each agent.

* introduce add_agent

* make default agent's streaming to false

* address comments

* fix test

* add is_streaming to RunnerContext and WorkflowContext

* fix add_agent return

* fix tests

* address comments

* resolve conflict

* update to address comments

* fix
2025-10-07 16:11:40 +00:00
Eduard van ValkenburgandGitHub b49395fa3d Python: added approval_mode and allowed_tools to local MCP (#1203)
* added approval_mode and allowed_tools to local MCP

* updated docs
2025-10-07 07:44:08 +00:00
66009c617d docs: update dev.md to fix "Get the Code" section (#1217)
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2025-10-06 19:53:34 +00:00
Giles OdigweandGitHub 4e6ae443cf Python: OpenAI Clients accepting api_key callback (#1139)
* openai clients accepting callable

* fixes

* version checks
2025-10-06 19:51:34 +00:00
Eduard van ValkenburgandGitHub 714e7b50d4 Python: updated docstrings (#1225)
* updated docstrings

* fix tests and mypy

* hosted file search docstring update

* updated versions
2025-10-06 16:04:39 +00:00
CopilotGitHubeavanvalkenburgCopilotcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>eavanvalkenburgEduard van Valkenburg
8bd3e11d3e Python: Standardize docstrings: Use Keyword Args for Settings classes and add environment variable examples (#1202)
* Initial plan

* Update Settings classes to use Keyword Args and add examples

Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>

* Add examples and env var documentation to chat clients

Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>

* Add env var docs and examples to Responses and AzureAI clients

Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>

* Remove Args from class docstrings where they belong in __init__

Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>

* Add env var docs and examples to Assistants clients

Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>

* updated to keyword args

* Fix incorrect code block formatting in _workflows/_executor.py

Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>

* Fix markdown code blocks in _workflows/_edge.py - use Sphinx format

Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>

* Update _assistants_client.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: eavanvalkenburg <13749212+eavanvalkenburg@users.noreply.github.com>
Co-authored-by: eavanvalkenburg <github@vanvalkenburg.eu>
Co-authored-by: Eduard van Valkenburg <eavanvalkenburg@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-06 07:37:34 +00:00
0cd794abe7 added missing lib/utils.ts in devui frontend (#1197)
Co-authored-by: Alex Lavaee <alexlavaee@microsoft.com>
2025-10-06 07:34:34 +00:00
Victor DibiaandGitHub 5a7ca13af6 feat: Add name and description support to workflows (#1183)
Add optional name and description fields to workflows in both Python and .NET implementations, matching the existing agent API pattern.

Python changes:
- Add name/description parameters to WorkflowBuilder.__init__
- Add name/description attributes to Workflow class
- Include name/description in to_dict() serialization
- Add WORKFLOW_NAME and WORKFLOW_DESCRIPTION OTEL attributes
- Add tests in test_serialization.py and test_workflow_observability.py

.NET changes:
- Add Name and Description properties to Workflow and Workflow<T>
- Add WithName() and WithDescription() fluent methods to WorkflowBuilder
- Add WorkflowName and WorkflowDescription OTEL tags
- Add test in WorkflowBuilderSmokeTests.cs

This enables applications like DevUI to display human-readable workflow names (e.g., 'Data Processing Pipeline') instead of auto-generated UUIDs (e.g., 'Workflow 50fdd917').

Fixes: #1181
2025-10-04 15:20:17 +00:00
Eduard van ValkenburgandGitHub fd819c6c02 Python: Introducing AI Function approval (#1131)
* support for local function approval

* small fix

* fix mypy

* added bigger test scenario's for function calling and approvals

* updated lock

* updated return message for rejection

* fix test

* updated function result content handling
2025-10-04 15:19:16 +00:00
01f438d710 Python: DevUI improvements. (#1091)
* enable deeplinking in ui, add agent details to entity info, add usage data, add middleware example in samples and foundry agent.

* update ui build

* Update python/packages/devui/frontend/src/components/workflow/workflow-input-form.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update python/packages/devui/pyproject.toml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update python/packages/devui/pyproject.toml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* imporove mapping for agent nodes and serialiation for agent run events

* lint fixes

* update pyproj toml and ui updates

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-03 22:22:03 +00:00
50c532b4ae docs: Update References to Agent2Agent protocol to use correct terminology (#1162)
Should be `Agent2Agent Protocol` not `Agent-to-Agent` unless talking about general agent to agent communication

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2025-10-03 19:10:05 +00:00
Evan MattsonandGitHub c543dbaa92 Python: Default DevUI workflows to string input when start node is auto-wrapped agent (#1143)
* DevUI workflows default to string input when start node is AgentExecutor

* Remove unnecessary sample

* Fix lint issue
2025-10-03 08:11:38 +00:00
2696de7428 docs: add missing pre flag (#1130)
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2025-10-02 18:50:47 +00:00
8b80a03fbb Python: updated docstrings of all _files (#1107)
* updated docstrings of all _files

* fix mypy

* fixed codeblocks in workflows and some other files

---------

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2025-10-02 16:18:58 +00:00