AI 资讯
Why Hitting Your Coverage Target Is Making Your Tests Worse
I had 87% coverage, and we still broke the billing flow on launch day. Not because of a gap in the percentage. Because 87% was covering the wrong things. The tests were written to pass a gate, not to catch a failure. That is a more common story than most teams admit. And the reason it keeps happening is not that engineers are careless. It is that the incentive structure you created made it the rational outcome. The series checkpoint The first three articles in this series built the investment case for testing and then dismantled the received wisdom about how to execute it. We've made the economic argument for automation. We've restructured when quality checks happen across the SDLC. We've replaced the pyramid model with something shaped by risk rather than by code hierarchy. Now, when someone asks: how do you know if it is working? The answer most teams give is their coverage percentage. This article is about why that answer is structurally broken, and why fixing it is a management decision before it is a tooling decision. What coverage percentage actually measures Coverage percentage tracks which lines of your code were executed during a test run. If a line ran, it counts as covered. That is the complete definition. It does not measure whether the test asserted anything meaningful about that line. It does not measure whether both branches of a conditional were exercised. It does not measure whether the specific inputs that cause failures were ever tried. A test that calls a payment function and checks assert response is not None covers the same lines as a test that validates the transaction ID, amount, currency, error code, and retry behaviour. The coverage tool treats them identically. The research on this is unambiguous. A 2017 study by Kochhar et al. examined the correlation between code coverage and actual bug rates across 100 large open-source Java projects. The finding: the coverage of existing test suites has an insignificant correlation with the number of b
AI 资讯
Your GitHub Actions cron fires less often than you declared: what we measured and how to design for it
We run an automated publishing pipeline entirely on GitHub Actions cron schedules — no server, no queue, just workflows that wake up, do one thing, and commit the result. It mostly works. But there is one behaviour of scheduled workflows that the docs mention in a single quiet sentence and that will silently halve your job frequency if you design around the cron expression instead of around reality: Scheduled workflows do not fire as often as you declare. What we measured We had a feedback-watcher workflow declared at four runs per hour: on : schedule : - cron : ' 7,22,37,52 * * * *' Measured over days, it actually fired one to two times per hour — not four, and not at the declared minutes. Roughly hourly on most days, at inconsistent offsets from the declared slots. We later redeclared it at two runs per hour ( 7,37 * * * * ) — measured result: still one to two runs per hour. The declared frequency changed by 2x; the delivered frequency barely moved. This is not an outage and not a misconfiguration. GitHub's own documentation says the schedule event can be delayed during periods of high load , and that high load times include the start of every hour — which is precisely where naive cron expressions cluster — and adds: "If the load is sufficiently high enough, some queued jobs may be dropped." What the docs understate is the magnitude: in our observation, on a private repo, "delayed" in practice meant "throttled to a fraction of the declared rate, indefinitely." What this breaks The failure mode is subtle because nothing goes red. Every run that happens succeeds. The runs that don't happen leave no trace — no log, no failure email, nothing. You only notice if something downstream depends on the frequency: We had promised a "reply within 15 minutes" SLA on incoming feedback, initially backed by the 4x/hour schedule. The schedule couldn't hold it, so for a while we ran a local 15-minute scheduler as the primary path and kept the workflow as fallback. When we later rel
AI 资讯
iCloud Silently Evicted 69 Article Files and Killed 4 Days of Publishing: EDEADLK and a read_text_resilient Design
Every one of my publishing lanes went dark for four days, and every script involved exited with status 0. Nothing had crashed. The files themselves had quietly stopped existing on disk — macOS had uploaded them to iCloud and deleted the local copies to "optimize storage." Why This Matters What it means for automation to depend on its environment When you run 160+ launchd jobs around the clock, the execution environment itself becomes a failure source before your script logic does. Ports get exhausted, processes orphan and pile up, memory never frees — I wrote about that class of resource leak last time. This is a completely different kind of total failure that happened the very next day. The files had become fatal to read . Not a bug in my code. Not a filesystem bug. An unintended side effect of a mechanism macOS runs under the name "optimization." What optimize-storage actually does macOS's "Optimize Storage" (System Settings → General → Storage → Optimize Storage), on a machine with iCloud Drive enabled, uploads files under Desktop and Documents to iCloud and deletes the local copies when free disk space gets tight . In Finder they still look like normal icons, but there is no local data — they are in a "dataless" state. Click one and it downloads automatically. For a human user, that's an acceptable tradeoff. The problem is automation scripts. python3 's open() , pathlib.Path.read_text() , cat , jq , cp — all of them die instantly on a dataless file with Errno 11: EDEADLK: Resource deadlock avoided . The name "Resource deadlock" makes you suspect a deadlock, but this is a POSIX errno code that macOS repurposes to mean "waiting for a file download." No lock is contended. No thread is stuck. The mere fact that "the data isn't local" surfaces to the process as a fatal error code. You can also get EAGAIN (resource temporarily unavailable). That one shows up as a race right after a download starts. The actual damage: four days of zero posts On August 6, 2026, note's a
AI 资讯
Google Gemini 3.7 Flash Goes GA Across AI Mode, APIs, and Enterprise Surfaces
Google has launched Gemini 3.7 Flash as a generally available model, extending it across the Gemini API, Google AI Studio, Vertex AI, Gemini Enterprise, the Gemini app, and AI Mode in Search. The August 13, 2026 release positions the model as the successor to earlier 3.5 and 3.6 Flash generations, with Google emphasizing stronger instruction following, improved understanding of user intent, and faster responses for coding, agentic workflows, and multi-step tasks. For enterprise developers, the significance is less about a single destination than a more consistent model layer across Google's consumer and business AI surfaces. Teams can evaluate the same model family for application development, managed enterprise use, and search-facing user journeys, while Google AI Pro and Ultra subscribers gain access through Gemini Spark as its rollout progresses. Google's official Gemini 3.7 Flash model documentation lists the GA model's specifications and launch pricing. It supports a 1 million-token context window , outputs of up to 64,000 tokens , and adjustable thinking levels. Those characteristics make the release relevant to workloads that need to process substantial source material, generate longer responses, or balance response speed against reasoning depth. What the Gemini 3.7 Flash rollout changes The core change is broad availability. Gemini 3.7 Flash is not limited to a standalone developer preview or one consumer product. Google is making it available through the Gemini API and related development environments, while also incorporating it into AI Mode in Search and the Gemini app. For AI Mode, Google says Gemini 3.7 Flash is replacing earlier Flash variants for many users in supported markets. The model's focus on following instructions and interpreting intent matters in a Search setting, where users often ask compound questions, refine requests, or expect a response to account for constraints stated in natural language. On the developer side, access spans Google AI
AI 资讯
OpenAI Computer History Remains Unavailable in the EEA, UK and Switzerland
OpenAI's Computer History feature is not currently available in the European Economic Area, the United Kingdom, or Switzerland, according to the company's Enterprise and Edu documentation. That documented regional status contradicts claims that the macOS ChatGPT capability has expanded to Pro, Business, and Enterprise users across those markets. Computer History is described as an optional feature in the ChatGPT macOS app for Enterprise members. It is intended to bring context from selected apps and websites into ChatGPT and Codex. For organizations evaluating desktop AI deployments, the distinction matters: feature access depends not only on the app and plan, but also on the user's region. OpenAI's documented regional position The relevant OpenAI Enterprise and Edu release notes explicitly state that Computer History is not currently available in the EEA, UK, or Switzerland. The August 10, 2026 help documentation repeats that regional limitation. This means companies in those locations should not plan around Computer History as an available ChatGPT desktop capability on the basis of a broader regional rollout claim. The supplied OpenAI documentation does not announce a launch date, rollout timetable, or confirmed expansion for those markets. What the release notes establish OpenAI's published material supports several clear conclusions: Computer History is an optional macOS ChatGPT feature described for Enterprise members. It can bring context from selected apps and websites into ChatGPT and Codex . The EEA, UK, and Switzerland remain excluded from current availability. The cited documentation does not support availability for Pro or Business users in those excluded regions. Availability point Claimed position OpenAI documentation EEA, UK, and Switzerland Available Not currently available User plans named Pro, Business, and Enterprise Release notes describe the optional feature for Enterprise members Desktop context Mac desktop app macOS ChatGPT app, with context f
AI 资讯
How to pull every open job from Greenhouse, Lever, Ashby and SmartRecruiters with public APIs (and monitor changes)
Job postings are one of the most underrated public data sources on the internet. Recruiters use them to spot placement opportunities, B2B teams read them as buying signals (a new Head of Data means data-tooling budget), and job seekers want to apply on day one — not when a posting finally reaches the aggregators. The usual instinct is to scrape career pages. Don't. Most tech companies host their careers page on one of a handful of Applicant Tracking Systems (ATS), and the four biggest ones — Greenhouse, Lever, Ashby and SmartRecruiters — all expose public, documented JSON APIs . No auth. No proxies. No brittle HTML selectors. The career page itself loads the same JSON you're about to fetch. In this tutorial we'll build a single-file Python tool that: fetches every open job for a company from any of the four ATS, auto-detects which ATS a company uses, normalizes everything into one clean schema, monitors changes — run it on a schedule and get only new / removed / changed postings. The four endpoints ATS Endpoint Greenhouse GET https://boards-api.greenhouse.io/v1/boards/{slug}/jobs?content=true Lever GET https://api.lever.co/v0/postings/{slug}?mode=json Ashby GET https://api.ashbyhq.com/posting-api/job-board/{slug} SmartRecruiters GET https://api.smartrecruiters.com/v1/companies/{slug}/postings (paginated) The {slug} is the company identifier you see in career-page URLs: boards.greenhouse.io/stripe → stripe , jobs.lever.co/spotify → spotify , jobs.ashbyhq.com/linear → linear , careers.smartrecruiters.com/Visa → Visa . Try one right now — no API key needed: curl -s "https://api.ashbyhq.com/posting-api/job-board/linear" | head -c 400 Step 1 — fetchers, one per ATS Each API returns a different shape, so we normalize as we fetch. Here are all four (Python 3, only requests ): import requests UA = { " User-Agent " : " ats-jobs-tutorial/1.0 " } def get_json ( url , params = None ): r = requests . get ( url , params = params , headers = UA , timeout = 30 ) r . raise_for_statu
开发者
Designing CRM Workflows Like State Machines
Business workflows can look messy. A lead arrives from a website form. Someone contacts the customer. A follow-up is scheduled. A proposal is sent. The deal either moves forward or becomes inactive. But from a software design perspective, this process can be viewed in a much simpler way: A series of states and transitions. This is one reason CRM workflows can benefit from thinking like developers. Every Lead Has a State A lead is not just a row in a database. At any point in time, it has a current state. For example: NEW ↓ CONTACTED ↓ QUALIFIED ↓ PROPOSAL_SENT ↓ NEGOTIATION ↓ WON / LOST Each transition should represent a meaningful business event. This structure makes the workflow easier to understand and reduces ambiguity. Avoid Undefined Transitions Problems appear when teams can move records anywhere without clear rules. For example: NEW → WON Is that valid? Sometimes, maybe. But if a transition skips important steps, the system may lose useful context. A better workflow defines which transitions are expected: NEW → CONTACTED CONTACTED → QUALIFIED QUALIFIED → PROPOSAL_SENT PROPOSAL_SENT → NEGOTIATION NEGOTIATION → WON NEGOTIATION → LOST This doesn't mean every business needs a rigid process. It means the system should make state changes understandable. Events Can Trigger Actions State changes can also trigger workflows. For example: Event: Lead Created ↓ Assign Owner ↓ Create Follow-Up Task ↓ Notify Sales Team Or: Event: Proposal Sent ↓ Schedule Follow-Up ↓ Set Reminder ↓ Track Response This is where workflow automation becomes useful. Instead of expecting users to remember every repetitive step, the system can handle predictable actions. Separate State From History Current state tells you where something is now. History tells you how it got there. For example: Current State: NEGOTIATION That alone is useful. But an event history gives more context: Aug 10 → Lead Created Aug 11 → First Contact Aug 13 → Qualified Aug 16 → Proposal Sent Aug 19 → Negotiation Started
AI 资讯
Hands-on: dedicated Lumpcode daemon
Lumpcode is a git-first loop manager : a small CLI that runs long agent campaigns over your own repo, in reviewable slices. Git is the gate (one PR at a time) and the source of truth (what is left is read from remote history, not a distant database). You describe the campaign once, merge what is good, and the next tick continues with the rest. A lump is one campaign under .lumpcode/lumps/<name>/ . Each context is one isolated unit of work: one branch, one PR. You can run a tick by hand, or leave a daemon on a machine that stays on. This article is that dedicated-daemon path. You author on your laptop. A second clone, that you do not develop in, runs the scheduler. When a lump lands on the primary branch, the worker picks it up. The argument for why loops should plug into git is Codemods grew a brain. Our tooling didn't. . 1. Requirements The dedicated clone is a checkout you do not develop in. Put it on a remote machine if you want it to run forever. Pre-flight hard-resets that tree. You need: Git origin with fetch and push A coding agent CLI on PATH ( cursor-agent , copilot , claude , …), already logged in Node 22+ Nothing else. No extra service to stand up. Install the /lumpcode skill so your agent has current docs while you set this up and write configs: npx skills add lumpcode/skills Use /lumpcode in the session when you hit a config or CLI question. 2. Install the CLI On both machines: npm install -g @lumpcode/cli lumpcode --version 3. Laptop: project setup, shared mode From your day-to-day repo: lumpcode project-setup --primaryBranch main Use your real integration branch instead of main if that is what you merge to. .lumpcode/local.json is gitignored and per machine. On the laptop it should be: { "mode" : "shared" } Shared mode never touches this checkout. Runs go to ~/.lumpcode/project-copies/<projectName>/ . Install @lumpcode/cli-utils and @lumpcode/recipes into this repo now , before the first push. Later TypeScript lumps import them from the project's node
AI 资讯
Regex Against a PDF: The One Endpoint That Skips OCR Entirely
Most document pipelines have a reflex. A PDF comes in, and the first instinct is: run OCR, then parse it. That reflex costs time and money on documents that never needed it in the first place. Here's the distinction that gets skipped over. A PDF generated from Word, from an invoicing system, from a web page, from almost any modern software, is "born digital." Every character on the page is already stored as text, positioned and selectable, the same way this article's text is selectable in your browser. A scanned PDF is different: it's a photograph of a page, a grid of pixels with no text underneath it at all. OCR exists to solve that second problem. It reads the pixels and reconstructs a text layer that wasn't there. PDF OCR is PDF4me's endpoint for exactly that job, and its own documentation lists "Intelligent Processing: skip OCR when text is already searchable to optimize performance" as a named feature, which is the whole thesis of this article in one line. But if the PDF already has a text layer, running it through OCR first is a wasted step: extra processing time, extra cost, extra room for OCR to introduce recognition errors into text that was already perfect. A large share of the PDFs moving through business automation, generated invoices, exported reports, system-generated confirmations, contracts drafted in Word and exported to PDF, are born digital from the start. They don't need OCR. They need something that can read the text layer that's already there and pull out exactly the values that matter. That's what Extract Text by Expression does. One regex, one endpoint POST https://api.pdf4me.com/api/v2/ExtractTextByExpression No OCR step. No AI model. No template you have to build in a dashboard first. The request is small: Parameter Type Required Description docContent Base64 String Yes The source PDF, Base64-encoded docName String Yes Filename with .pdf extension expression String Yes A standard regular expression: groups, quantifiers, and anchors all supp
AI 资讯
Building an AI Pharmacist: Detecting Drug-Drug Interactions with RAG and OCR
Ever looked at a pile of medicine bottles and wondered, "Is it actually safe to take these together?" Polypharmacy—the simultaneous use of multiple drugs—is a significant challenge in modern healthcare. Misunderstanding Drug-Drug Interactions (DDI) can lead to severe side effects or reduced efficacy. In this tutorial, we are building an AI Pharmacist Assistant , an automated engine that uses Optical Character Recognition (OCR) to scan drug labels and Retrieval-Augmented Generation (RAG) to cross-reference a drug database. By leveraging AI healthcare automation and sophisticated LLM reasoning , we can create a safety net that identifies potential contraindications in seconds. The Architecture 🏗️ The system follows a linear pipeline: capturing raw image data, converting it to structured text, retrieving medical facts from a local SQLite-based knowledge base, and finally, using an LLM to reason about the interactions. graph TD A[Drug Packaging Image] -->|Tesseract OCR| B(Extract Drug Names) B --> C{Search SQLite DB} C -->|Found Interaction Data| D[Context Construction] D --> E[LLM Reasoning Engine] E --> F[Safety Report & Warnings] C -->|Not Found| G[Web Search/LLM General Knowledge] G --> E Prerequisites 🛠️ To follow along, you'll need the following tech stack: Python 3.10+ Tesseract OCR : For extracting text from images. SQLite : To store our curated DrugBank-style interaction data. RAG Pattern : To provide the LLM with ground-truth medical data. OpenAI SDK : For the final reasoning step. Step 1: Extracting Labels with OCR 📸 First, we need to turn those pixels into text. We use pytesseract to handle the OCR process. import pytesseract from PIL import Image def extract_drug_names ( image_path ): # Pre-processing could be added here (grayscale, thresholding) text = pytesseract . image_to_string ( Image . open ( image_path )) # In a real scenario, use an LLM or Regex to pull specific # active ingredients from the raw text print ( f " Detected Text: { text } " ) return t
AI 资讯
Architecting the New Operating System: A Guide to Context Engineering
Prompt engineering is a conversation; context engineering is system architecture. In the early days of working with Large Language Models (LLMs), optimizing the prompt was enough for simple text generation tasks. But when you are building autonomous systems—like a self-hosted automation server connecting cloud databases, webhooks, and reasoning nodes—prompts alone will not keep track of APIs, past decisions, and strict output constraints. Think of the LLM as the CPU, and the context window as the RAM. Context engineering is the discipline of treating that memory as a scarce resource, meticulously designing the pipeline that feeds the model the exact facts, instructions, and tools it needs at the precise moment it needs them. The Four Core Strategies To shift from vibe-coding a chatbot to architecting a resilient multi-agent system, you must manage what enters and stays in the context window using four primary techniques: Select: Decide exactly which external sources—like database schemas or specific API documentation—enter the context window to maximize the signal-to-noise ratio. Compress: Shrink the context payload only after the key facts are successfully structured. Write: Persist the task state and intermediate decisions outside the active context window so the agent can retrieve them later. Think of this as giving the agent its own local-first markdown vault for networked thought. Isolate: Separate contexts when domains collide. Instead of forcing one model to do everything, build multi-agent systems where each agent receives a strictly scoped slice of the context. Navigating the Failure Modes Stuffing a massive context window with raw JSON logs and unstructured data is a recipe for disaster. When building complex workflows, you must engineer guardrails against these critical failure modes: Context Poisoning: Hallucinated or incorrect information enters the context and compounds over time because the agent continually reuses it. Context Distraction: The agent g
AI 资讯
Google Gemini Live Brings Voice-Started Deep Research to Mobile Multitasking
Google has connected Gemini Live with its Deep Research capability, allowing users to begin a multi-step research task by voice, leave it running in the background, and return for a spoken or transcript-based follow-up when the work is complete. The change turns Deep Research from a primarily prompt-led activity into a more conversational mobile workflow, particularly for people who need to capture a research request without staying in the app. The key distinction is not simply voice input. Gemini Live can initiate a research process that continues while a user switches apps or locks their phone. Google describes the resulting experience as a way to talk through research, with a notification when the task has finished and a seamless path back into conversation. The company's Gemini Deep Research overview for Pixel presents the capability as part of a broader effort to make in-depth research more usable on mobile devices. Deep Research itself is designed to do more than provide a single response. Google has documented a workflow in which Gemini develops a research plan, searches across sources, expands its investigation as needed, and produces a structured report with links to sources. Reports can also be exported to Google Docs. Bringing that process into Gemini Live changes how a request can begin and how a user can resume it, rather than changing the documented purpose of Deep Research. What changes in the Gemini Live research workflow The update combines conversational initiation with asynchronous execution. A user can explain a complex topic aloud, ask Gemini Live to begin Deep Research, and move on to another task while the system works. When the report is ready, the user can be notified and continue through speech or review the transcript. Workflow element Documented Deep Research experience Gemini Live integration Starting a request A research request can lead to a structured plan. A user can initiate Deep Research by speaking with Gemini Live. Research proce
AI 资讯
Google Gemini Adds Study Notebooks to Build a Structured Student Learning Hub
Google is expanding Gemini into a more structured learning environment with study notebooks , a student-focused workspace for diagnostics, personalized lessons, practice quizzes, flashcards and progress tracking. The rollout turns Gemini from a general-purpose assistant into a tool designed to organize source-based study workflows, beginning with web access worldwide and mobile support planned for later in the summer. In Google's official study notebooks announcement , the company describes a workflow that starts by assessing a learner's baseline knowledge. Gemini can then create smaller lessons tailored to a student's goals and reinforce those lessons with quizzes. The company positions the capability as part of a broader education-focused effort across Gemini and NotebookLM, rather than solely as a standalone product called Student Hub. What Gemini study notebooks add The central change is a dedicated notebook space where students can bring together their course materials and ask Gemini to produce learning activities from them. Google says users can upload sources including notes, PDFs and websites, then generate flashcards and quizzes inside a notebook. Study notebooks can also reference uploaded materials and sources while creating lessons. This structure matters because it moves the interaction beyond one-off prompts. A diagnostic quiz establishes a starting point, personalized bite-sized lessons address a learning goal, and practice quizzes provide a way to revisit material. A dashboard tracks progress within that workflow. Google also points to connections with NotebookLM, including the ability to reference past chats and outputs there. Study notebook element Confirmed role in the workflow Availability described by Google Diagnostic quizzes Establish a learner's baseline knowledge Part of the study-notebook experience Personalized lessons Create bite-sized learning content tailored to goals Part of the study-notebook experience Flashcards and practice quizzes
AI 资讯
5 Portable Agent Skills for OpenCode and Claude Code
Agent Skills turn repeated prompts into reusable, inspectable workflows. This collection includes five small skills for work that comes up often when building with OpenCode or Claude Code: reviewing public copy, checking text limits, capturing public webpages as PDFs, sending task notifications, and structuring research for later use. The full index is available at Published Agent Skills . For OpenCode, Skills can live in ~/.config/opencode/skills/ or project-level locations supported by your setup. Claude Code can discover Skills from .claude/skills/ . Put a Skill folder in the right location, restart the agent session if needed, and it becomes available when the task matches its description. 1. AI Writing Detector Skill AI Writing Detector Skill reviews English and Brazilian Portuguese copy for patterns that make AI-written text feel generic. It checks common issues such as repeated sentence rhythm, filler phrases, excessive formatting, and em-dash use. It also ships with a CLI and MCP server for text and file linting. Useful prompts: Review this README introduction with the anti-ai-tells Skill. Keep the technical facts, flag generic wording, and suggest direct replacements. Run the writing linter on this release post, then rewrite only the passages that need attention. This is useful before publishing documentation, launch posts, landing pages, and changelogs. 2. Text Counter Skill Text Counter Skill gives exact counts for characters, words, sentences, paragraphs, lines, graphemes, bytes, and phrase occurrences. It helps when "roughly under the limit" is not enough. Useful prompts: Write a 155-character meta description for this package and verify its exact character count. Reduce this GitHub issue title to 80 characters without removing the error code. Count the phrase "OpenCode" in this Markdown file. The Skill makes counting rules explicit. That avoids surprises with spaces, Unicode characters, emoji, or repeated phrases. 3. HTML to PDF Skill HTML to PDF Skill
AI 资讯
OpenAI Expands Zero Data Retention Options for Frontier Model Enterprise Workloads
OpenAI is positioning Zero Data Retention (ZDR) as a scalable privacy control for eligible frontier-model API and enterprise workloads. The policy matters as businesses use more capable models for longer-running and increasingly autonomous work, where prompts, outputs, and related interactions can contain sensitive operational, customer, or proprietary information. On its official API platform page , OpenAI lists "Zero data retention policy by request" alongside access to frontier models and APIs. The company’s enterprise privacy materials and GPT-5.4 release information add important context: ZDR is a configurable option for eligible organizations and endpoints, rather than a universal default across all OpenAI services or customer configurations. The shift is less about a newly invented privacy principle than about applying retention controls more explicitly to frontier-capable deployments. OpenAI’s GPT-5.4 materials describe Zero Data Retention surfaces and safety controls designed for higher-sensitivity contexts. That framing acknowledges a practical tension for enterprise AI: more autonomous systems can create more valuable workflows, but they also require safety systems that assess risks across related interactions. What Zero Data Retention changes for enterprise AI Under ZDR, OpenAI disables logging of customer content for abuse monitoring and model-training purposes. The setting also affects API behavior. For example, the store parameter for chat completions and responses is forced to false in ZDR contexts. That is a meaningful control for teams that need to minimize the persistence of prompt and response content. It should not, however, be interpreted as a blanket statement that no information can ever be retained anywhere in the service. OpenAI documents that some endpoints may retain application state or metadata for operational reasons. It also describes exceptional safety and retention mechanisms, including Eyes Off and Safety Retention , that may apply
AI 资讯
European Commission’s 2022 Platform Foresight Study Put Design and Policy in Focus
The European Commission’s 2022 procurement for a participatory foresight study on next-generation online platforms placed platform design and consumer behaviour within a wider policy question: how could the platform economy evolve, and what might those changes mean for European Union policymaking? The work was not a narrow experiment on marketplace user experience. Instead, it was a two-year exercise intended to identify long-term trends across online platforms and assess their policy implications. The Commission published the call, reference CNECT/2022/OP/0049 , in August 2022. Its official announcement of the foresight study on the future of online platforms lists a submission deadline of 22 September 2022 at 16:00 CEST . That makes the procurement a completed historical call, rather than a current tender opportunity. The framing remains relevant because interface design, recommendation systems and other platform choices can influence what people notice, compare and select online. But the Commission’s stated objective was broader than any one marketplace design question. It sought a structured view of the platform economy’s possible future trajectories and the public-policy issues those trajectories could raise. What the 2022 study was designed to examine The Commission described the project as a two-year participatory foresight study . Participatory foresight brings relevant groups into a structured exploration of future developments rather than attempting to predict one fixed outcome. In this case, the study was designed to identify ten topics in collaboration with Commission services, then examine long-term trends and their potential policy relevance. Design’s influence on consumer behaviour was part of the broader theme, not the full scope of the procurement. That distinction matters. A study focused solely on a marketplace interface might measure how a particular ranking, default or layout affects a defined consumer decision. The Commission’s foresight work i
AI 资讯
MCP Control Planes Bring Governance to LLM Tool Calls in Production Automation
MCP servers give large language models a route to query data sources, call software tools, and trigger actions in connected systems. That capability also changes the security boundary. n8n argues that production deployments need a dedicated MCP control plane to govern which actions an agent can take, under what identity, with which credentials, and with what record of execution. In its July 1, 2026, official guide to MCP server security , n8n describes the control plane as an orchestration layer for MCP activity. Its role is not to make an LLM inherently trustworthy. Instead, it applies operational controls around the model's requests before those requests reach target tools and systems. For enterprises exploring agentic automation, that distinction is central: capable tool use requires enforceable boundaries. What an MCP control plane changes An MCP server defines a surface through which an LLM can access tools and data. In a production setting, simply exposing that surface is not sufficient governance. A control plane adds an execution layer that can scope tool calls, isolate credentials, and log each action. n8n positions itself between the agent and target systems in this model. That intermediary role is intended to keep credentials out of the agent while allowing authorized workflows to access connected services. It also gives organizations a place to apply authorization and retain an audit trail as tool use expands across teams and systems. The shift is from treating an MCP connection as a direct capability grant to treating it as a governed request path. A control plane can make several production controls explicit: Authentication verifies the caller before access is granted. Authorization and tool-call scoping constrain which tools and actions are available for a given context. Credential isolation separates agent activity from the credentials used to reach target systems. Execution logging records actions for auditing and investigation. Least-privilege expo
AI 资讯
Your AI Agent Scheduler Needs a Clock-Skew Budget, Not Just Cron
A scheduler can be perfectly healthy and still run the wrong job at the wrong time. The failure is usually not the cron expression. It is the boundary between wall-clock time, monotonic elapsed time, leases, retries, and a process that may pause or restart. A reliable agent scheduler needs an explicit clock contract. Without one, a clock correction can make a job run twice, never run, or run after its authorization window has expired. The three clocks an agent should not conflate Use wall-clock time for human meaning and durable records: scheduled_at: when the user asked for the run not_before: the earliest acceptable dispatch time expires_at: the latest acceptable dispatch time Use a monotonic clock for elapsed-time decisions inside one process: lease renewal deadlines backoff timers watchdog intervals drain deadlines Use a database or provider sequence for ordering across processes: scheduler ownership fencing tokens attempt numbers reconciliation order A monotonic timestamp cannot be compared across hosts, and a wall-clock timestamp cannot safely measure a five-minute lease if NTP steps the clock backward. Store both kinds of evidence instead of pretending one timestamp answers every question. A small scheduling contract Here is a deliberately boring record shape: action: send_digest run_id: 01J... scheduled_at: 2026-08-19T08:00:00Z not_before: 2026-08-19T08:00:00Z expires_at: 2026-08-19T08:05:00Z lease_owner: worker-7 lease_token: 1842 attempt: 1 state: READY The important part is not the field names. It is the decision rule: The scheduler claims the run with a durable lease and fencing token. It checks wall-clock eligibility against not_before and expires_at. The worker checks that its lease token is still current before starting. The effect layer checks the token again before a side effect. If the outcome is ambiguous, record UNKNOWN and reconcile by the provider's idempotency key instead of blindly retrying. That last step matters after restarts. A clean rest
AI 资讯
Anthropic Expands Scientist Access to Frontier Models Through a Staged Biology Program
Anthropic is building a staged access path for life-science researchers to use its frontier AI systems. The company says Mythos 5 will initially be deployed to a restricted group of biology researchers under altered cybersecurity safeguards, followed by a broader trusted-access program as its protections improve. The move gives formal structure to researcher access while recognizing that advanced biology capabilities require governance beyond a standard product rollout. The most concrete details appear in Anthropic's Claude Fable 5 and Mythos 5 announcement . Anthropic says it intends to enroll a small number of researchers from life-science organizations working across fundamental and translational research. It also states that biology-research access will expand over time, contingent on stronger safeguards. This is not simply a broad public release for scientific users. Anthropic's approach separates access to highly capable life-science systems from its general product availability, creating an initial cohort and a planned trusted-access route. That distinction matters for institutions that want to assess how frontier models may fit into research workflows, procurement processes, and internal AI governance. A staged route to biology research access Anthropic's confirmed plan centers on Mythos 5, a model in the company's life-sciences-oriented Mythos and Fable line. The initial deployment is limited to a restricted set of biology researchers, and Anthropic says cybersecurity safeguards will be lifted for that cohort. The company frames the program as an early step, rather than a final availability model, with broader access intended as safeguards mature. Access pathway Who it covers What Anthropic has confirmed Initial Mythos 5 deployment A restricted set of biology researchers Cybersecurity safeguards will be lifted for the initial cohort. Planned trusted-access program Biology researchers beyond the initial cohort Anthropic plans to broaden access over time as s
AI 资讯
Claude Enters Live Life Sciences Workflows With Early Lab Results From Anthropic
Anthropic has published early evidence of Claude operating in live life sciences research workflows , moving the discussion beyond generic claims about AI-assisted science. Its January 15, 2026 report describes deployments at Stanford and MIT labs where Claude has been used for data-heavy analysis, experimental design and hypothesis generation. The results are promising, but they are best understood as case studies of lab-scale use rather than proof that AI can independently conduct scientific research. The work is centered on Claude for Life Sciences , an expanded capabilities suite that Anthropic says includes improvements in Opus 4.5, access to more than 60 databases, and genomics, proteomics and cheminformatics toolkits. In Anthropic's official report on accelerating scientific research , the company presents examples from several research groups that used Claude within existing scientific processes. The important development is not simply that researchers asked a general-purpose model scientific questions. The reported deployments connect Claude to structured scientific resources and lab-specific workflows, where scientists can assess its output against experimental context, domain knowledge and, in some cases, planned validation work. That makes the report relevant to research organizations evaluating where AI can reduce analytical friction without displacing human scientific judgment. What Anthropic's lab case studies show The case studies cover different points in the research process. Together, they illustrate where Claude may be useful: organizing and interpreting complex evidence, proposing options for researchers to assess, and accelerating work that would otherwise require substantial manual effort. At Stanford's Biomni project, researchers used Claude in genome- and data-heavy workflows. Anthropic reports that an early trial included molecular cloning design and analysis across large, multi-source datasets. The lab cited examples of tasks being complet