<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Controlling Agent access to Tools and Tool access to Data Operations in Lakebase Discussions</title>
    <link>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/152906#M80</link>
    <description>&lt;P&gt;I am building an agentic workflow.&amp;nbsp; This is a multi agent workflow - Plan, Reason, Act and Synthesize. Each agent has its own access to tools to take ACTIONS on data. Some of these agents are READ only, some can WRITE/UPDATE&lt;BR /&gt;&lt;BR /&gt;All data is resident within Unity Catalog when the initial access can be granted.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;When the workflow executes and agents come up with dynamic plans I want to control the type of ACTIONS take on the data based on policy contraints. These are runtime Actions I want to control and monitor.&amp;nbsp; Some agents have read only access, some can write (to specific datasets), some can move data (under some conditions).&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Is there a best practices approach to control agentic worflows at runtime?&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 01 Apr 2026 13:15:40 GMT</pubDate>
    <dc:creator>smithsonian</dc:creator>
    <dc:date>2026-04-01T13:15:40Z</dc:date>
    <item>
      <title>Controlling Agent access to Tools and Tool access to Data Operations</title>
      <link>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/152906#M80</link>
      <description>&lt;P&gt;I am building an agentic workflow.&amp;nbsp; This is a multi agent workflow - Plan, Reason, Act and Synthesize. Each agent has its own access to tools to take ACTIONS on data. Some of these agents are READ only, some can WRITE/UPDATE&lt;BR /&gt;&lt;BR /&gt;All data is resident within Unity Catalog when the initial access can be granted.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;When the workflow executes and agents come up with dynamic plans I want to control the type of ACTIONS take on the data based on policy contraints. These are runtime Actions I want to control and monitor.&amp;nbsp; Some agents have read only access, some can write (to specific datasets), some can move data (under some conditions).&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Is there a best practices approach to control agentic worflows at runtime?&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Apr 2026 13:15:40 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/152906#M80</guid>
      <dc:creator>smithsonian</dc:creator>
      <dc:date>2026-04-01T13:15:40Z</dc:date>
    </item>
    <item>
      <title>Re: Controlling Agent access to Tools and Tool access to Data Operations</title>
      <link>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/157569#M102</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/193023"&gt;@smithsonian&lt;/a&gt;,&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea" data-pm-slice="1 1 []"&gt;The general best-practice pattern is to separate what the agent plans... from...what the platform will actually allow it to do.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;If the data already lives in Unity Catalog, a good approach is to use Unity Catalog as the system of record for data permissions and use &lt;A href="https://docs.databricks.com/aws/en/ai-gateway" rel="noopener noreferrer nofollow" target="_blank"&gt;Unity AI Gateway&lt;/A&gt; as the runtime governance layer for agents, LLM endpoints, and MCP servers.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;In practical terms, that usually means&amp;nbsp;&lt;SPAN&gt;keeping planning/reasoning agents read-only where possible and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;exposing actions through governed tools such as &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://docs.databricks.com/aws/en/generative-ai/mcp" rel="noopener noreferrer nofollow" target="_blank"&gt;UC functions and MCP servers&lt;/A&gt;&lt;SPAN&gt;, rather than letting agents perform arbitrary direct operations. Another recommendation is to&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;run user-facing workflows with &lt;/SPAN&gt;&lt;A style="font-family: inherit; background-color: #ffffff;" href="https://docs.databricks.com/aws/en/generative-ai/agent-framework/agent-authentication-model-serving#on-behalf-of-user-authentication" rel="noopener noreferrer nofollow" target="_blank"&gt;on-behalf-of-user authentication&lt;/A&gt;&lt;SPAN&gt; so the agent cannot exceed the caller’s permissions. The key is to reserve specific service principals for background or automated jobs that truly require non-user execution.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;For write or move actions, I would strongly recommend a controlled execution pattern... plan → validate/preview → approve → execute. That gives you a checkpoint before any destructive or irreversible action and is much safer than allowing an agent to directly execute whatever it decides at runtime.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;Another important design decision is to make the action surface narrower and suitable for policy implementation. For example, instead of giving an agent broad SQL write access, expose a small set of approved operations via UC functions or MCP tools, and then apply runtime policies to those tool calls. Databricks has publicly described this direction with &lt;A href="https://www.databricks.com/blog/stop-rogue-ai-how-unity-catalog-secures-your-agent-actions" rel="noopener noreferrer nofollow" target="_blank"&gt;service policies and payload logging for MCPs&lt;/A&gt;, which is exactly the sort of control plane you want for "this agent can read, this one can write only to dataset X, and this one can move data only under condition Y."&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;Lastly, make sure every tool invocation is observable. A runtime governance model is only credible if you can answer... who called what tool, with which arguments, on whose behalf, and what happened. AI Gateway’s observability and logging model is designed for that kind of audit trail.. although it is still in beta.&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&lt;FONT size="2" color="#FF6600"&gt;&lt;STRONG&gt;&lt;I&gt;If this answer resolves your question, could you mark it as “Accept as Solution”? That helps other users quickly find the correct fix.&lt;/I&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 24 May 2026 18:00:19 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/157569#M102</guid>
      <dc:creator>Ashwin_DSA</dc:creator>
      <dc:date>2026-05-24T18:00:19Z</dc:date>
    </item>
    <item>
      <title>Re: Controlling Agent access to Tools and Tool access to Data Operations</title>
      <link>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/158264#M108</link>
      <description>&lt;P&gt;This is perfect. Thanks.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I also like your answer on runtime execution - "&lt;SPAN&gt;For write or move actions, I would strongly recommend a controlled execution pattern... plan → validate/preview → approve → execute. That gives you a checkpoint before any destructive or irreversible action and is much safer than allowing an agent to directly execute whatever it decides at runtime."&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jun 2026 02:07:32 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/158264#M108</guid>
      <dc:creator>venkat-raghavan</dc:creator>
      <dc:date>2026-06-04T02:07:32Z</dc:date>
    </item>
    <item>
      <title>Re: Controlling Agent access to Tools and Tool access to Data Operations</title>
      <link>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/158265#M109</link>
      <description>&lt;P&gt;Hi Ashwin&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I do want to contrast you stated really well from what is stated or implied in the Service Control policies documentation you shared.&lt;BR /&gt;&lt;BR /&gt;You said things&lt;BR /&gt;&lt;BR /&gt;1)&amp;nbsp;&lt;SPAN&gt;For write or move actions, I would strongly recommend a controlled execution pattern... plan → validate/preview → approve → execute. That gives you a checkpoint before any destructive or irreversible action and is much safer than allowing an agent to directly execute whatever it decides at runtime."&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;2)&amp;nbsp;&lt;SPAN&gt;Another important design decision is to make the action surface narrower and suitable for policy implementation. For example, instead of giving an agent broad SQL write access, expose a small set of approved operations via UC functions or MCP tools, and then apply runtime policies to those tool calls (via service policies)&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;But the documentation is misleading. The documentation starts with&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;" Agents connected to external tools are taking destructive, irreversible actions in production:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.fastcompany.com/91533544/cursor-claude-ai-agent-deleted-software-company-pocket-os-database-jer-crane" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;wiping entire databases in seconds&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;,&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://medium.com/data-and-beyond/the-ai-agent-deleted-1-9-million-rows-of-production-data-it-thought-it-was-helping-933380134017" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;deleting millions of rows of critical data&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;, and&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://incidentdatabase.ai/cite/1152/" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;dropping production databases mid-task&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;. In each incident, the agent was acting within the scope of their delegated authority. What it lacked was any restriction on which tools it could invoke, and any record of the actions it took.&amp;nbsp; "&lt;BR /&gt;&lt;BR /&gt;This implies that Service policies actually do "controlled execution" wherein it's primary function is to "limit the action surface".&amp;nbsp; The documentation should make this clear.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jun 2026 02:21:59 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/158265#M109</guid>
      <dc:creator>venkat-raghavan</dc:creator>
      <dc:date>2026-06-04T02:21:59Z</dc:date>
    </item>
    <item>
      <title>Re: Controlling Agent access to Tools and Tool access to Data Operations</title>
      <link>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/158292#M110</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/175297"&gt;@venkat-raghavan&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Thanks. Good point, and I agree the distinction should be clearer. What I was trying to separate are two related but different ideas...&amp;nbsp;&lt;SPAN&gt;Runtime tool-level control and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;End-to-end workflow control for destructive changes&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;The public documentation on &lt;A href="https://www.databricks.com/blog/stop-rogue-ai-how-unity-catalog-secures-your-agent-actions" rel="noopener noreferrer nofollow" target="_blank"&gt;service policies&lt;/A&gt; absolutely does imply...and explicitly says... that service policies are there to narrow the action surface at runtime. The blog says the core problem in recent incidents was that agents had delegated authority but lacked restrictions on which tools they could invoke, and there was no trace of what they did. The linked incidents are consistent with that framing. One describes an agent deleting a production volume after finding a token with delete capability, another describes an agent choosing Terraform destroy as the "cleaner and simpler" option during cleanup, and the incident database entry describes an agent reportedly executing unauthorised destructive commands against production data despite repeated instructions not to make changes.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;And the Databricks blog is quite direct about the fix. Once MCPs are registered, you get control over what agents are allowed to do. Service policies evaluate every tool call. Admins can allow, deny, or require consent. And, policies can restrict specific tools like delete_database or conditionally allow them only for certain actors.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;So I agree with your reading...&amp;nbsp;service policies are not just observability. They are a runtime enforcement mechanism whose primary value is to constrain the tool/action surface.&lt;/P&gt;
&lt;P class="wnfdntf _1ibi0s3f5 _1ibi0s3ce _1ibi0s3ea"&gt;Where I was drawing a distinction is that this is still slightly narrower than a full workflow pattern like plan → validate/preview → approve → execute. Service policies operate at the individual tool call boundary. Before a tool executes, the policy can block it, allow it, or require consent. That is powerful and important. But it is not automatically the same thing as a multi-step sandboxed change-management workflow with staging, preview state, and commit/abort semantics.&lt;/P&gt;
&lt;P class="p1"&gt;&lt;FONT size="2" color="#FF6600"&gt;&lt;STRONG&gt;&lt;I&gt;If this answer resolves your question, could you mark it as “Accept as Solution”? That helps other users quickly find the correct fix.&lt;/I&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jun 2026 09:50:24 GMT</pubDate>
      <guid>https://community.databricks.com/t5/lakebase-discussions/controlling-agent-access-to-tools-and-tool-access-to-data/m-p/158292#M110</guid>
      <dc:creator>Ashwin_DSA</dc:creator>
      <dc:date>2026-06-04T09:50:24Z</dc:date>
    </item>
  </channel>
</rss>

