<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yaniv Shenhav</title>
    <description>The latest articles on DEV Community by Yaniv Shenhav (@yanivshenhav).</description>
    <link>https://dev.to/yanivshenhav</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4134528%2F6a30c123-36a8-4e3e-94f5-3967c9f1071c.png</url>
      <title>DEV Community: Yaniv Shenhav</title>
      <link>https://dev.to/yanivshenhav</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yanivshenhav"/>
    <language>en</language>
    <item>
      <title>Working With a Personal AI Assistant Without Losing Control</title>
      <dc:creator>Yaniv Shenhav</dc:creator>
      <pubDate>Mon, 02 Nov 2026 07:49:32 +0000</pubDate>
      <link>https://dev.to/yanivshenhav/working-with-a-personal-ai-assistant-without-losing-control-5608</link>
      <guid>https://dev.to/yanivshenhav/working-with-a-personal-ai-assistant-without-losing-control-5608</guid>
      <description>&lt;p&gt;Adapted from the Hebrew guide "How to work with a personal AI assistant without giving up control" on AI NEWS IL (12 September 2026): &lt;a href="https://ainewsil.co.il/articles/working-with-personal-ai-assistant" rel="noopener noreferrer"&gt;https://ainewsil.co.il/articles/working-with-personal-ai-assistant&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The labels chatbot, assistant and agent do not mark a uniform boundary between products. Some chat services keep context or memory between conversations; others do not, or let you turn the capability off. Assistants and agents may also act (coordinate, draft, track), depending on the product and the permissions you grant. The capabilities that make these tools useful are also the risk: accumulated memory is a store of personal data, and the ability to act is a permission that has to be managed.&lt;/p&gt;

&lt;p&gt;The category is young and products change fast, so the framework below is built to stay correct when tools are swapped: defined tasks, minimal permissions, approval before irreversible action, and routine human review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two lists before you connect anything
&lt;/h2&gt;

&lt;p&gt;The first list is not "what is the assistant good at" but "which tasks do I delegate". A task fits delegation if it repeats, its output can be checked in a minute, and a mistake is reversible. Good candidates: a weekly calendar summary, draft replies that always pass through you, tracking an open topic, collecting background before a meeting.&lt;/p&gt;

&lt;p&gt;The second list is what never gets delegated: payments and orders, sensitive messages to family or your boss, any decision that affects another person. The line is not the tool's capability but the kind of mistake possible: the harder an action is to undo and the more it touches someone else, the more it stays in your hands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Each connection is a separate decision
&lt;/h2&gt;

&lt;p&gt;Mail, calendar, files and contacts are not a bundle. Ask three questions about each connection: which delegated task needs it, what happens if this content leaks, and how do you disconnect it. Information you are obligated to protect (a client's, an employer's) does not enter a personal assistant without the owner's explicit approval. Start with one connection, such as calendar only, work for two weeks, then consider the next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some actions always need your yes
&lt;/h2&gt;

&lt;p&gt;Define the list up front: sending a message to another person, purchases and bookings, changing or deleting information, sharing a file. The practical test: before letting the assistant act alone, imagine the worst plausible mistake. If it embarrasses you in front of someone or costs money, it stays behind approval.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check outputs without spending the day on it
&lt;/h2&gt;

&lt;p&gt;An assistant that knows your context produces more convincing output, so errors are easier to miss. Keep fixed checkpoints per output type. Meeting summary: decisions and owners. Email draft: recipient, tone, numbers. Week plan: dates and conflicts. The warning sign is when you stopped checking because "it is usually right".&lt;/p&gt;

&lt;h2&gt;
  
  
  Manage memory actively
&lt;/h2&gt;

&lt;p&gt;Once a quarter, review what the assistant stored about you: delete what is stale or sensitive, update preferences. Stale memory is a source of errors, like recommendations based on a preference you changed. Ask before you start, not after: "If I want to leave in a year, how do I take what is mine and delete the rest?"&lt;/p&gt;

&lt;p&gt;A week of caution saves a month of cleanup.&lt;/p&gt;

&lt;p&gt;This English adaptation was prepared with AI assistance.&lt;/p&gt;

&lt;p&gt;Yaniv Shenhav.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>A New Model Just Launched. Five Questions Before You Change Anything</title>
      <dc:creator>Yaniv Shenhav</dc:creator>
      <pubDate>Mon, 26 Oct 2026 07:54:53 +0000</pubDate>
      <link>https://dev.to/yanivshenhav/a-new-model-just-launched-five-questions-before-you-change-anything-5dff</link>
      <guid>https://dev.to/yanivshenhav/a-new-model-just-launched-five-questions-before-you-change-anything-5dff</guid>
      <description>&lt;p&gt;Adapted from the Hebrew guide &lt;a href="https://ainewsil.co.il/articles/how-to-read-ai-model-launch" rel="noopener noreferrer"&gt;"How to Read a New AI Model Announcement Without Falling for the Hype"&lt;/a&gt; on AI NEWS IL (published 3 August 2026).&lt;/p&gt;

&lt;p&gt;An impressive benchmark is a starting point, not a conclusion. Every major launch arrives with a headline number, and a headline number is not an instruction to replace a tool. Five questions separate a shiny announcement from a useful improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Who chose the benchmark?
&lt;/h2&gt;

