ai agents
32 TopicsCopilot Studio agents problems connecting to Sharepoint knowledge source
Hello, Since last week users in my tenant are experimenting issues regarding the connection between copilot studio agents and Sharepoint. The agents are not able to extract information from Sharepoint sites, printing there is not information in the Sharepoint site regarding the user's question when that information is in Sharepoint. These agents used to work well till last week. Does have been any update in Microsoft 365 services that can be affecting these agents ability to retrieve information from Sharepoint?946Views1like16CommentsWhat is the best file format for an AI agent knowledge base?
This is a best practice sharing the best format for an agent and show you why you should convert your PPT, PDF, WORD into a TXT markdown. I had an issue with my agent, time taken to answer was too long, and usually we spend a lot of time asking: What is the best prompt? Why is my agent slow? Why does retrieval sometimes work and sometimes fail? How can I improve answer quality? But I realised I was asking another question much less often: What is actually the best file format for the knowledge base? PDF? Raw text? Markdown? Pre-chunked text? Semantic sections? Context-enriched text? And more importantly: How much does the format alone affect agent performance? I tried to find a quantified benchmark answering this specific question, with the same agent, same source knowledge and same questions, but different knowledge representations. I couldn't find one that really answered what I wanted to measure. So I decided to run the experiment myself on a real case. My first exploratory tests were already surprising: depending on the representation, the agent could be significantly faster and more accurate, despite working from the exact same source information. So I decided to push the test further. My objective I want to identify, without assumptions and based on actual evaluation data, how a long document should be prepared for an LLM knowledge base so that the agent can retrieve, understand, ground and answer from it as reliably as possible. I focused on five dimensions: Answer quality Retrieval reliability Source grounding / citations Execution time Robustness across single-turn and multi-turn questions The broader question I'm trying to answer is: How should we structure knowledge so that an LLM can retrieve and use it as reliably as possible? The test case I deliberately chose a document that isn't particularly friendly for RAG: a 46-page European regulation, https://eur-lex.europa.eu/eli/reg/2011/1169/oj?locale=fr, on the provision of food information to consumers. The information is distributed across articles, definitions, exceptions, annexes, tables, numerical thresholds and cross-references. That makes it useful for testing retrieval: answering correctly often requires finding a very specific piece of information while preserving enough context to understand how it applies. I used the native PDF as the baseline and created 6 additional knowledge-base representations of the same document: Raw TXT Markdown Chunk-ready TXT RAG-oriented units Semantic TXT Contextual TXT One rule: same knowledge, same agent, same instructions, same questions. Only the knowledge representation changes. The benchmark I used two evaluation sets: 42 single-turn questions testing broad coverage of the document: direct facts, thresholds, exceptions, annexes, lists and cross-references. 5 multi-turn conversations containing 13 questions, to see what happens when a user asks a question and then follows up with things like: "And in this case?" "What are the exceptions?" "And for dietary fibre?" This gave me: 47 evaluated test cases / 55 actual questions per format Across all 7 formats: 329 evaluated conversations 385 user questions executed First results Metric Native PDF Best structured representation Overall pass rate 66.0% 85.1% - Contextual TXT Best single-turn score 69.0% 88.1% - Chunk-ready TXT Multi-turn benchmark 40% 80% - Contextual TXT Multi-turn execution time 14m24 5m54 Total benchmark time 44m31 24m49 The quality gap was already substantial: 66.0% → 85.1% That's +19.1 percentage points while keeping the underlying knowledge unchanged. I also saw a major difference in execution time. On the multi-turn test: 14m24 → 5m54 That's approximately 2.4× faster. Across the complete benchmark: 44m31 → 24m49 Around 44% less execution time. These timings represent the complete agent evaluation pipeline, so they shouldn't be interpreted as pure LLM inference latency. But the difference under identical test conditions is large enough that I want to understand it better. Findings There wasn't one format dominating every benchmark. Chunk-ready TXT scored highest on independent questions: 88.1%, while Contextual TXT performed better across multi-turn conversations and finished with the highest overall score. That may suggest that the way we optimise a document for isolated retrieval isn't exactly the same as the way we should prepare it for conversational retrieval. In the contextual version, I tried to make every section understandable when retrieved independently by keeping useful information around it: Source references Section context Retrieval cues Relevant cross-references For regulatory documents, this seems particularly important. A numerical value retrieved alone can be meaningless without knowing which rule it belongs to, under which conditions it applies, and whether another article contains an exception. Where I am now This remains an exploratory benchmark: One document One domain One agent setup One evaluation framework One run per configuration There are plenty of things I still want to test: repeated runs, retrieval-level evaluation, token consumption, larger knowledge bases, other document types, chunk sizes, overlap, contextual headers, and more. But these first results already convinced me that the preparation of the knowledge base deserves much more attention when evaluating an agent. We often spend hours refining instructions while the same information may behave very differently depending on how it reaches the retrieval layer. Next step I'll share the prompts, knowledge-base formats and evaluation methodology on GitHub so the experiment can be reproduced and challenged. I'll keep enriching the repository as I test new formats, improve the evaluation set and add new results. If people here have ideas, edge cases or formats worth testing, I'd genuinely like to include some of them in the next iteration. What would you test next?82Views0likes1CommentUpdate: Root Cause Identified
Hi everyone, I would like to share the root cause and solution in case someone else encounters the same issue. The Problem I created several agent flows directly in Power Automate using: https://make.powerautomate.com The flows were configured correctly: The flow starts with When an agent calls the flow The flow ends with Respond to the agent The flow and agent are in the same environment The flow is included in a solution The flow is published and fully functional The flows could be added to an agent and executed successfully. However, unlike flows created directly from Copilot Studio, they did not appear in the Global Tools directory. What I Investigated I verified: Trigger configuration Respond to the agent action Environment consistency Solution membership Publish all customizations Asynchronous response settings Synchronization delays between Power Automate and Copilot Studio None of these were the root cause. Root Cause The issue was related to the workflow Plan. I discovered that: Flows created directly in Power Automate were assigned: Plan = The user running the flow Flows created directly in Copilot Studio were assigned: Plan = Copilot Studio Although the Power Automate flow was fully functional and could be used by the agent, it was not visible in the Global Tools directory. Solution After changing the workflow Plan to: Plan = Copilot Studio the flow immediately appeared in the Global Tools directory. Configuration Location The setting can be found in the workflow properties under: Primary owner → Plan Important Note Based on my testing, changing the Plan to Copilot Studio appears to be a one-way operation and may not be reversible. It may be a good idea to export or save the flow before making the change. Acknowledgements Special thanks to sohnash for reproducing the scenario and providing troubleshooting suggestions, and to Patty_Velasquez for sharing similar observations that helped confirm the behavior. Hopefully this helps others who encounter the same issue. Best regards, Adhonaï KOUKA28Views1like0CommentsCopilot Studio: “Get file content using path” fails for table-heavy DOCX files
Hi everyone, I'm investigating an issue with a Copilot Studio Standard Harness agent and would like to know whether others have encountered similar behavior. Scenario I have configured a tool in my agent using: Get file content using path The document is stored in my own OneDrive/SharePoint location and I have full access to it. This is not a chat file upload scenario and not a knowledge source indexing scenario. The agent is retrieving the document through a configured tool action. Behavior Observed Case 1 - Works The Word document contains approximately: ~4.1K words ~20 tables The agent successfully: Finds the file Retrieves the file Reads the content Generates a summary Case 2 - Fails I increase the document slightly: ~4.2K words More tables added The agent now returns a message similar to: The file was retrieved, but its content could not be converted to text. The response still indicates that: File found File retrieved Text extraction/conversion failed Important Observation Initially I thought this might be a word-count limitation, but additional testing suggests otherwise. I tested another document containing: More than 4.3K words Very few or no tables The agent processed that file successfully and generated a correct summary. Because of this, the issue appears to be related more to table-heavy DOCX content than to the total number of words. What Has Been Ruled Out The following do not appear to be the cause: File path issues Permissions/access issues File not found issues Connector authentication issues Large file size issues Chat file upload limitations Knowledge source indexing limitations The same tool and same retrieval approach continue working until the document becomes more table-heavy. Questions Has anyone experienced similar behavior with Get file content using path in Copilot Studio? Does Copilot Studio Standard Harness perform an internal DOCX-to-text conversion step after retrieving the file? Are there known limitations around processing Word documents that contain a large number of tables? Has anyone identified practical thresholds around table count, table complexity, or table-heavy technical documents? Is there a recommended workaround besides splitting the document into smaller files? Any insights, similar experiences, or Microsoft guidance would be greatly appreciated. Thanks!96Views0likes1CommentUnanswered Questions on GitHub Copilot Harness in Copilot Studio
We're piloting the GitHub Copilot harness in Copilot Studio (GA August 2026) and several operational and architectural details remain undocumented in the GA FAQ, Microsoft Learn, or licensing guides. Looking for official answers or PM contacts on: Architecture & Execution – When the harness breaks tasks into subtasks, does it use internal sub-agents or only skills/connected agents, what are the exact timeout/retry/max-execution-duration limits for long-running workflows, and are planning/context-retrieval/orchestration internals documented anywhere or is the orchestrator a black box? Model Selection – Can individual skills within one agent use different models or is selection strictly agent-level, how are models chosen internally when multiple skills execute, are any internal models developer-configurable, and what's the roadmap for models being added/retired/deprecated plus the lag between public release and Copilot Studio availability? Cost & Token Optimization – How exactly is the ~45% token reduction achieved, how much control do makers have over context/caching/retrieval/tool calls, what are per-model credit consumption characteristics, which models are most cost-effective for specific workloads, and what's the minimum credit cost for trivial interactions? Memory Management – What are retention periods for session/working/agent memory beyond the documented 28-day user-memory expiry, is true long-term memory supported, and what changed versus earlier implementations? Knowledge Retrieval – Can skills or system instructions influence retrieval strategy/document selection/prioritization/filtering, can planning stages perform conflict/duplicate/version detection before retrieval, and how does the harness decide which sources to search? Apps Feature – What is the "Apps (preview)" capability for, when does it GA, and how does it differ from workflows/skills/adaptive cards/agents? Billing & Credit Sizing – Is there a framework to classify users/agents by expected consumption and size credit allocation per group (citizen vs pro developers), and what's the minimum/typical consumption for simple/medium/heavy interactions? Governance & Admin – Can usage limits be set at user level (not just environment/agent), is there an API/IaC path for large-scale credit assignment, can non-admins view their own consumption/remaining allocation, and is there a self-service request-more-credits dashboard? ALM & Environments – What's the recommended path to move harness agents across Dev/Test/UAT/Prod (Solutions/ALM "setup differs" per parity chart—how?), does GitHub integration replace or complement solution-based deployment, are there recommended AgentOps practices for source control/releases/versioning, and what baseline credits and onboarding model are suggested for citizen developers under usage billing—any enterprise reference implementations?99Views0likes0CommentsAll Copilot Studio Workflow Tools Suddenly Returning HTTP 403 Before Execution
Hello Copilot Studio Community, I am experiencing an authorization issue with multiple workflows connected to an agent built using the Copilot Studio new experience and new Workflows experience. These workflows worked successfully for multiple users yesterday. Today, all workflow tools connected to the agent began returning an immediate HTTP 403 authorization error. I did not intentionally change the agent, workflows, environment, or workflow permissions before the issue started. Error message: You don’t have permission to use this tool. You’re signed in, but access to this resource is blocked. Error details: Authorization - 403 Example error information: Status: Failed Error message: Flow returned HTTP 403 Error code: Http403 Inner error code: NotSpecified Tool duration: Approximately 93 milliseconds Configuration: - Copilot Studio new agent experience - Copilot Studio new Workflows experience - Agent and workflows are in the same Power Platform environment - Workflows use the "When an agent calls the workflow" trigger - Each workflow includes a "Respond to the agent" action - Workflows are saved and published - Agent is saved and published Observed behavior: The problem affects several independent workflows, including: - New-request submission - Current-user identity resolution - Approval decisions - Requester justification - Executive decisions - Fulfillment updates For every affected workflow: - The agent fills the workflow inputs correctly. - The tool call fails almost immediately. - No corresponding run appears in the workflow Activity history. - The workflow trigger is never reached. - No workflow actions execute. Because no workflow run is created, the rejection appears to occur before workflow execution, possibly within the Copilot Studio agent-to-workflow authorization or invocation layer. Troubleshooting already completed: - Confirmed that all workflows are published. - Confirmed that the agent is published. - Tested in a completely new conversation. - Removed an affected workflow tool from the agent. - Saved the agent. - Added the same published workflow back to the agent. - Reconfigured and verified the tool inputs. - Republished the agent. - Confirmed that no workflow Activity run is created. - Confirmed that the issue affects multiple workflows rather than one specific workflow. Removing and re-adding the workflow did not resolve the problem. Questions for the community: 1. Is anyone else currently experiencing HTTP 403 errors when Copilot Studio agents invoke workflows? 2. Is this a known issue or regression in the new Workflows experience? 3. Is there an environment-level or tenant-level permission that controls agent-to-workflow invocation? 4. Could a tenant policy, Conditional Access change, service principal, connection reference, or workflow-sharing configuration cause all workflow tools to fail simultaneously? 5. Where can an administrator find detailed authorization logs when the workflow never creates a run? 6. Has anyone found a workaround for this issue? Any guidance or confirmation from others experiencing the same behavior would be appreciated. I can provide screenshots, complete error details, timestamps, and additional configuration information if needed. Thank you.179Views3likes3CommentsPattern for governing Copilot Studio agents before they reach production
I keep seeing the same gap across Copilot Studio deployments: agents get built and shared before anyone has answered three basic governance questions. Before I call an agent production-ready, I check: -> Who's the sponsor? Not just who built it, who's accountable for it existing. -> What's it grounded on, and who can actually read that data? A knowledge source that's technically "in scope" isn't the same as verified content people should be answering from. -> Is there an audit trail for what the agent said and to whom, if someone asks later? None of this shows up in a demo. It only shows up a few months in, when the agent's still running and nobody remembers why. I wrote a longer breakdown of this governance model, including how Microsoft Agent 365 fits into it, here: https://jpmarquez.com/blog/microsoft-agent-365-licensing-what-you-actually-buy/ Curious what pattern others are using here, especially for the sponsor/ownership question, since that's the one I see skipped most.66Views0likes0CommentsLooking for ideas: Reducing "Allow" prompts when using SharePoint Knowledge
Hello community members! I'm hoping to get some advice from people who may have come across a similar challenge with their Copilot Studio "SharePoint knowledge retrieval" agents 🤞 Current setup Agent set up in Copilot Studio and published to channels - M365 Copilot and Teams Agent is connected to 4 SharePoint folders (I'm using Method#1 - see below screenshot for reference). This is essential because the documents inside the folders contain both text and image-based content. This is the only method that brings results Users have permissions to access the content in these folders Problem We are currently preparing to roll out this agent but we've hit a user experience issue that is becoming a blocker for moving forward. When a user interacts with the agent for the first time, they are asked to click "Allow" ... 4 times .. one for each of the folder that the agent is connected to This experience feels heavy for users (based on our pilot feedback) and people give up after the first or second time because they think it is not working. In spite of comms and a video about having to repeat this action until done. We want the first time experience to be as smooth as possible to drive adoption. Also, we are going to expand the solution to include more folders soon - so there is also a concern that number of consent prompts could grow further. What I've tried Used Method#2 to connect to SharePoint folders. While this didn't pop up the "Allow" prompts, as indicated earlier, this approach doesn't work because it doesn't return any results from documents as they contain both text and image content. Tried Method#1 to connect to the library (and use instructions to indicate necessary folders) - this didn't work because the method doesn't allow to connect to libraries. Note - I cannot restructure the library and put all the documents into one folder because that's the way the documents have been maintained for a long time & direct links to the folders are being used across the organization via. emails, decks etc. Looking for advice Has anyone found a way to reduce or eliminate these consent prompts? Are there any other recommendations on using SharePoint as a knowledge source that respects user permissions without these consent prompts? Does anyone know why Method#1 and Method#2 have different user experiences where the first one prompts for consent and the second doesn't?60Views1like0CommentsSaving a Model Generated File in SharePoint - New Copilot Studio
Hi everyone, I have spent the last two days trying to solve a problem that to me should be a straightforward functionality. I have an agent I made which generates Word file reports. The agent is Cluade Opus 4.8 and it generates the file wonderfully as per my brand guidelines. The document in not a simple content file. Rather these documents can get complex based on the user requirement. Currently the document generates fine and the user gets a popup to download the file. I however need the file to be saved in our share SharePoint library. I created a workflow tool that accepts a file input and then saves it to SharePoint, however when I tried to configure this tool in the agent, the file input parameter was not showing. I then tried to set up a workflow which accepts a url, but the agent cannot seem to access any url or pass it to my workflow. Using a create file tool within the agent and having the agent fill in the file name and content parameters was slow, and the agent was actually attempting to rewrite the file byte-by-byte which lead to the file being re-created and is not scalable for large files. Based on the agent, this is how the file is currently saved: "The file is saved inside my sandboxed container at: /app/created/Sample_Report.docx /app/created/ is a special output directory: any file I place there is automatically packaged by the platform and returned to you as the chat attachment (the Sample_Report.docx chip you see). This is a private, ephemeral location inside my container — it is not a shared network path, and it is not the SharePoint library. Neither you nor the SharePoint tool can reach /app/created/ directly; the platform's attachment mechanism is the only bridge out of it, and as we established, that bridge delivers a direct download rather than a hosted HTTPS URL. So to be precise: the file exists only (a) here in my container at /app/created/Sample_Report.docx, and (b) as the downloadable attachment the platform generated from it. It has not been saved to SharePoint." I need this functionality working as I will have several automations flows around report generation so no human will be available to download the file from within Copilot. Note: I cannot use the old copilot studio as the file generation capabilities are not on par with the new copilot studio experience. The same agent model does not output files, and the create word file node does not output files at the depth and formatting complexity I require. Can anyone please help with a reliable way to get the file save in SharePoint from the New Copilot Studio experience? I'm at my wits end here.Solved160Views0likes1CommentFix: Hyperlinks render as plain text in Copilot app (but work in the test pane in Copilot Studio)
My use case SharePoint knowledge-retrieval agent built in Copilot Studio to answer employee questions from internal policy and guidance documents. These documents, in addition to text content, contain embedded hyperlinks to internal apps and resources (intranet pages, expense app, ticketing tools etc.). It was important for these links to be surfaced in the agent response so employees can directly follow the link - so they needed to be clickable hyperlinks, otherwise the answer was effectively incomplete. Note that I am not using specific topics/actions to create generative answers. I'm relying solely on instructions. The problem Hyperlinks from the source documents appeared as clickable links in Copilot Studio test pane, but when the same agent was published and accessed via the M365 Copilot app, the links were displayed as plain text - not clickable. My original instructions told the agent to include hyperlinks in content & I also verified that the hyperlinks in the source documents were all absolute URLs. 🙌 What changes finally worked Keeping the original "include links" directive and adding a strict formatting rule that requires both Markdown formatting and an HTML <a> tag wrapper, with the URL preserved exactly. The final instruction lines I included: If hyperlinks are contained within the source content and related to the answer, ALWAYS include them in the response. ALWAYS format the link as full Markdown and preserve the URLs exactly within an HTML <a> tag. What was the problem Copilot Studio is a forgiving renderer. M365 Copilot app uses a stricter markdown rendered that can supress hyperlinks that don't come be default in the format it expects. Hence, including an explicit hyperlink formatting in the instructions helps. I hope this helps someone and saves a few hours in troubleshooting the issue 😉123Views2likes1Comment