Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 24, 2025

SDK parity implementation for .NET PR #110. Adds support for managing agent settings templates by agent type and agent instance settings via the Agent 365 platform API.

New Package: microsoft-agents-a365-settings

Models

  • AgentSettingProperty - Setting with name, value, type, required flag, description
  • AgentSettingsTemplate - Template for an agent type
  • AgentSettings - Settings for a specific agent instance

Service

  • AgentSettingsServiceProtocol - Abstract interface
  • AgentSettingsService - Async implementation using httpx

API Endpoints

Method Endpoint
GET/PUT /agents/types/{agentType}/settings/template
GET/PUT /agents/{agentInstanceId}/settings

Configuration

  • MCP_PLATFORM_ENDPOINT - Override platform base URL
  • MCP_PLATFORM_AUTHENTICATION_SCOPE - Override auth scope

Usage

from microsoft_agents_a365.settings import (
    AgentSettingsService,
    AgentSettings,
    AgentSettingProperty,
)

async with AgentSettingsService() as service:
    # Get template
    template = await service.get_settings_template_by_agent_type("custom-agent", auth_token)

    # Set instance settings
    settings = AgentSettings(
        agent_instance_id="instance-123",
        properties=[
            AgentSettingProperty(name="maxRetries", value="3", type="integer", required=True)
        ],
    )
    await service.set_settings_by_agent_instance("instance-123", settings, auth_token)

Tests

28 unit tests covering models, service validation, and HTTP handling.


Closes #45

Original prompt

This section details on the original issue you should resolve

<issue_title>[SDK Parity] Python for PR 110</issue_title>
<issue_description>## SDK Parity Update Required

This issue was automatically created by the AI-First workflow to maintain SDK parity.

Source PR Information

Original PR: microsoft/Agent365-python#110 - Implement Agent Settings SDK for .NET [DO NOT Review, DO NOT Merge]
PR URL: microsoft/Agent365-dotnet#110
PR Author: @copilot

PR Description

Adds SDK support for managing agent settings templates by agent type and agent instance settings via the Agent 365 platform API.

New Package: Microsoft.Agents.A365.Settings

Models

  • AgentSettingsTemplate - Settings template for an agent type
  • AgentSettings - Settings for a specific agent instance
  • AgentSettingProperty - Individual setting with name, value, type, required flag, description

Service Interface

  • IAgentSettingsService - CRUD operations for templates and instance settings

API Endpoints

Method Endpoint Description
GET/PUT /agents/types/{agentType}/settings/template Template by agent type
GET/PUT /agents/{agentInstanceId}/settings Settings by instance

Usage

// Register via DI
services.AddHttpClient<IAgentSettingsService, AgentSettingsService>();

// Get template
var template = await settingsService.GetSettingsTemplateByAgentTypeAsync("custom-agent", authToken);

// Set instance settings
var settings = new AgentSettings
{
    AgentInstanceId = "instance-123",
    Properties = new List<AgentSettingProperty>
    {
        new() { Name = "maxRetries", Value = "3", Type = "integer", Required = true }
    }
};
await settingsService.SetSettingsByAgentInstanceAsync("instance-123", settings, authToken);

Configuration

  • MCP_PLATFORM_ENDPOINT - Override platform base URL (validated for proper URI format)

Tests

24 unit tests covering service methods, model serialization, and error handling.

Original prompt

Implementing the Agents Settings for .Net SDK.

See attached swagger file for more information on this API.

This currently API supports:

GET or SET agent setting template by agent type

GET or SET agent settings by agent instance.

https://github.com/user-attachments/files/23107469/swagger.json


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


Parity Task

Changes detected in: csharp SDK
Target SDK: Python (python/)

Action Required