&lt;p&gt;A comparative figure becomes meaningful only when you know the task it measured, the control group, the evaluation setup and whether the result can be reproduced. Until then, treat each comparative number in a launch as a claim that still has to meet a real task.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. What exactly was measured, and under which conditions?
&lt;/h2&gt;

&lt;p&gt;Read the small print before the headline. Which model version ran? Were external tools allowed? How many attempts were made, and does the table show the best run or the typical one? An improvement on a coding benchmark does not guarantee an improvement on a writing task, and the reverse is also true - a high score in one domain says little about another.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. What will the user actually feel?
&lt;/h2&gt;

&lt;p&gt;Next to quality, check availability, speed, message limits, privacy and price. A theoretical gain that is not accessible in the product you use - or that makes the process significantly more expensive - may change nothing in daily work. The question is not whether the model is better, but whether the improvement is available to you in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Does it improve a metric you defined in advance?
&lt;/h2&gt;

&lt;p&gt;The short path to a decision is a small experiment. Take one real task from your pipeline, define the metric before you run anything, and compare old against new under identical conditions. If the predefined metric does not move, there is no need to rush and switch.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. What decision does this announcement actually demand?
&lt;/h2&gt;

&lt;p&gt;Usually: none yet. Product announcements shape real purchasing and adoption decisions, and critical reading prevents unnecessary switching between tools. An announcement is an invitation to test, not an instruction to replace a tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  One step to take now
&lt;/h2&gt;

&lt;p&gt;Keep a fixed set of ten representative tasks from your real work. Every significant launch, run the same set under the same conditions and record quality, time and cost. After a few launches you have something no launch table gives you: a trend line measured on your own work.&lt;/p&gt;

&lt;p&gt;Sources used in the original: OpenAI News, Google AI, Anthropic News.&lt;/p&gt;

&lt;p&gt;This English adaptation was prepared with AI assistance.&lt;/p&gt;

&lt;p&gt;Yaniv Shenhav.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AI Agent Memory Needs a Correction Path, Not Just Storage</title>
      <dc:creator>Yaniv Shenhav</dc:creator>
      <pubDate>Mon, 19 Oct 2026 10:29:11 +0000</pubDate>
      <link>https://dev.to/yanivshenhav/ai-agent-memory-needs-a-correction-path-not-just-storage-3oki</link>
      <guid>https://dev.to/yanivshenhav/ai-agent-memory-needs-a-correction-path-not-just-storage-3oki</guid>
      <description>&lt;p&gt;Adapted from the Hebrew guide &lt;a href="https://ainewsil.co.il/articles/ai-agent-memory-lifecycle-guide" rel="noopener noreferrer"&gt;"When the Agent Remembers Something That Has Changed: Managing AI Memory in an Organization"&lt;/a&gt; on AI NEWS IL (published 8 September 2026).&lt;/p&gt;

&lt;p&gt;Memory helps an agent keep context. It can also return an old price, a changed preference or a procedure that was cancelled. Storing something well does not make it correct today.&lt;/p&gt;

&lt;p&gt;This guide turns that risk into decisions and tests for an agent pilot. The examples are hypothetical, not case studies or measured results.&lt;/p&gt;

&lt;h2&gt;
  
  
  The direct answer: every memory needs a correction path
&lt;/h2&gt;

&lt;p&gt;Do not let an agent keep every detail forever just because storage is available. Decide what is worth keeping, where it came from, when it was last checked and what happens when it changes. If validity cannot be checked, the agent should go back to the approved source or ask for clarification.&lt;/p&gt;

&lt;p&gt;The goal of memory is to cut repeated work, not to create a second store that nobody owns.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the AWS post adds
&lt;/h2&gt;

&lt;p&gt;On 4 September 2026 AWS published a guide to designing lifecycle policies for &lt;a href="https://aws.amazon.com/blogs/machine-learning/designing-lifecycle-policies-for-agentcore-memory/" rel="noopener noreferrer"&gt;AgentCore Memory&lt;/a&gt;. It describes the risk of stale information piling up and suggests patterns for evaluating, consolidating and reducing memories, with an AWS example implementation.&lt;/p&gt;

&lt;p&gt;Do not read it as saying every memory is deleted automatically, that every component ships preconfigured, or that one policy fits every organization. The useful point for any stack is the difference between storing information and maintaining knowledge. The process below is an applied proposal, not an AWS benchmark.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Map what the agent actually stores
&lt;/h2&gt;

&lt;p&gt;List the types of information that enter memory in the process you chose: a language preference, a meeting summary, a service request status, an explanation of a procedure. Each changes at a different rate and means something different. Do not mix a detail a user shared about themselves with an organizational rule approved in a formal document.&lt;/p&gt;

&lt;p&gt;Trace a real path. An agent may write a summary to a database, keep chat history and add a snippet to a separate search index. Fixing one place does not fix the others. Pick a non-sensitive example and follow it: which message created it, where it was stored, who can read it and in which answer it comes back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Separate memory from the source of authority
&lt;/h2&gt;

