-
Notifications
You must be signed in to change notification settings - Fork 419
Dev v4 #702
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Dev v4 #702
Conversation
Replaced semantic-kernel imports and dependencies with agent-framework in config, models, and utils. Updated pyproject.toml to add agent-framework and remove semantic-kernel. This refactor aligns the codebase with the new agent-framework library for agent and kernel functionality.
Migrate from semantic-kernel to agent-framework
Adds a comprehensive AVM post-deployment guide and refactors post-deployment scripts (PowerShell and Bash) to support both azd and ARM/Bicep deployments, including improved Azure subscription selection and output parsing. Updates FastAPI app to use a lifespan context for agent cleanup on shutdown. Refactors CosmosDB and config code for clarity and style. Updates workflow files for more flexible test and deployment handling. Introduces new frontend components and hooks for plan cancellation dialog and alert, and updates related styles and service logic.
Added agent-framework-core, agent-framework-azure-ai, agent-framework-copilotstudio, agent-framework-devui, agent-framework-mem0, and agent-framework-redis as dependencies from the Microsoft agent-framework repository. Updated azure-ai-agents to version 1.2.0b5 and upgraded aiohttp to 3.13.1.
Macae rfp af 101725
Replaced references to agent_framework with semantic_kernel in app_config.py and utils_kernel.py. Updated models in messages_kernel.py to use KernelBaseModel and Field from semantic_kernel.kernel_pydantic for consistency with the new package structure.
Macae rfp af 101725
Deleted the websocket_streaming.py module and removed the create_kernel method from AppConfig, as the system now uses Azure AI Agent Project pattern. Added placeholder files for messages_af.py and utils_af.py to support future Azure Foundry integration.
Introduces new Pydantic-based data models in messages_af.py to replace KernelBaseModel from semantic_kernel. All original model names and structures are preserved to support incremental migration from the previous framework.
Deleted src/backend/common/utils/check_deployments.py as it is no longer needed. This script was used to check Azure AI Foundry model deployments and their statuses.
Introduces the main FastAPI router for agent framework v3, including endpoints for team management, plan creation, approval, agent messaging, and configuration upload. Adds callback handlers for agent responses and streaming, global debug access, and service skeletons for agents, base API, foundry, MCP, and team management. These files establish the backend structure for multi-agent orchestration and extensible service integration.
Introduces common lifecycle management for agents, new agent configuration models, and refactors ProxyAgent and ReasoningAgentTemplate to use agent_framework primitives. Removes Semantic Kernel dependencies, adds Azure AI Search integration, and streamlines agent creation and invocation logic for improved maintainability and extensibility.
Updated import paths from 'v3' to 'af' for consistency and modularity. Improved error handling, logging, and tool/resource collection logic in FoundryAgentTemplate. Cleaned up unused Bing references and clarified code interpreter and MCP tool handling. These changes enhance maintainability and agent lifecycle management.
Changed imports from 'agent_framework.azure' to 'agent_framework_azure_ai' for AzureAIAgentClient in foundry_agent.py and reasoning_agent.py. Also removed an unused import in lifecycle.py to clean up dependencies.
Migrates orchestration logic and related services from semantic-kernel (v3) to agent_framework, updating imports, manager classes, and workflow construction. Updates HumanApprovalMagenticManager and OrchestrationManager to use agent_framework APIs, adapts callback handling, and ensures compatibility with new message and agent structures. Cleans up legacy code and improves maintainability for future agent_framework-based enhancements.
fix: Macae rfp af 101725
Deleted the entire v3 API router, callbacks, and common service modules including agent, base API, foundry, and MCP services, as well as related configuration, models, and orchestration files. This change removes the v3 backend implementation, likely in preparation for a major refactor or migration.
Renamed src/backend/app_kernel.py to src/backend/app.py. Updated import paths to reference 'af' modules instead of 'v3' and 'messages_af' instead of 'messages_kernel' to reflect new module structure.
Updated Dockerfiles, app.py, and tests to reference 'app' instead of 'app_kernel'. This change standardizes the application entry point and module imports, improving consistency across the backend codebase.
Macae rfp af 101725
Replaced references to deprecated Semantic Kernel and v3 modules with agent_framework (af) equivalents throughout backend, database, and test files. Removed obsolete messages_kernel and utils_kernel files, updated import paths, and fixed minor typos. Updated documentation and README to reflect new entry points and usage.
Replaced Semantic Kernel dependencies and terminology with agent_framework equivalents across backend modules, including response handlers, configuration, agent factories, orchestration, and utility functions. Updated imports, class names, comments, and logic to reflect agent_framework usage. Adjusted test files and MCP authentication to use agent_framework constructs. This refactor enables the system to operate with agent_framework as the core agent orchestration and messaging library.
Macae rfp af 101725
Deleted src/mcp_server/auth.py, which contained MCP authentication and HostedMCPTool setup logic for the employee onboarding system. This change may indicate a refactor, deprecation, or migration of authentication and plugin management functionality.
Reformatted code in human_approval_manager.py and orchestration_manager.py for better readability, including consistent indentation, line breaks, and argument formatting. No functional changes were made; this refactor aims to enhance maintainability and clarity.
Macae rfp af 101725
…ontract-v4 docs: Rai and doc image change rfp contract v4
Macae rfp agent framework
The /config endpoint no longer applies html.escape to BACKEND_API_URL and AUTH_ENABLED environment variables. This change ensures the values are returned as-is, which is more appropriate for non-HTML config data.
Remove HTML escaping from config environment variables
…compliance-dev-v4-1 docs: Scenario name change contract compliance dev v4 1
…tom-Automation-Engine-Solution-Accelerator into psl-bug28660-bug28659
fix: updated the index creation for rfp and contract compliance
fix: removed outer files
docs: Add required notice to transparency faq
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request migrates the codebase from version 3 (v3) to version 4 (v4), involving path updates, API endpoint changes, and dependency management.
Key Changes:
- Backend and test import paths updated from
v3tov4(oraffor agent framework) - Frontend API endpoints migrated from
/v3/to/v4/ - WebSocket paths updated to use v4 endpoints
- Frontend dependencies added to pyproject.toml and lock file generated
Reviewed changes
Copilot reviewed 118 out of 144 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
src/tests/mcp_server/conftest.py |
Updated MCP server path from v3 to v4 |
src/tests/agents/test_human_approval_manager.py |
Changed imports from v3 to af (agent framework) |
src/tests/agents/test_foundry_integration.py |
Updated imports and comments to reference v4 |
src/tests/agents/interactive_test_harness/*.py |
Updated imports from v3 to af namespace |
src/frontend/uv.lock |
Added comprehensive dependency lock file with package versions |
src/frontend/src/services/WebSocketService.tsx |
Updated socket paths to v4 and removed plan subscription methods |
src/frontend/src/services/TeamService.tsx |
Changed API endpoints from /v3/ to /v4/ |
src/frontend/src/pages/PlanPage.tsx |
Updated comments and added disconnect calls |
src/frontend/src/components/common/TeamSelector.tsx |
Added new RFP team to defaults |
src/frontend/src/api/apiService.tsx |
Updated all API endpoints to v4 |
src/frontend/pyproject.toml |
Added frontend dependencies |
src/frontend/frontend_server.py |
Removed HTML escaping and improved formatting |
src/mcp_server/README*.md |
Updated documentation paths from v3 to v4 |
src/mcp_server/auth.py |
File deleted (entire authentication module removed) |
src/backend/v4/**/__init__.py |
Added new v4 backend package structure |
Files not reviewed (1)
- src/frontend/package-lock.json: Language not supported
Comments suppressed due to low confidence (2)
src/tests/agents/test_foundry_integration.py:30
- Call to method SearchConfig.from_env with too few arguments; should be no fewer than 1.
src/backend/v4/magentic_agents/models/agent_models.py:68 - This assignment assigns a variable to itself.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| const defaultTeamIds = ['team-1', 'team-2', 'team-3','team-clm-1']; | ||
| const defaultTeamNames = ['Human Resources Team', 'Product Marketing Team', 'Retail Customer Success Team','RFP Team']; |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing spacing in the array formatting. The array should have consistent spacing around elements for better readability.
| backend_url = os.getenv("BACKEND_API_URL", "http://localhost:8000") | ||
| auth_enabled = os.getenv("AUTH_ENABLED", "false") |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed HTML escaping from configuration values that will be exposed in the API response. This could potentially lead to XSS vulnerabilities if these values are rendered directly in HTML without proper escaping on the client side. Ensure that the frontend properly sanitizes these values before rendering them in the DOM.
| const HomeInput: React.FC<HomeInputProps> = ({ selectedTeam }) => { | ||
| const [submitting, setSubmitting] = useState<boolean>(false); | ||
| const [input, setInput] = useState<string>(""); | ||
| const [raiError, setRAIError] = useState<RAIErrorData | null>(null); |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused variable raiError.
| static async deleteTeam(teamId: string): Promise<boolean> { | ||
| try { | ||
| const response = await apiClient.delete(`/v3/team_configs/${teamId}`); | ||
| const response = await apiClient.delete(`/v4/team_configs/${teamId}`); |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused variable response.
| # if self._agent and isinstance(self._agent, AzureAIAgentClient) and self._agent._should_delete_agent: | ||
| # try: | ||
| # if self.client and self._agent.agent_id: |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment appears to contain commented-out code.
| # Unregister from registry if present | ||
| try: | ||
| agent_registry.unregister_agent(self) | ||
| except Exception: |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'except' clause does nothing but pass and there is no explanatory comment.
| if self._agent and hasattr(self._agent, "close"): | ||
| try: | ||
| await self._agent.close() | ||
| except Exception: |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'except' clause does nothing but pass and there is no explanatory comment.
| # Unregister from registry | ||
| try: | ||
| agent_registry.unregister_agent(self) | ||
| except Exception: |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'except' clause does nothing but pass and there is no explanatory comment.
| if self.client: | ||
| try: | ||
| await self.client.close() | ||
| except Exception: |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'except' clause does nothing but pass and there is no explanatory comment.
| if self.creds: | ||
| try: | ||
| await self.creds.close() | ||
| except Exception: |
Copilot
AI
Dec 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'except' clause does nothing but pass and there is no explanatory comment.
Purpose
Does this introduce a breaking change?
How to Test
What to Check
Verify that the following are valid
Other Information