Category: Artificial Intelligence in Business

  • Microsoft Shipped a Dataverse Plugin for Coding Agents and This Fixes the Hallucination Problem

    Microsoft Shipped a Dataverse Plugin for Coding Agents and This Fixes the Hallucination Problem

    Dataverse plugin coding agents architecture diagram

    On June 4, Microsoft announced the Dataverse plugin for coding agents as a companion to their Build 2026 session. The pitch is simple. Coding agents are powerful, but without domain tooling they hallucinate and produce broken solutions. The Dataverse plugin for coding agents gives GitHub Copilot, Claude Code, and other agents guardrailed access to tables, columns, relationships, views, security roles, and solutions.

    I have been waiting for this one. Every time I let a coding agent touch a Power Platform solution, I spent half the session correcting hallucinated table names, fake column logical names, and FetchXML that referenced relationships that do not exist. This is the missing context layer.

    What it actually does

    The plugin exposes Dataverse as a tool surface that coding agents can call directly. Instead of the agent guessing what your account table looks like in your environment, it queries the actual metadata. Tables, columns with their real logical names, relationships, option sets, views, security roles, and solution boundaries. All grounded in the environment you point it at.

    It also handles writes through the same guardrailed path. The agent can scaffold a new table, add columns, set up a relationship, or modify a view, but it does it through the Dataverse API with proper solution awareness, not by generating XML files and hoping the import does not blow up. Solution context matters here. The plugin respects which solution you are working in, so the agent is not silently dropping unmanaged customizations into the default solution.

    The trade-off is permissions. The agent runs with the credentials you give it, which means scoping matters. You do not want a coding agent with System Administrator on a production environment. A dedicated app user with a least-privilege role on a dev environment is the sane setup.

    Why the Dataverse plugin for coding agents matters

    I have been saying for months that the hardest part of agent work is not the model, it is the context. Microsoft Just Shipped Business Skills in Dataverse and This Is How You Teach Agents Your Org fixed this for runtime agents. This fixes it for build-time agents.

    Think about what coding agents were doing before this. You ask Claude or Copilot to write a plugin against the contact table. It writes confident C# that references new_customerstatus as a column. That column does not exist in your environment. It exists in a tutorial the model saw during training. You compile, deploy, fail, debug, fix, repeat. The agent was fast at producing wrong code.

    With the plugin wired in, the agent reads your actual schema first. The generated code references real columns. FetchXML targets relationships that exist. Security role assignments use role IDs that resolve. The output goes from speculative to diffable.

    This is the same architectural shift the Power Pages agentic coding tools made. Ground the agent in the environment, then let it generate. The grounding is what turns these tools from impressive demos into something a pro dev team can commit to in CI.

    One more thing. This is explicitly a pro dev tool. It is not for citizen devs. The audience is the team writing plugins, custom APIs, PCF controls, and complex flows where hallucinated metadata costs hours. If your shop is doing solution-aware Power Platform work in source control, this changes the daily loop.

    What I would do with it this week

    I would spin up a sandbox environment with a copy of one of our more complex solutions. Maybe twenty tables, a handful of plugins, a few custom APIs. Wire the plugin into a coding agent against that environment with an app user scoped to a non-destructive role.

    Then I would run three tests. First, ask the agent to generate a plugin that does something the existing code already does, and diff the output against the real code. That tells me how close the grounded output gets. Second, ask it to extend an existing entity with new logic and check whether it picks the right solution context. Third, ask it to write FetchXML against a relationship chain three hops deep, because that is where hallucination used to be the worst.

    If those three pass, the next step is figuring out where this fits in the actual development workflow. Local agent runs for scaffolding, reviewed PRs into source control, normal pipeline deploys. The plugin does not change the deployment story. It changes what shows up in the PR. If you want to see how Microsoft has been building toward this foundation, the Microsoft Build 2026 Fabric and Azure Databases session makes the data-first direction clear.

    The Dataverse plugin for coding agents is the kind of release that is boring on the surface and quietly reshapes how a team builds. Read the Power Platform docs on it, scope an app user, and start testing this week. I will be writing more about what I find on LinkedIn as I push it through real workloads.

    The grounding layer for build-time agents has arrived. Now the work is wiring it into how teams actually ship.

    Source: Microsoft Dataverse Plugin: Unleashing Coding Agents on the Enterprise – Microsoft Build 2026 (Microsoft Power Platform Blog).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn

  • Power Platform June 2026 Update Shipped and the Power Apps MCP Server Closed-Loop Learning Is the Headline

    Power Platform June 2026 Update Shipped and the Power Apps MCP Server Closed-Loop Learning Is the Headline

    Power Platform June 2026 update MCP server closed-loop learning diagram

    The Power Platform June 2026 update MCP server announcement dropped on June 11 and the headline for me is not the usual feature list. It is the Power Apps MCP server and what Microsoft is calling closed-loop learning for enterprise agents. Source: What’s new in Power Platform: June 2026 feature update.

    I read the post twice. The first read I filed it under “another MCP integration.” The second read I realised what they actually shipped. Agents can now learn from real usage signals inside Power Apps without you standing up a data science team to run training and evaluation cycles. That is a different category of thing.

    What it actually does

    The Power Apps MCP server exposes app context, user actions, and outcomes to an agent as structured signals. Until now, teaching an agent how your org works meant one of two paths. Either you fed it knowledge as documents and custom instructions, which is what most teams are doing today. Or you ran your own training, evaluation, and optimization loop, which almost nobody outside the big AI shops actually does.

    Closed-loop learning sits in between. The agent observes what happens when a user takes its suggestion. Did the form get submitted. Did the approval get reversed two days later. Did the user override the recommendation. Those signals flow back through the MCP server and the agent’s behavior adjusts based on whether its suggestions actually worked.

    The mechanism is the interesting part. It is not fine-tuning the underlying model. It is updating the agent’s grounding and skill selection based on outcome data that lives in Dataverse. Combine this with the business skills work Microsoft shipped earlier and the picture gets clearer. Skills are the policy layer. MCP server signals are the feedback layer.

    Why it matters

    Here is the architectural shift I think the release notes underplay. Agent knowledge stops being a build-time artifact and starts becoming a runtime asset.

    Most agents I see today are frozen at deploy time. You write the instructions, attach the knowledge sources, ship it, and then it just sits there making the same mistakes for six months until someone files a complaint and a developer goes in to patch the prompt. That is the model we have been stuck with since Copilot Studio launched.

    Closed-loop learning breaks that pattern. If the signal pipeline works the way the post describes, an agent that recommends the wrong approver three times in a row will stop doing that without anyone editing a prompt. The policy still lives in a business skill with a named owner. The behavior tunes itself based on what actually worked.

    The risk is obvious and I want to name it. If you wire usage signals into agent learning without thinking about which signals count, you end up reinforcing the wrong behavior. A user clicking accept because they are tired is not the same signal as a user clicking accept because the suggestion was right. The MCP server gives you the plumbing. Picking the right outcome signals is still your job, and I expect the first wave of failures to come from teams treating every user action as positive feedback.

    I also want to flag the governance angle. The Power Platform May 2026 update made me start thinking about agent constraints as versioned records. Runtime learning means version history now has to cover learned behavior too, not just authored skills. That is a real audit question and Microsoft has not fully answered it yet.

    What I would do with it this week

    I have an internal approval-routing workflow that I have been wanting to test something like this on. The agent currently picks an approver based on a static skill, and it gets the routing wrong roughly one in six times because the org chart does not reflect who actually owns what.

    My plan for this week is simple. Wire the Power Apps MCP server to that app. Define two outcome signals. First, did the selected approver actually approve within 48 hours, or did they reassign. Second, did the requester come back and edit the routing manually after submission. Anything else I am ignoring on purpose, because I want a clean signal before I open the door wider.

    Then I let it run for two weeks and compare the routing accuracy against the static baseline. If the closed loop moves the needle even five points on a workflow this messy, I will be writing about it. If it does not, I want to understand why before I trust it on anything that matters. If you are thinking about how to expose this kind of agent behavior through a proper UI layer, the guide on building custom Copilot UI widgets in Power Apps is worth reading alongside this.

    The Power Platform docs will need to catch up on the MCP server specifics, and I expect the configuration story to get cleaner over the next few releases. For now, this is the most interesting thing shipped this month and I cannot wait to see what the signal quality looks like in a real workflow. More on this once I have run the experiment. You can follow along on LinkedIn if you want the results.

    Source: What’s new in Power Platform: June 2026 feature update (Microsoft Power Platform Blog).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn

  • Anthropic Dropped Claude Fable 5 Mythos 5 and the Long-Form Narrative Angle Is What Caught Me

    Anthropic Dropped Claude Fable 5 Mythos 5 and the Long-Form Narrative Angle Is What Caught Me

    Claude Fable 5 Mythos 5 release announcement for long-form narrative work

    Anthropic just shipped the Claude Fable 5 Mythos 5 release, a variant tuned specifically for long-form narrative and worldbuilding. You can read the announcement on the Anthropic news page. This is not a flagship capability bump. It is another specialized lineup entry, and the pattern is what caught my attention.

    Finance Agents. Creative. Now Fable and Mythos. Anthropic is not just shipping bigger models. They are shipping shaped ones.

    What it actually does

    Fable 5 Mythos 5 is a Claude variant tuned for long-form fiction, worldbuilding, and narrative consistency. The headline improvements are in three areas.

    First, long-context coherence. Holding a character voice, world rules, and plot threads across tens of thousands of tokens without drift is the actual hard problem in long-form generation. The model is tuned to keep internal consistency, names spelled the same way, magic systems that do not contradict themselves three chapters later, characters that do not forget what they did in chapter two.

    Second, persona stability. Once you give it a narrator voice or a character voice, it holds it. Most general-purpose models start regressing toward a neutral helpful tone after a few thousand tokens. This one is trained to resist that pull.

    Third, structural awareness. It understands scenes, beats, chapter structure, and pacing in a way that is closer to how writers actually think about their work, not as a flat stream of tokens.

    This is not a model for code. It is not a model for tool use. It is a model for people who write novels, run tabletop campaigns, or build interactive narrative experiences.

    Why it matters even if you are not writing fiction

    I am not writing a fantasy novel this week. Most people reading this are not either. So why does this release matter?

    Because the underlying improvements are exactly what agentic systems need.

    Persona stability is the same problem as agent persona stability. If you are building a Copilot Studio agent that needs to talk like an HR specialist or a finance approver, the failure mode is identical: after enough turns, the agent regresses to generic assistant tone. The work Anthropic did to keep a narrator’s voice locked across 50,000 tokens is the same work that keeps your internal procurement agent from drifting into ChatGPT mode by message twelve.

    Long-context coherence is the same problem as multi-turn agent memory. An agent that loses track of what it told the user three turns ago, or contradicts a constraint it acknowledged at the start of the session, is failing the same test a novel writing model fails when it changes a character’s eye color in chapter seven.

    The specialization play is the real signal here. Anthropic is not selling one Claude. They are segmenting by job. As I wrote when Anthropic launched Claude Finance Agents, this is a deliberate move away from raw capability tiers and toward fit-for-purpose variants. That changes how you pick a model. Not “which is smartest” but “which is shaped for my job.”

    This is also a hint about what the next round of enterprise variants will look like. If Fable and Mythos work commercially, expect more shaped Claudes. Legal. Medical. Compliance. The lineup is going to get longer, not shorter. The Anthropic enterprise AI services arm launching to deploy Claude in production is the infrastructure that makes this segmentation commercially viable at scale.

    What I would do with it this week

    Three things, in order.

    One, read Anthropic’s own writeup carefully, not for the fiction angle but for what they say about persona retention and long-context evaluation. The eval methodology is the interesting part. If you build agents, those metrics are closer to what you should be measuring than HumanEval scores.

    Two, run a quick comparison test on Claude. Take an agent system prompt you already have, one that defines a specific persona, and run a long multi-turn conversation on a general Claude variant. Note where the persona breaks. That gives you a baseline. When Fable Mythos style tuning eventually filters into general or enterprise variants, you will know what to measure.

    Three, stop storing persona definitions in 4000-token system prompts. I have written about this before, and it stays true. If Anthropic is doing the persona work at the model level, your job is to give the model a tight, focused instruction set and let the tuning do the rest. A 400-token persona definition with clear constraints beats a 4000-token character bible every time. The same principle applies when you are thinking about whether to build a multi-agent system instead of a single agent: tighter scope and cleaner constraints outperform bloated configurations every time.

    Anthropic is shipping shaped models faster than most teams can decide which one to use. That is a good problem to have.

    Source: Claude Fable 5 and Claude Mythos 5 \ Anthropic (Anthropic).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn

  • Power Pages Agentic Coding Hits GA and I Already Know Where I Am Pointing It First

    Power Pages Agentic Coding Hits GA and I Already Know Where I Am Pointing It First

    Power Pages agentic coding GA announcement with GitHub Copilot CLI and Claude Code

    Microsoft just announced Power Pages agentic coding GA for the GitHub Copilot CLI and Claude Code plugins. The official blog post went up today, June 9, 2026, and it moves the plugin from the preview we got a few months ago into something I can actually plan delivery around.

    I wrote about why GA matters for Power Pages tooling when the news first broke. Now that it is live in the docs, I want to talk about where I would actually point it first.

    What shipped

    The Power Pages plugin for GitHub Copilot CLI and Claude Code is now generally available. In the preview you could describe a site in natural language, and the plugin would generate the scaffolding, set up Dataverse tables, wire up the Web API, and deploy the site. GA means the API contract is stable, the plugin is supported, and it can sit inside a real CI pipeline without the rug getting pulled.

    The pattern is the same as before. You stay in your terminal. You describe what you want. The plugin grounds itself in your actual Power Platform environment, reads the existing tables and site settings, and generates Liquid, Web API calls, and configuration that match what is really there.

    What it actually does

    The thing that makes this different from generic AI code generation is environmental grounding. Asking ChatGPT to write Liquid for a Power Pages site produces output that looks right and breaks immediately on deploy, because the model has no idea what your tables are called or what permissions are wired up.

    The Power Pages plugin reads your environment first. It knows your table names. It knows your site settings. It knows the authentication contact relationships. The generated code is diffable and committable, not a guess against a hypothetical portal.

    The other thing GA changes: this is the difference between a side experiment and something I can put in a pipeline. Preview features at most large enterprises do not make it to production. Security review blocks them. Procurement blocks them. Internal policy blocks them. GA is the switch that lets a pro dev actually own a full portal project end to end without leaving the terminal.

    Why it matters

    Power Pages has always had a split personality. The maker studio handles front-end click work, and the layer underneath, covering Liquid templates, Web API calls, table permissions, and plugin logic, requires real code and environment-specific context. You end up configuring half the site in one place and half in the other, with no reliable way to keep them in sync.

    Agentic coding at GA collapses that split for the pro dev path. You can scaffold tables, generate Liquid, wire up the Web API, and version the whole thing in git. That is a real shift in who can iterate on Power Pages sites and how fast they can do it. If you want more context on where agentic tooling is heading across the broader platform, Microsoft Build 2026 Made Fabric and Azure Databases the Foundation for Agentic Apps and the Direction Is Clear lays out the architecture story behind it.

    I want to be careful about one thing. This is not a citizen dev tool. It looks like one because the entry point is natural language, but the output is code that needs to be reviewed, committed, and deployed through a pipeline. Treating it as a click-and-ship tool is how you end up with a portal that nobody can debug six months later. The Power Pages documentation is still required reading.

    What I would do with it this week

    I would not point this at a polished external portal first. That is the wrong target. The schema is too settled, the design system is too constrained, and the value of AI scaffolding is lowest when the requirements are clear.

    I would point it at an internal-facing site where the schema is messy and the stakeholder keeps changing their mind. Think a request intake portal for a small ops team. A vendor onboarding tracker. An internal exception-handling site that nobody has gotten around to building because the requirements never sit still long enough. The Dataverse side of this gets more interesting now that Dataverse Just Got Knowledge Sources and Agent Feedback Loops, which gives the plugin even more to work with when it reads your environment.

    Those are exactly the cases where regenerating the scaffolding cheaply matters. The stakeholder says “actually we need a new field and a different approval path” on Thursday afternoon, and instead of rewriting Liquid by hand, you describe the change and let the plugin redo the wiring against the current environment.

    That is the workflow I want to test. I have spent enough time rebuilding intake portals because the requirements drifted to know exactly where this saves real hours.

    GA is the green light. Now the question is which internal site gets to be the first one I rebuild.

    Source: Build Power Pages Sites with AI through Agentic Coding tools, now Generally Available (Microsoft Power Platform Blog).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn

  • Power Platform May 2026 Update Landed and Here Are the Three Things I Am Actually Turning On

    Power Platform May 2026 Update Landed and Here Are the Three Things I Am Actually Turning On

    Power Platform May 2026 feature update highlights for builders

    The Power Platform May 2026 feature update dropped on the 14th and the release notes are dense. I read through the whole thing twice. Most of it is noise for day-to-day builders. A few things are not. This is the short list of what I am actually turning on this week and why.

    What shipped in the May 2026 update

    The headline item is Power Fx user defined types going generally available as of version 3.26044. UDTs are enabled by default on new apps and require a manual toggle in settings > updates > new > user-defined types on existing ones. Defined with the Type function in App.OnStart or app-scoped formulas.

    Beyond that, the release covers Copilot Studio shipping bits around agent authoring, more Dataverse plumbing for skills and knowledge sources, governance tweaks for managed environments, and a long tail of small Power Apps and Power Automate quality-of-life updates. Some of it is useful. A lot of it is preview-flag churn that will not affect what I build this month.

    Why this release is heavier than it looks

    On the surface, the May 2026 update reads like another monthly drop. It is not. UDTs going GA changes how I write Power Fx, full stop. Component libraries stop being copy-paste exercises and start behaving like an SDK. The agent and skill updates keep moving business logic out of system prompts and into managed Dataverse artifacts, which I have written about before.

    The governance pieces are quieter but they hit the parts of the platform that decide whether your environment stays usable at 200 makers or collapses into sprawl. None of these are flashy. All of them shift how you architect.

    The three things I am turning on this week

    1. Power Fx user defined types on existing apps. This is the one. Before UDTs, type information was inferred from whatever record you passed first. One missing field and the schema silently widened. Runtime surprise. With UDTs you declare the shape once with Type and the formula bar catches mismatches at authoring time. I am going through my medium-sized apps and flipping the toggle, then retyping the component props that have caused the most regression bugs. The trade-off is real. Existing formulas can break when types get strict. You will spend an afternoon fixing things. You get type safety for the next two years. Worth it. More on what UDTs unlock in my earlier post.

    2. The Copilot Studio agent authoring improvements tied to Dataverse skills. If you have not moved your business logic out of system prompts yet, this release is the nudge. A focused 400-token skill outperforms a 4000-token prompt every time. I am rebuilding two internal agents this week, lifting policy logic into skills with named owners and version history. The governance gain matters more than the latency gain. If you want a practical look at surfacing those skills inside an app, How to Build Custom Copilot UI Widgets in Power Apps covers how to wire the Copilot payload to a real component rather than a text box.

    3. The managed environment governance updates. Specifically the changes around DLP scope and the maker access controls. I am not going to pretend this is exciting. It is the unglamorous flipping of switches that keeps the platform from rotting. If you run a CoE, read that section twice and update your baseline. Skipping this is how you end up with the month-three stall I described in Inside a Power Platform Center of Excellence: Why Most Setups Stall in Month Three.

    What I am ignoring this month: most of the preview flags, the cosmetic Power Apps studio tweaks, and anything in the Copilot canvas experience that is not GA. Preview features burn debugging time and break when the next release lands. I will come back to them when they ship for real.

    For the official documentation on UDTs and the Type function, the Microsoft Learn reference is the place to start. For my running notes on what I turn on and what I skip, I keep a list on LinkedIn.

    Monday morning: toggle UDTs on one app, port one skill out of a system prompt, update the managed environment baseline. Three concrete moves. Everything else can wait.

    Source: What’s new in Power Platform: May 2026 feature update (Microsoft Power Platform Blog).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn

  • Microsoft Build 2026 Made Fabric and Azure Databases the Foundation for Agentic Apps and the Direction Is Clear

    Microsoft Build 2026 Made Fabric and Azure Databases the Foundation for Agentic Apps and the Direction Is Clear

    Microsoft Fabric agentic apps Build 2026 architecture diagram

    Microsoft just dropped its Build 2026 post on building agentic apps with Microsoft Fabric and Microsoft Databases, and the framing is the story. This is not a feature drop dressed up as a vision post. Microsoft is putting microsoft fabric agentic apps at the center of how it wants you to build, and the message is direct: the agent layer sits downstream of the data layer, and if your data is not consolidated, your agents will not be reliable.

    I read this twice. The second pass is where the direction gets clear.

    What it actually does

    The post pulls Fabric and the Azure database family (SQL, Cosmos DB, PostgreSQL) into a single story as the substrate for agentic apps. The pitch is that you build agents that reason over the same governed data your analytics and operational apps already use, instead of stitching together vector stores, copies of production tables, and a separate semantic layer.

    Concretely, the announcements lean on three moves. Fabric becomes the unified surface for structured, unstructured, and vector data with agent-ready APIs on top. The Azure database family gets tighter native integration with Fabric mirroring and AI capabilities baked into the engines, so embeddings, retrieval, and grounding live next to the data instead of in a sidecar service. And the developer story positions agents as first-class workloads, not bolt-ons. You point an agent at a Fabric workspace, it knows about the data contracts, the lineage, the policies.

    The thing I keep coming back to: Microsoft is no longer treating the agent as the product. The data platform is the product. The agent is just one consumer of it.

    Why the microsoft fabric agentic apps direction matters

    This lines up with something I have been saying for a while. The hardest part of building an internal agent is not the model. It is getting the agent to behave like someone who actually works at your company. I wrote about that when Microsoft reframed Dataverse as the agent data platform, and Build 2026 extends the same logic up the stack. Dataverse handles the business policy and skills layer. Fabric handles the data and grounding layer. Both are now explicitly agent-aware.

    If you are building on Power Platform and Azure and your data still lives across a SharePoint list, a legacy SQL box, a Synapse workspace nobody owns, and three Excel exports somebody emails on Tuesdays, this announcement is a warning shot. The friction is going to show up in a year. Your agents will hallucinate because grounding is inconsistent. Your latency will balloon because every retrieval crosses three services. Your governance story will not survive a single audit. I covered a related version of this problem when looking at Dataverse knowledge sources and agent feedback loops, and the data consolidation argument is the same one showing up here at the Fabric layer.

    The trade-off is real. Consolidating on Fabric is not free. You give up some flexibility, you commit harder to the Microsoft stack, and you accept that Fabric capacity pricing is going to be a line item somebody fights about every quarter. But the alternative is building another silo, and silos are what kill agent reliability six months in.

    The other piece I like: this framing kills the fantasy that you can buy your way into agentic apps by picking a better model. The model is not the bottleneck. The data contract is. Microsoft is finally saying that out loud.

    What I would do with it this week

    Three concrete things I want to poke at.

    First, I would take one existing Copilot Studio agent that currently pulls from a Dataverse table and a SharePoint list, and rewire its grounding through a Fabric workspace with mirroring on the Dataverse side. Measure two things: retrieval latency end to end, and answer consistency across ten repeat questions. If Fabric mirroring holds up, that is a pattern I can reuse everywhere.

    Second, I would build a tiny agent that reasons over a Cosmos DB collection using the native vector capabilities instead of pushing the data into a separate vector store. The question I want answered: does keeping embeddings next to the operational data actually reduce the drift problem, or does it just move the problem.

    Third, I would map every current agent project against the question “is the data this agent depends on already in Fabric or on a clear path to it.” Anything that is not gets flagged. Not as a blocker, but as a known fragility. Before doing that mapping it is worth being honest about whether the agent even needs to be multi-agent in the first place — the single agent vs multi-agent decision shapes how complex your data dependencies get before you even write a line of grounding logic. I have learned the hard way that the architecture decisions you defer in month one are the ones that eat your weekends in month nine.

    Microsoft just made the direction obvious. The teams that move on it now will be the ones not refactoring in 2027.

    Source: Azure error (Azure Blog).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn

  • Power Pages Agentic Coding Tools Just Went GA and the GitHub Copilot CLI Plugin Is What I Am Trying First

    Power Pages Agentic Coding Tools Just Went GA and the GitHub Copilot CLI Plugin Is What I Am Trying First

    Power Pages agentic coding tools GA in GitHub Copilot CLI terminal

    Microsoft just announced that the Power Pages agentic coding tools GA milestone is here. The plugins for GitHub Copilot CLI and Claude Code are now generally available, after a preview that landed earlier this year. You can read the full announcement on the Power Platform blog.

    This is the part I have been waiting for. Power Pages site building is moving out of the maker portal and into the terminal where pro devs actually live. That changes who can credibly own a Power Pages project inside a large org.

    What it actually does

    The plugin sits inside GitHub Copilot CLI or Claude Code as an extension. You describe the site in natural language. The agent generates the scaffolding, sets up Dataverse tables, wires up the Web API, configures table permissions, and deploys the site.

    The important bit is the grounding. The plugin is not asking the model to guess at Liquid syntax or invent table names. It reads your actual environment, your existing tables, your site settings, your authentication setup. The output lands in your repo as files you can diff, review, and commit.

    You get the standard pro-dev loop. Branches. Pull requests. CI checks. Code review. The site definition is text, the agent generates text, and Git handles the rest. No more configuring half the site in the maker studio and the other half through manual file edits and praying the two stay in sync.

    Why moving to GA actually matters

    Preview features do not get deployed to production at most enterprises I talk to. Security reviews block them. Procurement blocks them. Internal policy blocks them. GA flips that switch.

    More importantly, GA means the API contract is stable enough that you can build CI around it without expecting it to break next month. That is the difference between a fun side experiment and something a team commits to as a standard delivery pattern.

    The bigger shift is cultural. Power Pages has always had a split personality. The studio handles the front-end click work, but the layer underneath, Liquid templates, Web API calls, table permissions, plugin logic, is real code. I wrote about this when the server-side skills landed. The maker portal hid the code layer behind a UI that pro devs did not want to touch and citizen devs could not safely change.

    Pulling the build process into Copilot CLI or Claude Code lets a pro dev own the whole site end to end without leaving the terminal. That is a real unlock for the kind of internal portal work that has been stuck between teams for years. If you are also thinking about how multi-agent orchestration patterns in Copilot Studio fit alongside this kind of terminal-driven build loop, the two are worth thinking about together.

    The trade-off is honest. This is not for citizen devs. If your maker has never opened a terminal, this is not their tool. The maker studio is not going away, and it should not. But for the portal projects where someone wanted to use Git, code review, and a real deployment pipeline and could not, the path now exists.

    What I would do with it this week

    I would pick the smallest internal Power Pages site I can find. Something with two or three tables, an authenticated user experience, and a form that writes back to Dataverse. Nothing customer-facing. Nothing with sensitive data.

    Install the Power Pages plugin in GitHub Copilot CLI. Point it at a dev environment that mirrors a real one but is safe to break. Ask it to scaffold the site from a short description and let it generate the Dataverse tables and Web API config. If you want the agent to do more than scaffold, Dataverse knowledge sources and agent feedback loops are worth wiring in at this stage.

    Then I would intentionally break something. Change a table permission by hand in the maker studio. Re-run the agent. See how it handles drift. That is the failure mode that will hurt in production, and you want to know the answer before you commit to this for a real project. I have learned the hard way that the demo path always works. The drift path is where tools live or die.

    I would also run the same prompt through both the Copilot CLI plugin and the Claude Code plugin and compare the output. Same site, same description, two agents. The deltas will tell you a lot about which one to standardise on.

    For anyone running portal projects inside a large org, this is the week to actually try it. The Power Pages docs have the setup steps and the plugin is a clean install.

    The terminal is becoming a real surface for Power Platform work, and I am here for it.

    Source: Build Power Pages Sites with AI through Agentic Coding tools, now Generally Available (Microsoft Power Platform Blog).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn

  • How to Build Custom Copilot UI Widgets in Power Apps Step by Step

    How to Build Custom Copilot UI Widgets in Power Apps Step by Step

    Copilot custom UI widgets in Power Apps rendering a card instead of text

    Default Copilot responses in Power Apps are text. Useful for quick answers, useless when the user actually needs a card, a form, or a chart. This walkthrough shows how to build copilot custom UI widgets power apps style, so the chat renders a real component when a specific question is asked, and falls back to text otherwise. Credit to Matthew Devaney’s writeup which is the spine I am building on here.

    End state: a canvas app with a Copilot chat. Ask it about an order, and a card component appears in the conversation with the order details. Ask anything else and you get normal text.

    Step 1: Add the Copilot control and a component to your canvas app

    In your canvas app, insert the Copilot control from the Insert panel. Place it on the right side of the screen. Keep the default width, you will want the space.

    Now create the component that will act as your widget. Go to the Components tab in the tree view, create a new component called OrderCardWidget. Add an input property called OrderPayload of type Record. Inside the component, drop a container with a few labels for order ID, customer name, status, and total. Bind each label to OrderCardWidget.OrderPayload.OrderId and so on.

    Add the component to the screen. Set its Visible property to false for now. You will flip this on from the Copilot response in Step 3.

    Step 2: Configure the Copilot topic to return a structured response

    Open the Copilot studio agent connected to this app. Create a new topic called Show Order Details. Add trigger phrases like show me order, display order, open order card.

    Add a question node asking for the order ID. Then add a tool call to a Power Automate flow that returns the order as structured JSON. The flow does a Dataverse or SharePoint lookup and returns a response with this shape:

    { "widget": "OrderCard", "payload": { "orderId": "...", "customer": "...", "status": "...", "total": 0 } }

    The widget field is the trigger phrase for the UI layer. The payload field is what binds into the component. Do not skip the typed schema on the flow response. If you return a generic object, the Copilot control hands you a string and you spend the next hour wondering why parsing fails. I wrote about that exact failure mode in my custom connector walkthrough.

    Finish the topic with a Message node that returns the JSON as the final response. Microsoft’s docs on Copilot in canvas apps have the current control reference if your version differs.

    Step 3: Bind the component to the Copilot response payload

    Back in the canvas app, select the Copilot control. The control exposes a property called OnResponse that fires every time the agent sends a message. This is where you parse the JSON and route it.

    Set OnResponse to:

    Set(varLastResponse, ParseJSON(Self.LastMessage)); Set(varWidgetType, Text(varLastResponse.widget)); Set(varOrderPayload, varLastResponse.payload)

    Now set the component’s Visible property to:

    varWidgetType = "OrderCard"

    And set its OrderPayload input to:

    { OrderId: Text(varOrderPayload.orderId), Customer: Text(varOrderPayload.customer), Status: Text(varOrderPayload.status), Total: Value(varOrderPayload.total) }

    The widget now renders only when the agent says it should, and only with the data the agent returned. If you want to support multiple widgets later, swap the boolean for a switch on varWidgetType and toggle different components. If you are thinking about when that kind of routing logic warrants a dedicated agent per task, single agent vs multi-agent is worth reading before you scale this pattern.

    Step 4: Test the widget end to end and handle the fallback

    Run the app. Open the Copilot chat. Type show me order 1042. The topic should trigger, the flow should fire, and the card should appear with the right data.

    Now test the fallback. Ask something unrelated like what is the weather. The card must disappear. If varWidgetType is not reset between turns, the old widget hangs around showing stale data. Add a default branch to OnResponse:

    If(IsBlank(varLastResponse.widget), Set(varWidgetType, ""))

    Also test a malformed response. Force the flow to return invalid JSON once and confirm the app does not crash. ParseJSON returns blank on failure, your visibility check handles it, the chat continues as text. That is the behavior you want.

    Final state and one pitfall to watch for

    You now have a Copilot chat that renders a real Power Apps component when the topic returns the right payload, and text the rest of the time. Same pattern works for forms, charts, anything you can build as a component. If you want the agent behind this to pull from richer knowledge sources or close feedback loops on responses, the Dataverse agent data platform new features are worth wiring up alongside this.

    The pitfall: the Copilot control reads the raw message text. If your topic adds any conversational wrapper around the JSON, like Sure, here is your order: {...}, ParseJSON fails silently and the widget never appears. Return pure JSON from the final Message node, nothing else. That one rule will save you an afternoon of debugging. More notes on this kind of integration thinking on my LinkedIn.

    Frequently Asked Questions

    How do I build copilot custom UI widgets in Power Apps?

    You add a Copilot control to your canvas app, create a component to act as the widget, and configure a Copilot Studio topic to return a structured JSON response that includes a widget identifier and a data payload. The canvas app then reads the response, checks the widget field, and toggles the component visible while binding the payload to its input properties.

    Why does my Copilot control return a string instead of a parsed object in Power Apps?

    This usually happens when the Power Automate flow response does not have a typed schema defined. Without a typed schema, the Copilot control treats the response as plain text, which causes JSON parsing to fail. Always define the response schema explicitly in your flow to ensure a structured object is passed back.

    When should I use a custom widget instead of a default text response in Copilot?

    Use a custom widget when the user needs to view or interact with structured data, such as order details, forms, or charts, rather than a plain text answer. Text responses work for simple questions, but components give users a far more usable experience when the data has multiple fields or requires visual formatting.

    How do I connect a Power Automate flow to a Copilot Studio topic?

    Inside your Copilot Studio topic, add a tool call node and select your Power Automate flow as the action. The flow handles the data lookup and returns a structured JSON response back to the topic. Make sure the flow output schema is typed so the Copilot control can pass the data correctly to your canvas app.

    Source: How To Create Copilot Custom UI Widgets In Power Apps (Matthew Devaney (Power Apps)).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn

  • Anthropic Shipped Claude Opus 4.8 and the Coding Numbers Are What Caught My Eye

    Anthropic Shipped Claude Opus 4.8 and the Coding Numbers Are What Caught My Eye

    Claude Opus 4.8 release notes shown on a developer screen with agent workflow diagrams

    Anthropic dropped the Claude Opus 4.8 release today. I read the post twice before writing anything because the coding and tool-use deltas are the part that actually matters for people building agents, not the headline number.

    Most model bumps are easy to ignore. This one I am paying attention to, and not for the reason most posts will tell you.

    What it actually does

    Opus 4.8 is an incremental release on top of the Opus 4 line. The model card focuses on three areas: coding quality, tool-use reliability, and long-horizon agentic task completion. Anthropic reports gains on SWE-bench style coding tasks and improvements on multi-step tool sequences where the model has to plan, call a tool, read the result, and decide what to do next without losing the thread.

    The pricing and context window stay in line with the Opus 4 family. It is available on the Anthropic API, on Claude.ai, on Amazon Bedrock, and on Google Vertex. Same deployment story as before.

    The thing that jumped out at me was the reduction in tool-call errors on longer agent traces. Not the average. The tail. That is a different problem to fix and a different problem to feel in production.

    Why it matters for agent builders

    If you have built anything resembling a real agentic workflow, you know the failure mode. The agent runs fine for 4 or 5 steps. Then on step 8 it calls a tool with malformed JSON, or hallucinates an argument, or forgets which tool it already called. The whole trace dies and you are looking at logs trying to figure out where the drift started.

    Coding quality and tool-use reliability are the same problem wearing two different hats. A model that writes better code is a model that produces better structured outputs, better function arguments, and better adherence to a schema. That is what makes a multi-step agent stop falling apart on turn 9.

    I have written before about latency being the quiet killer of agentic workflows. Reliability is the louder one. A workflow that completes 70 percent of the time is not a workflow. It is a demo. And most teams I talk to are sitting at 70 percent and calling it production.

    If Opus 4.8 actually pushes the tail of tool-call failures down, that is the difference between an agent you can schedule overnight and an agent that needs a human babysitting every run. That is the gap I care about.

    The other piece worth naming: this is Anthropic doubling down on coding and agents as the wedge. Not consumer chat. Not creative writing. They are picking a lane and shipping into it. Anthropic has been consistent about this for months and Opus 4.8 fits that pattern cleanly. That same strategic focus is visible in moves like Anthropic acquiring Stainless, where the SDK layer itself became a competitive asset.

    What I would do with it this week

    One test. Not a benchmark. A real one.

    Take the agent or automation in your stack that fails most often on long traces. The one where you keep adding retry logic and validation steps because the model keeps producing slightly wrong tool arguments. Run the same trace 20 times on whatever model you are using now. Log the failure points. Swap to Opus 4.8 with the exact same prompt and tools. Run it 20 more times.

    If the tail failures drop noticeably, you have your answer. If they do not, you keep what you have and you saved yourself a migration.

    I would also pay attention to cost per successful completion, not cost per token. A more expensive model that completes the workflow on the first try beats a cheaper model that needs three retries every time. That math is what people forget when they compare price sheets. It is the same logic that applies when you are deciding whether to build a multi-agent system instead of a single agent — the right architecture is the one that actually completes reliably, not the one that looks cleanest on a whiteboard.

    One more thing. If you are running Claude through Bedrock or Vertex, give the model version a week or two to land cleanly in your region before you build anything critical on it. I learned the hard way that prototyping on the direct API and then lifting to Bedrock at the last minute will burn a sprint on region availability and version naming. And if you are watching the broader competitive picture on AI coding agents in enterprise environments, the OpenAI and Dell Codex on-premise partnership is worth reading alongside this release — the two moves are aimed at the same buyer.

    Opus 4.8 is not a revolution. It is a sharpening. And for the kind of long-running agent work I keep seeing teams try to stand up, sharpening is exactly what is needed right now.

    Source: Introducing Claude Opus 4.8 \ Anthropic (Anthropic).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn

  • Dataverse’s New Knowledge Sources and Agent Feedback Loops Explained

    Dataverse’s New Knowledge Sources and Agent Feedback Loops Explained

    Dataverse agent data platform new features including knowledge sources and feedback loops

    Microsoft published Dataverse Is Your Agent Data Platform: Here’s What’s New on May 5. I already wrote about the positioning shift, but the dataverse agent data platform new features in this post are the part I actually want to wire up this week. Knowledge sources you can attach to an agent. Agent feedback captured and stored back in Dataverse. Tighter coupling between business skills and the data model. That last bit is the one that changes my build order.

    What it actually does

    Three things stand out from the post.

    First, knowledge sources on Dataverse. You can now attach SharePoint sites, websites, files, and Dataverse tables as knowledge an agent can reason over, governed at the Dataverse level rather than configured per agent. The point is that knowledge becomes a managed artifact in the data platform, not a per-agent setting buried in Copilot Studio.

    Second, agent feedback stored in Dataverse. Thumbs up, thumbs down, and the conversation context land as rows you can query. That means feedback is not trapped in a separate analytics surface. You can write a flow on it. You can build a Power BI report on it. You can route a thumbs-down with a specific topic tag to the skill owner.

    Third, business skills tied to the data model. The business skills I wrote about when they shipped now sit closer to the tables they operate on. Skill ownership, policy versioning, and the data the skill reads from are governed in one place.

    For the official surface area, the Microsoft Learn docs are the right starting point once you have read the announcement.

    Why it matters

    I have built enough Copilot Studio agents to know where the pain actually sits, and it is never the model. It is the loop between what the agent does, what users think of what the agent did, and the policy owner who has to fix the thing that went wrong. That loop has been broken on Power Platform for a year.

    Feedback used to live in conversation transcripts you had to export. Knowledge used to be attached per agent, which meant the same SharePoint site got wired up four different ways by four different makers. Business logic lived in a 4000-token system prompt or a hardcoded Power Automate flow nobody could find six months later.

    Putting all three in Dataverse closes the loop. Feedback is a table. Knowledge is a managed artifact. Skills are versioned records with owners. You can finally write the query that says “show me every thumbs-down on the leave policy topic in the last 30 days, grouped by the skill that was invoked.” That query was not possible before. Now it is a view.

    The thing I am cautious about is the same thing I flagged with business skills. Sprawl. If five teams attach overlapping knowledge sources to overlapping skills with no naming convention, the agent will misroute silently and the feedback table will just tell you users are unhappy without telling you why. Governance has to come before deployment, not as a month-six cleanup. The multi-agent orchestration patterns that are now GA in Copilot Studio make this even more important to get right before you scale.

    What I would do with it this week

    I have a small internal agent that answers process questions. The plan for the next few evenings looks like this.

    Move knowledge out of the agent and into Dataverse. Right now the agent has three SharePoint sources wired up directly. I want one knowledge source registered in Dataverse, owned by the process owner, that any future agent on the same domain can reuse. That is the silo fix.

    Turn on feedback capture and build the report. Thumbs-down without a report is just noise. I want a Power BI page that shows feedback rate per topic, with a drill-through to the conversation. If I cannot see which skill was invoked when the user said no, I cannot improve anything.

    Pick one skill and version it properly. I am going to take the leave policy skill, rewrite it as a Dataverse business skill with an owner who is not me, and document the handoff. If the policy changes, the policy owner edits the skill. I do not get a ticket. That is the architectural shift I keep talking about, and it only works if I actually do it on something real. The error handling patterns that hold up in production become especially relevant once feedback loops are writing rows back into Dataverse and triggering flows downstream.

    None of this needs a new model. It needs the data platform to do its job, and it finally can.

    The interesting question now is what the second wave of agents looks like once knowledge and feedback stop being per-agent problems.

    Source: Dataverse Is Your Agent Data Platform: Here’s What’s New (Microsoft Power Platform Blog).

    About the author: Halilcan Soran is a Senior Business Analyst at Visa working on process optimization with Power Platform, RPA, and agentic AI. He previously led a 15-person team at Thomson Reuters, where the Power Automate solutions he built started his automation career. More about Halilcan · LinkedIn