&lt;p&gt;In a hypothetical case, a sales rep asks the agent about promotion terms early in the month. The agent stores a summary. The promotion then ends and the approved page is updated. If the old summary wins over the current page, wrong terms can reach a customer.&lt;/p&gt;

&lt;p&gt;Decide in advance which source may answer questions about price, eligibility or process stage, and when it must be rechecked. Conversation memory can explain what the customer asked. It should not become the terms document.&lt;/p&gt;

&lt;p&gt;Attach to each item a source ID, a creation date, a last-checked date and an owner. If two sources conflict, do not ask the agent to pick the more convincing one. Set a professional tiebreak rule or route the question to a person.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Set validity by use, not by an arbitrary number
&lt;/h2&gt;

&lt;p&gt;No single number of days fits all memories. A ticket status, a language preference and an operating guide change at different speeds. Define recheck triggers: a source document changes, a request closes, the user gives an update, or a date set by the process arrives.&lt;/p&gt;

&lt;p&gt;If you also use periodic checks, write down why the interval fits the use case and what harm could happen between two checks. Do not copy a technical default as a business policy.&lt;/p&gt;

&lt;p&gt;Stopping the use of an item in answers is not the same as deleting it from the system. An item may need to leave retrieval results immediately, while other copies follow a separate data policy. This guide does not say how long personal data may or must be kept. For sensitive or regulated data, involve the right owners before changing policy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Build a way to update, retire and delete
&lt;/h2&gt;

&lt;p&gt;Define the action for when an employee reports that the agent remembers something wrong. Who receives the report, how is the item found, and who may fix it? Adding a new message that says "ignore the previous one" is not enough. If both versions stay available with no rule to decide between them, another question can bring the old information back.&lt;/p&gt;

&lt;p&gt;After a fix, test retrieval in several phrasings: a direct question, an indirect one and one that includes the old wording. Also try a new conversation, so a fix in one session is not mistaken for a fix in the store. For deletion requests, define a check for each storage layer you manage. Seeing no result in one interface does not prove every copy is gone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Watch for summaries that lose the condition
&lt;/h2&gt;

&lt;p&gt;Merging several memories into one summary can make retrieval easier. It also changes how the information is represented. In a hypothetical case, the sentence "an item can be exchanged within a week if the packaging is sealed" becomes "exchange within a week". The answer sounds clear, but the condition is gone.&lt;/p&gt;

&lt;p&gt;Before approving a summarization mechanism, test it on examples with exceptions, numbers and conditions. Do not remove professional distinctions just to save space. Two customers with similar names are not the same person, and two versions of a procedure are not always duplicates. Keep markers that tell items apart: process ID, scope, version and access permission. When you cannot merge with confidence, keep items separate or send them for review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Test in more than one language without mixing permissions
&lt;/h2&gt;

&lt;p&gt;A team may use the same concept in Hebrew, English and an acronym. Prepare test questions in the common phrasings, including product names and internal terms. The aim is not to show that the model knows a language. It is to check that the agent reaches the same approved source whatever the language of the question. If translation created a separate memory, make sure a source update reaches that retrieval path too.&lt;/p&gt;

&lt;p&gt;A language test does not replace a permission test. Sign in as an ordinary employee and as someone with a different role, and compare what each can retrieve. A memory created in a manager's conversation should not reach another team just because the topic is similar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Measure memory quality and decide whether to expand
&lt;/h2&gt;

&lt;p&gt;Prepare a small test set with valid information, changed information, a contradiction and information the agent must not see. For each question, write the expected source and the success condition. Count how many answers relied on an old version, how many corrections reappeared and how many cases needed human review.&lt;/p&gt;

&lt;p&gt;Response time alone is not enough. A fast answer based on wrong information is not an improvement.&lt;/p&gt;

&lt;p&gt;End the pilot with a defined decision. If the agent uses the right sources and the correction path works, add one more information type and test it separately. If not, narrow what it may remember or go back to direct retrieval from the approved source.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should be ready at the end of the pilot
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A list of information types the agent may keep.&lt;/li&gt;
&lt;li&gt;A map of authoritative sources.&lt;/li&gt;
&lt;li&gt;An owner for each process.&lt;/li&gt;
&lt;li&gt;A test set that can be rerun.&lt;/li&gt;
&lt;li&gt;A short record of one correction from report to verified answer. Use test data rather than real personal details.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also set a stop condition. If old information returns after a fix, pause memory for that information type and point the agent to the approved source until it is resolved. This is a pilot design suggestion, not a feature every product guarantees. Make sure the team can actually do it and that someone has the authority to decide.&lt;/p&gt;

&lt;h2&gt;
  
  
  One step to take now
&lt;/h2&gt;

&lt;p&gt;Pick one process and prepare five questions about information that may change. Update the approved source, rerun the questions and check that the agent uses the new version and shows the right source.&lt;/p&gt;

&lt;p&gt;This English adaptation was prepared with AI assistance.&lt;/p&gt;

