* Python: Add coverage threshold gate for PR checks (#3392)
- Add python-check-coverage.py script to enforce coverage threshold on specific modules
- Modify python-test-coverage.yml to run coverage check after tests
- Initial enforced module: agent_framework_azure_ai at 85% threshold
- Other modules are reported for visibility but don't block merges
* Fail if module not found
* Force unit test job to run
* Comment 1
* Fix coverage check to use full package paths for submodule support
* Update report format
* changed AIFunction to FunctionTool and @ai_function to @tool
* test and mypy fixes
* mypy fix
* switch function tool to always_require
* fix noop
* fix github copilot imports
* test fixes
* fix ollama test
* fixes for tests
* fix tests
* reverted change to always_require and extended timeout
* fix test
Eduard van Valkenburg
·
2026-01-28 14:53:53 +00:00
* Added provider implementation for Azure AI V1
* Small fixes
* Fixed OpenAPI example
* Fixed local MCP example
* Fixed hosted MCP example
* Fixed file search sample
* Small fixes
* Resolved comments
* Doc updates
* removed display_name, renamed context_providers, middleware and AggregateContextProvider
* fixes
* fixed test
* testfix
* removed mistakenly put back test
* updated new test
* rename middlewares to middleware
* middleware fixes
Eduard van Valkenburg
·
2026-01-13 02:24:07 +00:00
* feat(mcp): add full _meta field support for CallToolResult objects
- Extract and preserve complete _meta field from MCP CallToolResult responses
- Merge metadata into additional_properties of converted content items
- Handle isError field for proper error state integration
- Support arbitrary metadata like token usage, costs, and performance metrics
- Maintain backward compatibility with existing tool execution workflows
- Add comprehensive test coverage for all metadata scenarios including edge cases
- Update documentation with metadata handling examples and patterns
Fixes protocol compliance violation where _meta fields were being dropped,
enables proper monitoring and cost tracking of MCP tool usage.
* Update python/packages/core/agent_framework/_mcp.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Clarify MCP _meta field test to use generic example metadata
- Updated test_mcp_call_tool_result_with_meta_arbitrary_data to use arbitrary metadata fields
- Added comments to emphasize that _meta structure is server-specific and not standardized
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Python: Fix pyright errors and move search provider to core (#1546)
* address pablo coments
* update azure ai search pypi version to latest prev
* init update
* Fix MyPy type annotation errors in search provider
- Add type annotation to DEFAULT_CONTEXT_PROMPT
- Add type annotation to vectorizable_fields
- Add union type annotation to vector_queries
* Fix DEFAULT_CONTEXT_PROMPT MyPy error and update test
- Rename DEFAULT_CONTEXT_PROMPT to _DEFAULT_SEARCH_CONTEXT_PROMPT to avoid conflict with base class Final variable
- Update test to use new constant name
- All core package tests passing (1123 passed)
* Python: Move Azure AI Search to separate package per PR feedback
Addresses reviewer feedback from PR #1546 by isolating the beta dependency
(azure-search-documents==11.7.0b2) into a new agent-framework-aisearch package.
Changes:
- Created new agent-framework-aisearch package with complete structure
- Moved AzureAISearchContextProvider from core to aisearch package
- Added AzureAISearchSettings class for environment variable auto-loading
- Added support for direct API key string (auto-converts to AzureKeyCredential)
- Added azure_openai_api_key parameter for Knowledge Base authentication
- Updated embedding_function type to Callable[[str], Awaitable[list[float]]]
- Moved Role import to top-level imports
- Maintained lazy loading through agent_framework.azure module
- Removed beta dependency from core package
- Updated all tests to use new package location
- All quality checks pass: ruff format/lint, pyright, mypy (0 errors)
- All 21 unit tests pass with 59% coverage
Semantic search mode verified working with both API key and managed identity authentication.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Python: Clarify top_k parameter only applies to semantic mode
Updated documentation to clarify that the top_k parameter only affects
semantic search mode. In agentic mode, the server-side Knowledge Base
determines retrieval based on query complexity and reasoning effort.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Python: Add Knowledge Base output mode and retrieval reasoning effort parameters
Added support for configurable Knowledge Base behavior in agentic mode:
- knowledge_base_output_mode: "extractive_data" (default) or "answer_synthesis"
Some knowledge sources require answer_synthesis mode for proper functionality.
- retrieval_reasoning_effort: "minimal" (default), "medium", or "low"
Controls query planning complexity and multi-hop reasoning depth.
These parameters give users fine-grained control over Knowledge Base behavior
and enable support for knowledge sources that require answer synthesis.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* effort and outputmode query params
* Address PR review feedback for Azure AI Search context provider
* comments eduward
* ed latest comments
---------
Co-authored-by: Farzad Sunavala <farzad.sunavala.enovate.ai>
Co-authored-by: farzad528 <farzad528@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>