Please apply the changes described in the original PR (#110) to the Python SDK to maintain feature parity across all SDKs.

Before implementing:

  • First, check if this feature already exists in the Python SDK
  • If the feature is already implemented, close this issue with the wontfix label and add a comment explaining that parity already exists

For bug fixes (IMPORTANT):

  • Bug fixes require extra caution - only act if the same bug exists in the Python SDK
  • Carefully analyze whether the bug described in the original PR replicates in the target platform
  • If the bug does NOT exist in the Python SDK, close this issue with the wontfix label and explain that the bug is not present
  • Stay strictly in context - only fix the specific bug described, do not make additional changes or improvements
  • Do not port bug fixes that are specific to the source SDK's language or platform constraints

When creating the PR for this implementation:

  • Assign the PR to @copilot (the author of the original PR)
  • Reference this issue in the PR description
  • Ensure the PR description explains what parity changes were made

Implementation Guidelines for Python

When implementing this feature in the Python SDK:

  • Review existing code in python/ to understand the codebase structure and patterns
  • Follow the coding style, naming conventions, and architectural patterns used in the Python SDK
  • Check for configuration files (e.g., pyproject.toml, .flake8, mypy.ini) that define coding standards
  • Ensure your implementation is consistent with existing SDK components
  • Include appropriate tests following the testing patterns in the Python SDK

Related Information


This is an automated issue. Please close with wontfix label if parity is not needed.</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


Parity Task

Changes detected in: csharp SDK
Target SDK: Python (python/)

Action Required

Please apply the changes described in the original PR (#110) to the Python SDK to maintain feature parity across all SDKs.

Before implementing:

  • First, check if this feature already exists in the Python SDK
  • If the feature is already implemented, close this issue with the wontfix label and add a comment explaining that parity already exists

For bug fixes (IMPORTANT):

  • Bug fixes require extra caution - only act if the same bug exists in the Python SDK
  • Carefully analyze whether the bug described in the original PR replicates in the target platform
  • If the bug does NOT exist in the Python SDK, close this issue with the wontfix label and explain that the bug is not present
  • Stay strictly in context - only fix the specific bug described, do not make additional changes or improvements
  • Do not port bug fixes that are specific to the source SDK's language or platform constraints

When creating the PR for this implementation:

  • Assign the PR to @copilot (the author of the original PR)
  • Reference this issue in the PR description
  • Ensure the PR description explains what parity changes were made

Implementation Guidelines for Python

When implementing this feature in the Python SDK:

  • Review existing code in python/ to understand the codebase structure and patterns
  • Follow the coding style, naming conventions, and architectural patterns used in the Python SDK
  • Check for configuration files (e.g., pyproject.toml, .flake8, mypy.ini) that define coding standards
  • Ensure your implementation is consistent with existing SDK components
  • Include appropriate tests following the testing patterns in the Python SDK

Related Information


This is an automated issue. Please close with wontfix label if parity is not needed.</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


Parity Task

Changes detected in: csharp SDK
Target SDK: Python (python/)

Action Required

Please apply the changes described in the original PR (#110) to the Python SDK to maintain feature parity across all SDKs.

Before implementing:

  • First, check if this feature already exists in the Python SDK
  • If the feature is already implemented, close this issue with the wontfix label and add a comment explaining that parity already exists

For bug fixes (IMPORTANT):

  • Bug fixes require extra caution - only act if the same bug exists in the Python SDK
  • Carefully analyze whether the bug described in the original PR replicates in the target platform
  • If the bug does NOT exist in the Python SDK, close this issue with the wontfix label and explain that the bug is not present
  • Stay strictly in context - only fix the specific bug described, do not make additional changes or improvements
  • Do not port bug fixes that are specific to the source SDK's language or platform constraints

When creating the PR for this implementation:

  • Assign the PR to @copilot (the author of the original PR)
  • Reference this issue in the PR description
  • Ensure the PR description explains what parity changes were made

Implementation Guidelines for Python

When implementing this feature in the Python SDK:

  • Review existing code in python/ to understand the codebase structure and patterns
  • Follow the coding style, naming conventions, and architectural patterns used in the Python SDK
  • Check for configuration files (e.g., pyproject.toml, .flake8, mypy.ini) that define coding standards
  • Ensure your implementation is consistent with existing SDK components
  • Include appropriate tests following the testing patterns in the Python SDK

Related Information


This is an automated issue. Please close with wontfix label if parity is not needed.</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


Parity Task

Changes detected in: csharp SDK
Target SDK: Python (python/)

Action Required

Please apply the changes described in the original PR (#110) to the Python SDK to maintain feature parity across all SDKs.

Before implementing:

  • First, check if this feature already exists in the Python SDK
  • If the feature is already implemented, close this issue with the wontfix label and add a comment explaining that parity already exists

For bug fixes (IMPORTANT):

  • Bug fixes require extra caution - only act if the same bug exists in the Python SDK
  • Carefully analyze whether the bug described in the original PR replicates in the target platform
  • If the bug does NOT exist in the Python SDK, close this issue with the wontfix label and explain that the bug is not present
  • Stay strictly in context - only fix the specific bug described, do not make additional changes or improvements
  • Do not port bug fixes that are specific to the source SDK's language or platform constraints

When creating the PR for this implementation:

  • Assign the PR to @copilot (the author of the original PR)
  • Reference this issue in the PR description
  • Ensure the PR description explains what parity changes were made

Implementation Guidelines for Python

When implementing this feature in the Python SDK:

  • Review existing code in python/ to understand the codebase structure and patterns
  • Follow the coding style, naming conventions, and architectural patterns used in the Python SDK
  • Check for configuration files (e.g., pyproject.toml, .flake8, mypy.ini) that define coding standards
  • Ensure your implementation is consistent with existing SDK components
  • Include appropriate tests following the testing patterns in the Python SDK

Related Information


This is an automated issue. Please close with wontfix label if parity is not needed.</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


Parity Task

Changes detected in: csharp SDK
Target SDK: Python (python/)

Action Required

Please apply the changes described in the original PR (#110) to the Python SDK to maintain feature parity across all SDKs.

Before implementing:

  • First, check if this feature already exists in the Python SDK
  • If the feature is already implemented, close this issue with the wontfix label and add a comment explaining that parity already exists

For bug fixes (IMPORTANT):

  • Bug fixes require extra caution - only act if the same bug exists in the Python SDK
  • Carefully analyze whether the bug described in the original PR replicates in the target platform
  • If the bug does NOT exist in the Python SDK, close this issue with the wontfix label and explain that the bug is not present
  • Stay strictly in context - only fix the specific bug described, do not make additional changes or improvements
  • Do not port bug fixes that are specific to the source SDK's language or platform constraints

When creating the PR for this implementation:

  • Assign the PR to @copilot (the author of the original PR)
  • Reference this issue in the PR description
  • Ensure the PR description explains what parity changes were made

Implementation Guidelines for Python

When implementing this feature in the Python SDK:

  • Review existing code in python/ to understand the codebase structure and patterns
  • Follow the coding style, naming conventions, and architectural patterns used in the Python SDK
  • Check for configuration files (e.g., pyproject.toml, .flake8, mypy.ini) that define coding standards
  • Ensure your implementation is consistent with existing SDK components
  • Include appropriate tests following the testing patterns in the Python SDK

Related Information


This is an automated issue. Please close with wontfix label if parity is not needed.</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Add Python SDK for managing agent settings Add microsoft-agents-a365-settings package for Python SDK parity Nov 24, 2025
Copilot AI requested a review from sergioescalera November 24, 2025 23:00
@sergioescalera sergioescalera changed the title Add microsoft-agents-a365-settings package for Python SDK parity Add microsoft-agents-a365-settings package for Python SDK parity [DO NOT review] [DO NOT merge] Nov 24, 2025
@sergioescalera
Copy link

🔄 Original PR Updated

@copilot The original PR microsoft/Agent365-dotnet#110 has been updated with new commits.

Action Required:
Please review the updated PR and ensure this parity implementation includes all relevant changes:

  1. 📖 Review the latest changes: https://github.com/microsoft/Agent365-dotnet/pull/110/commits
  2. 🔍 Check for new features or fixes: Look for additions that need to be ported
  3. ✏️ Update this PR if needed: Add any missing functionality to maintain parity
  4. Verify completeness: Ensure all changes from the original PR are reflected here

Original PR Details:

Note: This is an automated notification triggered by new commits. If the changes are not relevant to this parity task, you can ignore this message.


Automated by AI-First Workflow

@sergioescalera
Copy link

🔄 Additional Changes Detected

New commits have been pushed to the original PR #110.

Action Required:


Automated by AI-First Workflow v2

@sergioescalera
Copy link

🔄 Additional Changes Detected

New commits have been pushed to the original PR #110.

Action Required:


Automated by AI-First Workflow

@sergioescalera
Copy link

🤖 Auto-Assignment

This PR is part of a parity chain that started with a Copilot-generated PR.

Human reviewers from the original PR have been added: @sergioescalera

Reason: This is a parity implementation for issue #72, which was triggered by Copilot's PR #110.

Next Steps:

  • Reviewers: Please review this implementation to ensure it maintains parity
  • Validate the parity changes are correct and complete
  • Approve and merge when satisfied

Automated by AI-First Workflow

@sergioescalera
Copy link

🔄 Additional Changes Detected

New commits have been pushed to the original PR #110.

Action Required:


Automated by AI-First Workflow

@sergioescalera
Copy link

🤖 Auto-Assignment

This PR is part of a parity chain that started with a Copilot-generated PR.

Human reviewers from the original PR have been added: @sergioescalera

Reason: This is a parity implementation for issue #72, which was triggered by Copilot's PR #110.

Next Steps:

  • Reviewers: Please review this implementation to ensure it maintains parity
  • Validate the parity changes are correct and complete
  • Approve and merge when satisfied

Automated by AI-First Workflow

@sergioescalera
Copy link

🔄 Additional Changes Detected

New commits have been pushed to the original PR #110.

Action Required:


Automated by AI-First Workflow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[SDK Parity] Python for PR 110

2 participants