&lt;p&gt;Yaniv Shenhav.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Your First AI Agent Task Needs a Contract, Not More Permissions</title>
      <dc:creator>Yaniv Shenhav</dc:creator>
      <pubDate>Mon, 12 Oct 2026 08:06:05 +0000</pubDate>
      <link>https://dev.to/yanivshenhav/your-first-ai-agent-task-needs-a-contract-not-more-permissions-5882</link>
      <guid>https://dev.to/yanivshenhav/your-first-ai-agent-task-needs-a-contract-not-more-permissions-5882</guid>
      <description>&lt;p&gt;Adapted from the Hebrew guide &lt;a href="https://ainewsil.co.il/articles/ai-agent-task-fit-checklist" rel="noopener noreferrer"&gt;"AI Agent: How to Choose a Task, Set Boundaries and Check the Result"&lt;/a&gt; on AI NEWS IL (published 17 September 2026, updated 24 September 2026).&lt;/p&gt;

&lt;p&gt;An agent's first production task should be small enough to test and safe enough to stop. "Manage our support inbox" is neither. "Classify one type of support request, find the relevant policy and prepare a draft for a representative" is a better starting point.&lt;/p&gt;

&lt;p&gt;This guide turns that narrower task into a testable contract. The support example is hypothetical, not a case study or a claim of measured results.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Decide whether you need an agent
&lt;/h2&gt;

&lt;p&gt;Use an agent when the goal is clear but the next step depends on what it finds. A support request may require a policy lookup, another document or a handoff to a person.&lt;/p&gt;

&lt;p&gt;If every step is fixed, ordinary automation is usually easier to predict and test. Copying a field, sending a scheduled reminder or generating a standard report does not automatically need an agent.&lt;/p&gt;

&lt;p&gt;Before connecting anything, write one sentence:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The agent receives X, returns Y, and Z decides what happens next.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you cannot name the output or the person responsible, the task is not ready. Start with a reversible task. Do not make payments, deletion, publication or permission changes part of the first pilot.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Use a narrow support-triage example
&lt;/h2&gt;

&lt;p&gt;A customer writes: "My monthly charge has increased. Why?"&lt;/p&gt;

&lt;p&gt;The agent can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Classify the request as billing.&lt;/li&gt;
&lt;li&gt;Retrieve the approved policy section about price changes.&lt;/li&gt;
&lt;li&gt;Draft an explanation with a link to that section.&lt;/li&gt;
&lt;li&gt;Flag that it has not checked the customer's invoice and cannot confirm the amount.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A representative opens the invoice, checks the policy, corrects the draft and decides whether to send it. The agent does not send the reply or update the customer record.&lt;/p&gt;

&lt;p&gt;The point is to reduce search work without inventing service terms or exposing information. Adapt the example to your systems, privacy rules and business risks before using it.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Define an input and output contract
&lt;/h2&gt;

&lt;p&gt;Allow only the information needed: the request text, a minimal customer reference, the response language and links to approved policies. Keep passwords, payment details and unrelated files out of the model input.&lt;/p&gt;

&lt;p&gt;Use a fixed output shape:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;What the reviewer checks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Category&lt;/td&gt;
&lt;td&gt;Is it one of the allowed categories?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Confidence or uncertainty&lt;/td&gt;
&lt;td&gt;What remains unresolved?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source section&lt;/td&gt;
&lt;td&gt;Does the cited policy support the answer?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Draft reply&lt;/td&gt;
&lt;td&gt;Has the agent added a promise or changed the policy's meaning?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Items to verify&lt;/td&gt;
&lt;td&gt;What must the representative check before sending?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Define invalid outputs too. A missing source link, an unknown category or an unsupported refund promise should produce "review required" with a reason, rather than a ready-to-send draft.&lt;/p&gt;

&lt;p&gt;A missing or conflicting document is a reason to stop and ask for review. It is not a blank the model should fill.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Separate reading, drafting and acting
&lt;/h2&gt;

&lt;p&gt;For the first test, grant read access only to the approved policy folder and test requests. Do not give the agent the entire inbox, full CRM, invoices or contact directory because they might be useful later.&lt;/p&gt;

&lt;p&gt;Keep credentials outside prompts and user-visible logs. Limit access to the environment and operations required, and use short-lived credentials where supported.&lt;/p&gt;

&lt;p&gt;Treat these as separate permission stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Read approved material.&lt;/li&gt;
&lt;li&gt;Produce a draft.&lt;/li&gt;
&lt;li&gt;Take an external action.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Passing the first ten cases does not authorize sending messages. That is a new capability with a new risk and needs its own decision and tests.&lt;/p&gt;

&lt;p&gt;Ask the organization's access owner to approve the permission list. Also ask what an attacker could reach if the credential leaked. Narrow the scope before the pilot if the answer is unacceptable.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Test failure cases before real use
&lt;/h2&gt;

&lt;p&gt;Write the expected outcome for each case before running it: draft, clarification or stop.&lt;/p&gt;

&lt;p&gt;Include routine requests alongside:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Missing information or conflicting policies.&lt;/li&gt;
&lt;li&gt;An outdated document or the wrong customer reference.&lt;/li&gt;
&lt;li&gt;An unavailable external service.&lt;/li&gt;
&lt;li&gt;Sensitive information or a request requiring a financial decision.&lt;/li&gt;
&lt;li&gt;Instructions embedded in a customer message or file that conflict with the workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, a customer message might contain a demand to ignore the policy and approve a full refund. The agent should apply the approved policy and flag the request for review. The message is task data, not permission to change the workflow.&lt;/p&gt;

