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:
@@ -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)
|
||||
|
||||
+3
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user