Python: fix CopilotStudioAgent LineTooLong on large activities (#7417)

* Python: fix CopilotStudioAgent LineTooLong on large activities

Bump microsoft-agents-copilotstudio-client to >=1.2.0,<2 and forward a configurable read_bufsize (default 1 MiB) to the underlying aiohttp ClientSession via ConnectionSettings.client_session_settings. Copilot Studio streams each activity as a single SSE data line, so activities larger than aiohttp's 512 KB per-line limit previously raised aiohttp.http_exceptions.LineTooLong. Adds a client_session_settings parameter to CopilotStudioAgent and unit tests covering the default, override, and partial-settings cases.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2766dc09-ab5f-4adc-8627-98361d7ccef0

* Python: apply read_bufsize default to supplied CopilotStudio settings

Address review feedback on the LineTooLong fix: when a user supplies their own ConnectionSettings but no client, inject the read_bufsize default so activities larger than aiohttp's 512 KB per-line limit still stream. Document configuring read_bufsize on the explicit pre-built-client path in the package and sample READMEs and the explicit-settings sample. Add unit tests covering the supplied-settings path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2766dc09-ab5f-4adc-8627-98361d7ccef0

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2766dc09-ab5f-4adc-8627-98361d7ccef0
This commit is contained in:
Giles Odigwe
2026-08-06 20:08:06 -07:00
committed by GitHub
parent b2a2fcbd87
commit 45c515b8a7
7 changed files with 101 additions and 16 deletions
@@ -78,7 +78,10 @@ settings = ConnectionSettings(
agent_identifier="your-agent-schema-name",
cloud=PowerPlatformCloud.PROD,
copilot_agent_type=AgentType.PUBLISHED,
custom_power_platform_cloud=None
custom_power_platform_cloud=None,
# Raise aiohttp's per-line buffer above the 512 KB default so large Copilot Studio
# activities (for example, sizeable connector payloads) don't raise LineTooLong.
client_session_settings={"read_bufsize": 1024 * 1024},
)
client = CopilotClient(settings=settings, token=token)
@@ -58,6 +58,9 @@ async def example_with_connection_settings() -> None:
cloud=PowerPlatformCloud.PROD, # Or PowerPlatformCloud.GOV, PowerPlatformCloud.HIGH, etc.
copilot_agent_type=AgentType.PUBLISHED, # Or AgentType.PREBUILT
custom_power_platform_cloud=None, # Optional: for custom cloud endpoints
# Raise aiohttp's per-line buffer above the 512 KB default so large Copilot Studio
# activities (for example, sizeable connector payloads) don't raise LineTooLong.
client_session_settings={"read_bufsize": 1024 * 1024},
)
# Create CopilotClient with explicit settings