&lt;p&gt;Measure category accuracy, source fit, changes in meaning, reviewer corrections, time to approval and cost. There is no universal number of test cases that proves readiness. Expand the test set according to task variety, error severity and how easily harm can be detected.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Make stopping and rollback concrete
&lt;/h2&gt;

&lt;p&gt;Stop when a required source is missing, information is sensitive, uncertainty is unresolved, a financial decision is needed or a tool attempts an operation outside the allowed scope.&lt;/p&gt;

&lt;p&gt;Name one process owner who can stop the pilot. Record the limited inputs, sources, tool calls, output and human decision under your privacy policy. Changes to the model, prompt, data or permissions should trigger regression tests.&lt;/p&gt;

&lt;p&gt;Before the pilot, rehearse rollback: revoke the credential, return requests to representatives and verify that the manual process works. A rollback plan that has never been tried is still an assumption.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Measure accepted work, not generated drafts
&lt;/h2&gt;

&lt;p&gt;Run a short, defined draft-only pilot after the test set passes. Two weeks is an example, not a universal requirement.&lt;/p&gt;

&lt;p&gt;For each draft, record whether it was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used with little change.&lt;/li&gt;
&lt;li&gt;Used after corrections.&lt;/li&gt;
&lt;li&gt;Rejected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Track review time and whether the source was correct. Compare similar request types with and without the agent. A fast draft is not a saving if checking it takes longer than writing the reply manually.&lt;/p&gt;

&lt;p&gt;Set the continuation rule before the pilot. For example, continue only if corrections are small, no draft invents service terms and handling time falls. Stop for a data leak, skipped human review or costs that exceed the benefit.&lt;/p&gt;

&lt;p&gt;The first milestone is a useful draft under controlled permissions. More access is a separate decision, not a reward for a convincing demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further reading
&lt;/h2&gt;

&lt;p&gt;The Hebrew guide cites &lt;a href="https://www.anthropic.com/research/building-effective-agents" rel="noopener noreferrer"&gt;Anthropic's Building Effective Agents&lt;/a&gt;, &lt;a href="https://www.nist.gov/itl/ai-risk-management-framework" rel="noopener noreferrer"&gt;NIST's AI Risk Management Framework&lt;/a&gt; and &lt;a href="https://www.ibm.com/think/topics/how-to-build-an-ai-agent" rel="noopener noreferrer"&gt;IBM's introduction to building an AI agent&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This English adaptation was prepared with AI assistance.&lt;/p&gt;

&lt;p&gt;Yaniv Shenhav.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AI Knowledge Base Without Stale Answers: A Practical Guide to Freshness, Permissions and Sources</title>
      <dc:creator>Yaniv Shenhav</dc:creator>
      <pubDate>Mon, 05 Oct 2026 08:12:01 +0000</pubDate>
      <link>https://dev.to/yanivshenhav/ai-knowledge-base-without-stale-answers-a-practical-guide-to-freshness-permissions-and-sources-1f18</link>
      <guid>https://dev.to/yanivshenhav/ai-knowledge-base-without-stale-answers-a-practical-guide-to-freshness-permissions-and-sources-1f18</guid>
      <description>&lt;p&gt;&lt;em&gt;Adapted from the &lt;a href="https://ainewsil.co.il/articles/ai-knowledge-base-freshness-permissions" rel="noopener noreferrer"&gt;Hebrew guide&lt;/a&gt; on AI NEWS IL.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A knowledge base for an AI assistant does not start by uploading every file into one folder. It starts with a source register: an owner, a validity window and an access rule for each source. When retrieval, permissions and the update path work together, you connect it to real users.&lt;/p&gt;

&lt;p&gt;The goal is not a model that never errs. The goal is an error you can detect: which source was returned, when it was approved, who may see it, what was missing and who fixes it. A knowledge base that cannot retire an old document or honor a permission change will give fluent, wrong answers even if the model never changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Build a source register before you index
&lt;/h2&gt;

&lt;p&gt;Create one row per source, not per folder. Each row answers: what is the document, who owns it, who is it for, when is it valid, what replaces it, and how is it removed from the index.&lt;/p&gt;

&lt;p&gt;Do not assume the newest file wins. Upload date can be later than content date, and a copy moved between folders can look new while being stale. Define a precedence order per information type. A signed policy may beat a training deck, and a numbered correction notice may beat the policy until a new version ships. If there is no rule, the right state is &lt;code&gt;conflict&lt;/code&gt;. Do not ask the model to pick the document that sounds more convincing.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Separate active, historical and draft content
&lt;/h2&gt;

&lt;p&gt;A historical document can matter for audit, but it must not silently compete with the active one. Keep it in an archive behind access control and remove it from the normal answer path with a status field and an expiry date. A draft stays out of the active store until the owner approves it. A filename that says "final" is not approval.&lt;/p&gt;

&lt;p&gt;Useful metadata at minimum:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;source_id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;expenses-policy-2026&lt;/span&gt;
&lt;span class="na"&gt;owner&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ops-team&lt;/span&gt;
&lt;span class="na"&gt;audience&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;all-employees&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;active&lt;/span&gt;        &lt;span class="c1"&gt;# draft | active | superseded | expired&lt;/span&gt;
&lt;span class="na"&gt;effective_from&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-01-01&lt;/span&gt;
&lt;span class="na"&gt;reviewed_at&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-09-01&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;
&lt;span class="na"&gt;supersedes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;expenses-policy-2025&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some search products can filter on file attributes. That capability does not set your policy. Define what each field means and who may change it first, then implement filters in the product you chose.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Keep permissions end to end
&lt;/h2&gt;

&lt;p&gt;Access to the knowledge base is not permission to see everything in it. At ingest, store the audience of the source. At query time, filter results by the user's identity. In the answer, never show, quote or link a document the user may not open. A broad service account is not a reason to widen what the user sees.&lt;/p&gt;

&lt;p&gt;Check the source permissions too. A product that respects user permissions can still surface content that was shared too widely in the past. Microsoft's documentation, for example, explains that SharePoint and OneDrive controls affect discovery without changing user permissions, and that lifecycle and sharing policies help reduce oversharing. That is a statement about Microsoft 365 Copilot, not a guarantee for every RAG tool.&lt;/p&gt;

&lt;p&gt;Start read-only. The knowledge base admin can import, disable and rebuild. A normal user can ask. The model gets no write access to source documents. Deleting, changing an audience or replacing a version are logged admin actions, not the result of a chat.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Make ingestion verifiable
&lt;/h2&gt;

&lt;p&gt;A typical pipeline is ingestion, text extraction, chunking, embeddings, indexing and retrieval. Google's RAG Engine documentation shows a similar chain. It describes the product. It does not prove your documents were chunked well or that the output is faithful to the source.&lt;/p&gt;

&lt;p&gt;Log every run: run ID, source list, versions, successes and failures. A file is not searchable just because you sent it to an API. OpenAI's File Search documentation, for example, says to check that a file reached the &lt;code&gt;completed&lt;/code&gt; state, and it describes file citations and metadata filtering. If ingestion is partial, keep the previous version active or block the topic. Do not mix half an update without a marker.&lt;/p&gt;

&lt;p&gt;The tooling can be simple: a sheet or database for the register, an exporter or crawler, a parser, a search engine or vector store, a link checker, a set of reference questions, and a log that ties each question to the retrieved results and the answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Require an openable, versioned citation
&lt;/h2&gt;

&lt;p&gt;The answer should show a clear source name and a link that opens with the user's permissions. For testing, also keep &lt;code&gt;source_id&lt;/code&gt;, version and chunk ID. A filename alone can change or repeat across folders. If the source cannot be opened, the citation does not let the user verify the claim.&lt;/p&gt;

&lt;p&gt;A citation shows the system linked a claim to a file. It does not prove the claim follows from it. When testing, compare each material claim to the source sentence, check that the context was not cut off, and check that the source was valid at answer time. Also sample answers where a similar paragraph was found but belongs to another audience, product or period.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Build an acceptance test for retrieval
&lt;/h2&gt;

&lt;p&gt;Do not only check whether the wording sounds good. For each question, store the expected result at three levels: which sources should be retrieved, what may be concluded from them, and what the correct decision state is. That lets you tell a retrieval failure from a wording failure. If the right document never reached the context, a better prompt is not the fix.&lt;/p&gt;

&lt;p&gt;Include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a normal question and a rephrased one&lt;/li&gt;
&lt;li&gt;a technical term in another language&lt;/li&gt;
&lt;li&gt;a superseded document&lt;/li&gt;
&lt;li&gt;two conflicting versions&lt;/li&gt;
&lt;li&gt;a user without permission&lt;/li&gt;
&lt;li&gt;a file that failed ingestion&lt;/li&gt;
&lt;li&gt;a question with no answer&lt;/li&gt;
&lt;li&gt;a deleted link&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is no universal number of questions that guarantees quality. Pick coverage by content variety and the harm a wrong answer can cause. Useful metrics: right-source retrieval rate, share of answers with a valid source, conflicts detected, permission leaks, unanswered questions that correctly stopped, and time from approval to active. An average cannot make up for a permission leak or use of a revoked document.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Update and remove without a gray zone
&lt;/h2&gt;

&lt;p&gt;Define a change path: the owner approves a version, the admin ingests it, regression tests run, and only then does an alias switch to the new active index. Keep a way back to the previous index, but never restore a document that was revoked for safety or privacy reasons. A technical rollback is subject to the business status of the source.&lt;/p&gt;

&lt;p&gt;When a permission is removed or a document is revoked, set a response time and check every copy: source, cache, index, saved results and the test environment. Do not promise instant deletion if the product describes another retention period. Record what was deleted, what remains under policy, and when you checked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example (hypothetical): expense policy
&lt;/h2&gt;

&lt;p&gt;This is a proposed design that was not tested in production. An ops team wants the assistant to answer travel expense questions. There is an active policy, an old training deck and a draft for next year.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; the active policy and an approved correction notice. The deck is marked &lt;code&gt;superseded&lt;/code&gt;. The draft stays out of the active store.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; a short answer, an amount or rule only if it appears in a valid source, a link to the section, the version, and a state of &lt;code&gt;answered&lt;/code&gt; or &lt;code&gt;needs-clarification&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Permissions:&lt;/strong&gt; all employees can read the policy. Only ops manages versions. The model cannot write or approve expenses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tests:&lt;/strong&gt; a regular employee, a unit with an exception, Hebrew and English phrasing, a question about next year, a broken link, and a conflict between the notice and the policy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop conditions:&lt;/strong&gt; no active source found, two equal-rank sources conflict, the user is not authorized, a file did not finish ingestion, or the answer adds a condition the source does not contain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"Contact ops" is an acceptable result when there is no valid source. It is expected behavior that keeps the model from inventing policy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Two active versions:&lt;/strong&gt; stop with &lt;code&gt;conflict&lt;/code&gt;, show both sources to the owner, do not pick automatically.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Partial ingestion:&lt;/strong&gt; do not turn on the new index. Log the file and the error, retry without lowering the threshold.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source too widely shared:&lt;/strong&gt; fix the sharing or remove the source until a decision. An app-level filter does not replace source access control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Valid document not retrieved:&lt;/strong&gt; mark a retrieval failure. Check extraction, chunking, metadata and the query before you rewrite the answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Citation does not support the claim:&lt;/strong&gt; block the claim, fix the context check, add the case to regression.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No answer in the base:&lt;/strong&gt; return &lt;code&gt;no-valid-source&lt;/code&gt; with an escalation path. Do not fill in general knowledge as if it were company policy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broken link:&lt;/strong&gt; show that the source cannot be verified and route it to the owner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Permission changed after indexing:&lt;/strong&gt; run removal or rebuild, invalidate caches, and test with the user's identity that access is gone.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limits
&lt;/h2&gt;

&lt;p&gt;RAG or file search does not make a source correct, current or permitted. Chunking can separate a rule from its exception, metadata can be wrong, retrieval can miss a term, and a model can state a conclusion the source does not support even with the right context. Permissions in one product do not prove permissions in another.&lt;/p&gt;

&lt;p&gt;This guide does not replace data classification, a privacy assessment, legal advice, records management or a vendor contract review. Retention, deletion, processing region and sub-processors depend on the product, the plan and the real settings. Before using personal, confidential or regulated material, get approval from the responsible people in your organization.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;NIST AI 600-1, Generative AI Profile (published July 26, 2024). A voluntary cross-cutting framework for AI risk management. The source register and worksheet here are a proposed implementation, not a NIST requirement.&lt;/li&gt;
&lt;li&gt;OpenAI API, File Search documentation. Describes ingestion status, file citations, search result inclusion and metadata filtering for that product.&lt;/li&gt;
&lt;li&gt;Microsoft Learn, Microsoft 365 Copilot data protection architecture. Explains how permissions, sensitivity labels, sharing and lifecycle policies affect Copilot. Not a deployment guide for every RAG system.&lt;/li&gt;
&lt;li&gt;Google Cloud, Vertex AI RAG Engine overview. Lists the ingestion, transformation, embeddings, indexing, retrieval and generation chain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Originally published in Hebrew on AI NEWS IL (ainewsil.co.il), with a printable worksheet. This is an English adaptation.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;The full Hebrew guide, with the printable worksheet, is on AI NEWS IL: &lt;a href="https://ainewsil.co.il/articles/ai-knowledge-base-freshness-permissions" rel="noopener noreferrer"&gt;read the original article&lt;/a&gt;. The &lt;a href="https://www.iiai.co.il/en" rel="noopener noreferrer"&gt;Israeli Institute for AI&lt;/a&gt; runs AI training and implementation programs for organizations worldwide.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rag</category>
      <category>llm</category>
      <category>security</category>
    </item>
    <item>
      <title>Seven Controls to Put in Place Before an AI Agent Gets Production Access</title>
      <dc:creator>Yaniv Shenhav</dc:creator>
      <pubDate>Sun, 20 Sep 2026 19:26:15 +0000</pubDate>
      <link>https://dev.to/yanivshenhav/seven-controls-to-put-in-place-before-an-ai-agent-gets-production-access-6bp</link>
      <guid>https://dev.to/yanivshenhav/seven-controls-to-put-in-place-before-an-ai-agent-gets-production-access-6bp</guid>
      <description>&lt;p&gt;AI agents cross a line that ordinary chat systems do not: they connect probabilistic decisions to real actions.&lt;/p&gt;

&lt;p&gt;An agent that can read mail, update a record, run a tool, or spend money is part of your production control plane. Prompt quality matters, but prompts are not a security boundary. The controls below should exist before an agent receives production access.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Separate read, recommend, and execute
&lt;/h2&gt;

&lt;p&gt;Do not treat "access" as a single permission.&lt;/p&gt;

&lt;p&gt;Use three distinct stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Read&lt;/strong&gt; - retrieve the minimum data needed for the task.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recommend&lt;/strong&gt; - prepare a proposed action without changing external state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execute&lt;/strong&gt; - make the approved change through a narrowly scoped tool.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This split gives you useful checkpoints. A support agent may read a ticket and draft an answer automatically, while sending remains gated. A finance agent may analyze invoices but require an approval before changing payment details.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Give every tool its own narrow permission
&lt;/h2&gt;

&lt;p&gt;A single broad credential turns every mistake into a high-impact mistake. Prefer separate credentials and scopes for separate tools.&lt;/p&gt;

&lt;p&gt;Ask four questions for each tool:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which resources can it access?&lt;/li&gt;
&lt;li&gt;Which operations can it perform?&lt;/li&gt;
&lt;li&gt;How long does the permission last?&lt;/li&gt;
&lt;li&gt;Which environment does it apply to?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Short-lived credentials and environment-specific roles reduce the damage from a bad decision, a leaked token, or a malicious instruction hidden in external content.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Add an action budget
&lt;/h2&gt;

&lt;p&gt;Agents need more than an API rate limit. They need a business-action budget.&lt;/p&gt;

&lt;p&gt;Useful limits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;maximum records changed per run;&lt;/li&gt;
&lt;li&gt;maximum messages sent per hour;&lt;/li&gt;
&lt;li&gt;maximum cost per transaction and per day;&lt;/li&gt;
&lt;li&gt;maximum number of retries;&lt;/li&gt;
&lt;li&gt;maximum number of external systems touched in one workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The budget should fail closed. Crossing it should stop the run and request review, not trigger an improvised workaround.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Put approval at the point of commitment
&lt;/h2&gt;

&lt;p&gt;Approval works only when the reviewer can see the exact action that will occur.&lt;/p&gt;

&lt;p&gt;For a message, show the final recipient and wording together. For a deployment, show the target environment and revision. For a purchase, show the item, delivery address, and full total.&lt;/p&gt;

&lt;p&gt;Avoid vague approvals such as "continue" when several actions are still possible. The approval object should be concrete enough to log and later audit.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Treat external content as untrusted input
&lt;/h2&gt;

&lt;p&gt;Email, webpages, documents, issue comments, and retrieved knowledge can all contain instructions that conflict with the agent's actual task.&lt;/p&gt;

&lt;p&gt;Do not let retrieved content redefine the agent's goals, choose new tools, expand permissions, or select a new disclosure destination. Parse it as data. Keep authority in a separate, trusted control path.&lt;/p&gt;

&lt;p&gt;Test whole workflows rather than individual prompts. A sequence of individually allowed actions can still produce a harmful result.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Log decisions and effects separately
&lt;/h2&gt;

&lt;p&gt;A useful audit trail answers two different questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Why did the agent decide to act?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What changed in the external system?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Record the task identifier, tool, target, approval reference, before/after state, and provider response. Keep logs outside the agent's own write permissions when possible.&lt;/p&gt;

&lt;p&gt;Observability should also include alerts for unusual tool combinations, repeated failures, sudden increases in volume, and actions outside normal hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Build a real stop mechanism
&lt;/h2&gt;

&lt;p&gt;A stop button is not a prompt that says "please stop." It is an independent control that can revoke credentials, disable tool execution, or block the workflow runner.&lt;/p&gt;

&lt;p&gt;Define who can activate it, what it disables, and how recovery works. Practice using it before launch.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small pre-production failure drill
&lt;/h2&gt;

&lt;p&gt;Before giving an agent live access, run at least these tests:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A document contains an instruction that conflicts with the assigned task.&lt;/li&gt;
&lt;li&gt;The agent is given the wrong recipient or resource identifier.&lt;/li&gt;
&lt;li&gt;A required external service fails halfway through the workflow.&lt;/li&gt;
&lt;li&gt;The same event is delivered twice.&lt;/li&gt;
&lt;li&gt;An approval expires before execution.&lt;/li&gt;
&lt;li&gt;The agent tries to exceed its action budget.&lt;/li&gt;
&lt;li&gt;The stop mechanism is activated during a run.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The goal is not to prove that the agent never fails. It is to prove that failures are bounded, visible, and recoverable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The minimum launch checklist
&lt;/h2&gt;

&lt;p&gt;Before production access, confirm that you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a tool allowlist;&lt;/li&gt;
&lt;li&gt;least-privilege, short-lived credentials;&lt;/li&gt;
&lt;li&gt;separate read and write paths;&lt;/li&gt;
&lt;li&gt;explicit approval for high-impact actions;&lt;/li&gt;
&lt;li&gt;action and cost limits;&lt;/li&gt;
&lt;li&gt;idempotency protection;&lt;/li&gt;
&lt;li&gt;tamper-resistant logs;&lt;/li&gt;
&lt;li&gt;monitoring and alerts;&lt;/li&gt;
&lt;li&gt;a credential-level stop mechanism;&lt;/li&gt;
&lt;li&gt;tested failure and recovery paths.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An AI agent should earn more authority only after its behavior is observable under real conditions. Start with read-only access, measure what happens, and expand one permission at a time.&lt;/p&gt;




&lt;p&gt;This article is an English technical adaptation of the original Hebrew guide published by AI NEWS Israel: &lt;a href="https://ainewsil.co.il/articles/governing-ai-agents-before-production" rel="noopener noreferrer"&gt;לפני שנותנים לסוכן הרשאה: שבע בקרות שחייבות להגיע לפני הייצור&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>agents</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
