今日已更新 257 条资讯 | 累计 40702 条内容
关于我们

标签:#Automation

找到 567 篇相关文章

AI 资讯

Monthly Insights - Automation, Ambiguity and Agile

Automation Everything boring that can be automated, should probably be automated. Whether others know about that automation, depends upon how much it is valued over looking busy. Image by magnific I've been on a self undertaken journey at work for the past couple of months - the automation of our build process. I learnt a lot about how Jenkins works, how interactions happen between GitHub, Jenkins, Artifactory, Docker, Ansible, etc. I started slow - one build pipeline that creates and pushes Docker images, and I kept adding pipelines as I felt the need. Today, I have a suite of pipelines that run tests, code coverage, build, deploy, cleanup, and run security scans across x86 and s390x. Some highlights of this suite - A multi architecture build - UI built on an x86 agent and build folder sent over to an s390x agent. This agent then builds the backend and the final image An end-to-end .jar updater - Separate java repository whose .jar files were imported into the main repository to be called. The pipeline built these .jars and automatically created a PR on GitHub. This has freed up a lot of dev hours for my team and myself. It's also helped keep the systems (and me) sane with the insane amount of work that gets done nowadays. I keep looking for things I can automate now, especially the small, mundane tasks since the time saved really does compound up. To anyone reading this, or future me - "Automation is like getting regular exercise; you might not see immediate results, but your systems will thank you later." Ambiguity The biggest blocker of them all is often the difference in understanding of the same words Image by starline on Magnific A couple of years ago, when I just started working as a software engineer, I struggled with ambiguity. Before this, the requirements were straightforward assignments with most of them written down. Now, I hold the opinion that dealing with ambiguity and sifting through it is a large part of my job. There's multiple stakeholders, rang

2026-08-27 原文 →
开发者

I did Golden Images

Golden Images How I Stopped Manually Logging Into Every New Server The problem Every time I spun up a new server for a service, it worked but it wasn't actually ready . There was always one manual step left: log in, run through some interactive setup, get the application into a working state. Only after that could the server actually do its job. For one server, that's a minor annoyance. For a fleet that's supposed to scale up and down on demand, it's a dealbreaker. You can't call something "automated provisioning" if a human still has to remote in and click through a setup wizard before it's usable. The fix: capture the setup once, replay it everywhere The pattern here is usually called a golden image and the idea is simple: instead of repeating a manual setup step on every new machine, do it once, capture the result of that setup, and have every future machine apply that captured state automatically during provisioning. Concretely, I built a small tool that: Connects to a machine that's already been through the manual setup and is in a known-good state. Packages up just the state that setup actually produced not the whole machine, just the specific files/config that resulted from the manual steps. Uploads that package to storage, versioned. Then the provisioning script for every new machine downloads that package and applies it automatically as part of boot no human, no remote session, no wizard. The mistake worth mentioning My first version of this captured too much. Instead of packaging just the setup-derived state, it grabbed an entire application data folder which included the application's own installed binaries, not just the configuration that setup had produced. That meant every new machine, when it applied the "golden" package, got its fresh application install silently overwritten with whatever binary version happened to be running on the machine I captured from. New servers ended up running an older version of the software than the one they'd just install

2026-08-26 原文 →
开发者

AWS Introduces Specification Driven Composition for Flexible Data Workflows

AWS describes a specification-driven approach for composing flexible data workflows by separating intent from processing logic. Architecture uses declarative specifications, reusable processing capabilities, and validation before execution. AWS reports that the approach can reduce dataset onboarding from weeks to days while supporting traceability, versioning, data classification, and governance. By Leela Kumili

2026-08-26 原文 →
AI 资讯

Presentation: Can Claude Fix Itself? Using LLMs for Incident Response

Anthropic reliability engineer Alex Palcuie shares practical lessons on using LLMs for real-world incident response. He explains where AI acts as a superhuman for observing logs and traces, why it still struggles with causation versus correlation during root-cause analysis, and how engineering leaders can integrate AI into on-call workflows without eroding human expertise. By Alex Palcuie

2026-08-26 原文 →
AI 资讯

Building an Automated QA KPI Dashboard for Playwright & BDD Pipelines

Tracking test automation metrics manually often leads to outdated figures and missed engineering gaps. To solve this, automated reporting directly from your test suites—such as Playwright and Cucumber—provides clear visibility into health, execution speed, and coverage. Below is a breakdown of how to structure an Automation KPI Dashboard to streamline test metrics, track trends, and establish actionable engineering goals. Executive Summary Dashboard KPI Metric Target Current Value Status Trend Total Test Cases 100% coverage 85% 🟡 Partial ↗️ Up Automated Test Coverage 90%+ 78% 🟡 Partial ↗️ Up Pass Rate (Last Run) 95%+ 92% 🟡 Partial ↔️ Stable Avg. Execution Time < 30 min 28 min 🟢 Good ↘️ Down Flaky Test Rate < 2% 1.5% 🟢 Good ↔️ Stable Defects Detected — 3 🟡 Review ↔️ Stable CI/CD Pipeline Success 100% 98% 🟡 Partial ↗️ Up Key Metric Breakdowns 1. Coverage & Execution Total Test Suite: 120 tests (94 Automated, 26 Manual). Latest Run (2026-05-29): 94 executed — 87 passed, 7 failed, 0 skipped. 2. Flakiness Tracking Flaky Tests (Last 10 Runs): 2 scenarios identified. Top Offenders: Scenario A: UI timeout issues. Scenario B: Data synchronization lag. 3. Defect Detection & CI/CD Performance Defect Lifecycle: 3 opened, 1 closed (Avg. resolution time: 2 days). Pipeline Health: 98% success rate, 12 min average build time. Primary Cause of Pipeline Failure: Dependency resolution errors. Execution & Pass Rate Trends (Last 6 Runs) Run Date Pass % Fail % Flaky % Duration (min) 2026-05-29 92% 8% 2% 28 2026-05-28 91% 9% 2% 29 2026-05-27 90% 10% 3% 30 2026-05-26 89% 11% 3% 31 2026-05-25 88% 12% 4% 32 2026-05-24 87% 13% 4% 33 Next Engineering Action Items Automation Expansion: Push total automated coverage past 90%. Flakiness Mitigation: Refactor explicit waits and isolation for UI timeout and data sync scenarios. Pipeline Stability: Resolve dependency caching errors to bring CI/CD success to 100%. Optimization: Lower execution suite duration below 25 minutes using parallel run setups.

2026-08-26 原文 →
AI 资讯

The n8n Community Node You Need Might Already Exist

You know that moment when you're building an n8n workflow and realize: “Wait… does n8n already have a node for this?” Maybe you need a specific AI provider. Or a browser automation tool. Or some obscure database. Or a service that isn't part of n8n's core integrations. The first instinct is usually to reach for the HTTP Request node. But before writing API calls yourself, there's another possibility: Someone may have already built the node. That's one of the reasons I created Awesome n8n Community Nodes . The n8n ecosystem is bigger than it looks One of the best things about n8n is that it isn't limited to its built-in integrations. Developers can create community nodes and publish them as npm packages, extending n8n with new services, triggers, actions, AI capabilities, utilities, and more. The ecosystem has grown significantly. One existing ecosystem tracker had already indexed thousands of community nodes, showing just how quickly the space is expanding. That's great for n8n users. But it creates a new problem: Discovery. Having thousands of nodes is useful only if you can actually find the one you need. So I built a directory I created: Awesome n8n Community Nodes 🔗 https://github.com/bhavyshekhaliya/awesome-n8n-community-nodes It's an open-source, curated directory for discovering community-built n8n integrations and utilities. Instead of organizing everything as one massive list, I grouped nodes around what you're actually trying to automate. 🤖 AI, Agents & Search Looking for AI, LLM, search, agent, or AI-media capabilities? There's a dedicated section for that. 🌐 Browser, Web & Scraping Need browser automation, crawling, scraping, or web extraction? You'll find those together. 💬 Communication & Messaging WhatsApp, email, chat, notifications, and other communication-related nodes have their own category. 🗄️ Data, Storage & Observability Database, storage, infrastructure, monitoring, and data-related integrations live here. 📄 Documents, Media & Productivity For

2026-08-26 原文 →
AI 资讯

AI Cut Korean Herbal Medicine Prep Time from 300 Minutes to 5 - But the Smart Part Is What It Didn't Touch: the Korean Medicine Doctor's Judgment

Honestly, when I saw the headline "Someone in Korea used AI to cut the prep time for a dose of Korean herbal medicine from 300 minutes to 5," the first thing that caught my eye wasn't "whoa, robots can make herbal medicine now." It was how they did it—because they happened to get right the one thing most people get wrong when they think about applying AI. What Onerve Did Let's start with the facts. There's a Korean startup called Onerve (오너브), backed by the Korea Institute of Oriental Medicine, working on automating the manufacturing of Korean herbal medicine (한약). Their system is called HAP. It connects AI with electronic medical records (EMR) to automate the entire flow—from prescription input, to manufacturing, cleaning, packaging, and inventory management. The key is the raw material: they use standardized, freeze-dried herbs in a "cartridge" format—turning herbs that used to require on-site boiling and heavy manual labor into uniform, standardized modules. The result: prep time for a single dose of Korean herbal medicine dropped from around 300 minutes to around 5. They won a CES Innovation Award and closed a Series A round of roughly 6.2 billion won. And they're not alone—another Korean company, Camelotech (with its Cameleon system), is doing almost the same thing and also showed up at CES. So "Korean herbal medicine automation" is turning from a one-off experiment into an actual category. What I'm Actually Paying Attention To Isn't the Speed—It's Which Layer They Automated If all you take away from this is "300 minutes became 5," you're missing the most important part. When people see AI moving into an industry with a thousand-plus years of tradition behind it, the gut reaction is usually panic: "Are even Korean medicine doctors about to get replaced by AI?" But if you look closely at what Onerve actually automated—it's the manufacturing , not the diagnosis and prescribing . Deciding which medicine a person should take, how to adjust the dosage, how to read t

2026-08-26 原文 →
AI 资讯

Which Skill Is Quietly Burning Your Tokens? Find Out From transcript.jsonl

Your monthly Claude Code bill went up 20%. You know that much. What you don't know is which Skill did it — and nothing in the tooling will tell you. Run /usage in Claude Code and you get claude-sonnet-4-6: ¥3,240 — a per-model total and nothing else . "More expensive than last week" is visible. "Which Skill caused it" is not. usage-breakdown.sh closes that gap. It's a 106-line shell script that parses transcript.jsonl with Python and tallies call counts per Skill, Agent, and MCP server using Counter . This article walks through how the script works and how to run it, with the actual code and actual numbers. Why This Approach Works What Claude Code Is Actually Recording Claude Code streams every operation during a session into .jsonl files under ~/.claude/projects/ . It's JSONL — one event per line, one file per session. The files sit under a <project-id>/ directory. The skeleton of a single record looks like this: { "message" : { "role" : "assistant" , "content" : [ { "type" : "tool_use" , "name" : "Skill" , "input" : { "skill" : "pre-completion-self-audit" } } ] } } Inside message.content[] sit "type": "tool_use" blocks. The name field is the name of the tool that was invoked. The Bash tool, the Edit tool, the Skill tool, the Agent tool, MCP calls — all of it is recorded in this same format. Once I noticed that, the thought was: run this through a Counter and everything becomes visible. For the Skill tool, the skill name lives in input.skill ; for the Agent tool it's input.subagent_type ; and for MCP servers, the tool-name convention mcp__<server>__<tool> lets you extract the server name by splitting on __ . The structure is consistent, so the parser comes out surprisingly simple. What /usage Doesn't Tell You What Claude Code's /usage command outputs is a per-model cost total for a period. Model Cost claude-sonnet-4-6 ¥3,240 claude-opus-4-8 ¥ 892 Useful as far as it goes, but the breakdown of that cost is invisible . You can't see which session, which Skill, how ma

2026-08-26 原文 →
AI 资讯

A LaunchAgent gets `Operation not permitted` for `~/Documents` while Terminal works

The same zsh script could list ~/Documents when I ran it in Terminal. Started as a LaunchAgent, it failed with: ls: /Users/administrator/Documents: Operation not permitted The LaunchAgent had the same user ID, the same $HOME , and the same script. That combination makes this look like a Unix permission problem. In this test it was not. The useful discriminator was the launch context: access succeeded from Terminal, failed from launchd , and still succeeded for a path outside the protected folder. I reproduced this on macOS 15.6.1 (Darwin 24.6.0) with a LaunchAgent in gui/501 . The probe was removed after the test. Why chmod is the wrong first check The obvious suspects were file ownership, a wrong home directory, or a job running as another user. The probe printed those facts before touching the files: #!/bin/zsh print -- "user= $( id -un ) uid= $( id -u ) " print -- "home= $HOME pwd= $PWD " /bin/ls " $HOME /Documents" 2>&1 | /usr/bin/head -5 /bin/cat " $HOME /Documents/vinh/working/CLAUDE.md" 2>&1 | /usr/bin/head -1 # Negative control: outside Documents /bin/ls " $HOME /.pf004" 2>&1 | /usr/bin/head -5 The two runs produced this difference: Check Terminal LaunchAgent in gui/501 User / uid administrator / 501 administrator / 501 $HOME /Users/administrator /Users/administrator ls ~/Documents Listed entries Operation not permitted cat inside ~/Documents Read the file Operation not permitted ls ~/.pf004 Listed entries Listed entries The working directory differed, but the script used absolute paths under $HOME , so PWD=/ did not explain the denial. The negative control mattered more: the LaunchAgent could read another directory owned by the same user. Changing ownership or mode bits would not explain why only the launch context changed the result. The owning layer is the privacy context On this machine, the access decision was attached to how the process was launched, not just to uid 501. Terminal had a privacy context that allowed access to the user's Documents folder.

2026-08-26 原文 →
AI 资讯

Gemini in Chrome Adds Select from Screen for Faster Image and Page Analysis

Google has expanded Gemini in Chrome with a desktop workflow that lets users send a selected part of a web page directly to Gemini. Called Select from screen , the feature is designed for moments when a full page is not the relevant context: a user can draw a box around particular text, an image, or a mixed section of page content and ask Gemini to analyze or act on it in Chrome's side panel. The change makes Gemini more closely embedded in everyday browser work. Rather than manually describing what is on a page or switching between tools, users can identify the exact on-screen material they want Gemini to consider. For teams that regularly research products, review creative assets, compare information, or work from web-based documents, that can make AI assistance more immediate. Its usefulness will still depend on whether Gemini in Chrome is enabled for the user and, for managed environments, how administrators configure access. How Select from screen works Google's official instructions for sharing specific parts of a screen with Gemini in Chrome describe a straightforward process. Users open the Gemini side panel in Chrome, choose Select from screen , then draw around the area they want to share. The chosen content is sent to Gemini as the basis for the next interaction. The important distinction is that the feature is not limited to a single content type. Google says the selected region can contain text and/or images . That gives users a more precise way to supply context from a web page without treating the entire page as the prompt. Workflow element General Gemini interaction in Chrome Select from screen Context provided User supplies a request in the Chrome side panel User selects a defined region of a web page for Gemini Content types Depends on the interaction and context available Selected text, images, or a region containing both Selection method No region-selection step Draw a bounding box around the relevant content Why the workflow matters The value is

2026-08-26 原文 →
AI 资讯

Automatizaciones para pymes: las cinco que siempre piden, ordenadas por lo que cuesta mantenerlas

El chatbot va último: cómo ordeno las cinco automatizaciones que más me piden Tengo 16 flujos en producción para pymes y la lista de pedidos se repite casi siempre igual. Lo que no se repite es cuál conviene hacer primero. La discusión habitual las ordena por dificultad de construcción, y esa es la métrica equivocada. Construir es la parte barata: el modelo escribe la mayor parte. Lo que se paga después es el mantenimiento, y ahí el orden se da vuelta. Van las cinco, ordenadas por lo que cuesta sostenerlas, de la peor a la mejor. 5. Responder consultas frecuentes La que todos piden primero y la que más mantenimiento tiene. Parece contenida: son las mismas veinte preguntas. No lo es, porque el contexto que necesita se mueve todo el tiempo. Cambia el catálogo, cambian los precios, cambia el horario en verano. Meta cambia requisitos de la API. El modelo se actualiza y el mismo prompt deja de comportarse igual. Y sobre todo: es la única de las cinco donde el error lo ve el cliente . Un bot que inventa un precio no genera un ticket interno, genera un reclamo. Si igual va primera —y a veces va, porque es la que se ve—, presupuestala con el abono adentro desde el día uno. 4. Turnos y reservas La más engañosa de la lista. Tomar un turno es trivial; el problema es todo lo demás. Cancelaciones, reprogramaciones, dos personas pidiendo el mismo horario con cuatro segundos de diferencia, el turno que se cargó a mano en el sistema y el bot no vio. Es estado compartido con escritura concurrente , que es un problema viejo y conocido, disfrazado de chatbot. Si la agenda vive en un sistema con API decente, baja bastante. Si vive en un Google Calendar que además tocan tres personas a mano, no la subestimes. 3. Mover datos entre sistemas La que más valor devuelve y la que menos depende de vos. El trabajo real casi nunca es la transformación de los datos: es el sistema del otro lado. Y en pymes ese sistema suele ser uno de gestión local, sin API pública, sin documentación, y con un prov

2026-08-26 原文 →
AI 资讯

How not to use sub-agents!

What a 500-script migration taught me about when agent parallelism actually makes sense I recently started working on a migration involving roughly 500 scripts . The goal was to migrate legacy logging calls to a newly implemented structured logging engine, with unique logging channels for tracing and observability through Grafana, Loki, Tempo, and Alloy . The new logging engine was already implemented and available through a common include path. What remained was the tedious part: updating hundreds of existing scripts. My first thought was simple: "There are 500 files. Why not use 10 sub-agents and finish this faster?" It sounded like a perfect use case for agentic coding. It wasn't. The problem wasn't the number of files. It was what I was asking the agents to do . 1. The Initial Approach: More Agents = More Speed? The idea was to divide the files into batches and give each batch to a mini-model. Main Agent │ ┌─────────────┼─────────────┐ ▼ ▼ ▼ Agent 1 Agent 2 Agent 3 50 files 50 files 50 files │ │ │ └─────────────┼─────────────┘ ▼ Migration Each agent received essentially the same instructions: find legacy logging replace it with the new structured logger use the correct channel preserve business logic complete its assigned files The files were independent, so the approach looked reasonable. But each agent was doing much more than the actual migration. It was also rediscovering the repository, figuring out what needed changing, deciding channel names, and keeping track of its own progress. That repeated work became the real cost. 2. What Actually Happened The problems were not primarily with the code changes. They were with the work surrounding them. Problem 1: Tracking completed work With multiple agents, someone needs to know: which files are pending which are being processed which are completed which failed which should be skipped That is workflow state. A JSON file, database, or task queue is designed for this. An LLM context isn't. Problem 2: Finding what act

2026-08-25 原文 →
AI 资讯

From Static RPA to Dynamic AI Agents: Hyper-Automating Enterprise Operations for 40% ROI

Introduction & Industry Context The pursuit of operational efficiency has long been a cornerstone of enterprise strategy. For decades, Robotic Process Automation (RPA) served as the primary vehicle, automating repetitive, rule-based tasks across various departments. While RPA delivered initial gains, its inherent limitations—rigidity, high maintenance, and inability to handle ambiguity—are now becoming glaring bottlenecks in an increasingly dynamic business landscape. The digital era demands more than just automation; it requires hyper-automation: intelligent, adaptive systems capable of autonomous decision-making and continuous learning. This is precisely where the breakthrough of AI agents emerges, offering a paradigm shift from static, brittle automation to dynamic, resilient, and highly adaptable enterprise workflows. This blueprint outlines how CEOs and CTOs can strategically leverage modern AI agent orchestration to achieve unprecedented operational ROI. The Core Problem & Business/Technical Impact Traditional RPA solutions, while effective for strictly defined processes, struggle immensely with variability. Any deviation from a pre-programmed path, new data formats, or evolving business rules often leads to bot failures, requiring extensive human intervention and costly reprogramming. This rigidity manifests in several critical business impacts: Escalating Operational Costs: High maintenance overhead, constant recalibration, and the need for human exception handling negate much of the initial cost savings. Stifled Agility: Businesses cannot rapidly adapt to market changes or introduce new services when automation pipelines are inflexible. Missed Opportunities: Complex, unstructured data remains largely untouched by RPA, preventing deeper insights and value extraction. Human Resource Drain: Valuable human capital is trapped in mundane exception handling and bot maintenance, diverting focus from strategic initiatives. Hidden Tech Debt: A sprawling ecosystem of

2026-08-25 原文 →
AI 资讯

Rate limits are not quality gates: the guardrail stack behind an AI agent that posts publicly every day

Our AI agent posts publicly every day — social posts, replies to strangers, comments on other people's articles — with no human reviewing individual messages before they go out. That sentence should make you nervous. It makes us nervous, and we built the thing. Rate limits alone don't fix it. An agent that sends 20 polite, on-topic messages is fine; an agent that sends 20 copies of the same "Great post! 🚀" is a spammer at any rate. Volume and quality fail differently, so they need different machinery. Here is the full stack of gates ours passes before a single reply lands, and — the part that took longest to learn — which gates must be code and which can stay judgment . Layer 1: hard caps, enforced in code, not prompts Numeric limits live in one module that every posting path imports. A global daily cap across all outbound types (ours is 60) and a per-batch reply cap (20). Quote-posts have no separate quota — they simply count against the global cap like everything else, which is the point: one counter, no per-type exemptions. When the cap is hit, the send function refuses — the model doesn't get to "decide" anything, because the branch it would need isn't reachable. The design rule: a cap that lives in the prompt is a suggestion; a cap that lives in the send path is a limit. Prompts drift, sessions get compacted, instructions get summarized away. if (todayCount >= CAP) throw does not. Layer 2: sameness detectors Spam is repetition more than it is volume, so repetition is what we test for — mechanically, in the commit gate and again before send: A canned-phrase blocklist : the marketing openers everyone recognizes ("Just launched", "now available", the rocket emoji) fail the build. The list is versioned; every incident adds to it. Near-duplicate detection : 3-gram Jaccard similarity between any queued post and the last 60 days of sent history. Above 0.4, the batch is rejected. Our genuinely-different posts measure under 0.1 against each other, so the threshold has f

2026-08-25 原文 →
AI 资讯

HyperFrames: HTML-to-MP4 Rendering as an Agent-First Primitive

HyperFrames is a TypeScript framework that takes HTML, CSS, and GSAP animations and produces seekable MP4 files. It runs locally via CLI, integrates with AI agents through MCP and skills.sh, and ships with a hosted playground. The core promise is deterministic video output from code, which means agents can write HTML and get frame-perfect video without manual timeline editing. The project has 42K stars and is trending #11 on GitHub for TypeScript. HeyGen built it to make video generation programmatically addressable. The architecture is Puppeteer for DOM rendering, GSAP for animation timing, and FFmpeg for encoding. The interesting part is how it guarantees determinism when each layer is async by default. Why HTML-to-Video Matters for Agents Most video generation tools target human designers. You drag keyframes, adjust curves, export. Agents need something different: a function that takes structured input and returns a file. HyperFrames treats video as a build artifact. You write HTML with animation code, run a command, get an MP4. This shifts video from creative workflow to infrastructure. An agent can generate a data visualization, encode it as HTML with GSAP transitions, and call HyperFrames to render. No GUI, no manual export, no non-deterministic output. The same HTML always produces the same video. The MCP server integration means agents can invoke HyperFrames as a tool. The skills.sh distribution packages it as a skill set that coding agents can install and call. This is video rendering as a first-class agent capability, not a side effect of screen recording. Architecture: Puppeteer, GSAP, and FFmpeg HyperFrames chains three components: Puppeteer launches a headless Chromium instance and loads your HTML. GSAP (GreenSock Animation Platform) runs animations inside the browser. GSAP is deterministic because it uses explicit timelines, not CSS transitions or requestAnimationFrame drift. FFmpeg encodes the captured frames into MP4 with H.264 or other codecs. The p

2026-08-25 原文 →
AI 资讯

52 Days, 2,340 Rows, Every Cost Logged as Zero: The Stop Hook Trap

Going from a $700/month student side hustle to a real business in six months came down to one thing: I stopped instructing Claude and started letting it run the whole environment autonomously. That environment then spent 52 days writing 2,340 log rows where every single cost was zero — and it never once complained. Why This Setup Works Most people who start with Claude Code use it as a convenient chat AI. But once monthly revenue crosses a certain threshold, your thinking shifts. Instead of "issuing instructions and getting output," you move to "letting the whole environment run itself." Here's the concrete difference. In the first mode, you type a prompt every time and get a result back. In the second, hooks fire while you sleep, scripts execute, and logs accumulate. In my case, there are a dozen-odd jobs running on a schedule via launchd, and a Claude Code Stop hook that fires at the end of every session. I wake up to yesterday's brief sitting on my Desktop, and a record in ~/.claude/metrics/costs.jsonl of how many tokens each session consumed — that was the ideal, anyway. Why track cost at all? Claude Code's MAX plan is a flat monthly fee, but there's an intuitive ceiling where "using too much effectively chokes next month's capacity." Without visibility into which session used which model and how much, you're running autonomous agents with zero cost awareness. The more convenient an autonomous environment gets, the more it silently eats. That's why measurement comes first. The Stop hook is the mechanism that handles this measurement. When a Claude Code session ends (when the user runs /exit , or on timeout), it runs the commands registered in the Stop section of settings.json . Put a cost-aggregation script there and you get a "session ends = automatically recorded" pipeline. No more hand-typing costs into a spreadsheet. "It's running" and "it's running correctly" are different things — any engineer knows the feeling. Logs streaming out with all-zero contents is

2026-08-25 原文 →
AI 资讯

ChatGPT and Gemini Rarely Agree on Top Local Businesses, Study Finds

AI visibility is not a single score that a business can measure once and treat as settled. A cross-engine study of local-service searches found that ChatGPT and Gemini named the same top business in only 4.2% of identical queries . For small businesses trying to be discovered through AI assistants, that gap means a strong result in one engine may say very little about how another assistant presents the market. The research, published by Steady Demand in its AI Citation Ledger , examined 1,487 queries across 50 U.S. metropolitan areas and 10 service verticals. It focused on prompts such as “best plumber near me,” tracking the businesses named and the sources used to ground responses. Its central finding is practical: AI-driven discovery is fragmented by engine, source mix, location, and category . That does not prove that AI responses drive more leads than conventional local search. The study measures citations and top-name outcomes, not conversions or overall ranking quality. But it provides a useful baseline for marketers because it shows why checking a brand in one AI assistant is not enough to understand its broader AI visibility. What the cross-engine data shows The study compared how Gemini and ChatGPT answered the same local-business prompts. Their differences extended beyond the final recommendation. The systems often drew on different source ecosystems, which helps explain why they surface different businesses. Measure Gemini ChatGPT Exact top-business match between engines 4.2% of identical queries produced the same top business Typical citation mix About 60% of citations were business websites More reliance on Reddit and traditional directories Overlap in cited domains About 8% overlap Repeated-query source alignment About 40% alignment, described as grounding drift Top-result repeatability benchmark About 7% top-match stability in AI-generated results Not specified separately in the supplied research The contrast with Google’s local pack is notable. In th

2026-08-25 原文 →
AI 资讯

n8n MCP Server Expands Agent Automation From Prompts to Governed Workflows

n8n is expanding its approach to agent-based automation with a native Model Context Protocol (MCP) architecture that connects AI clients to workflow building and operations. Its MCP Server can generate and update workflows from natural-language prompts, validate and test them, and execute them from within an n8n instance. The development moves n8n beyond treating AI solely as a step within an automation, toward allowing AI systems to work with the automation environment itself. The platform's official n8n MCP Server announcement describes the feature as first-party and in public preview for n8n Cloud, Enterprise, and Community editions. In practical terms, an external MCP client can connect to n8n to search, trigger, test, and extend workflows. That makes the MCP Server the central development, while companion client tooling, skills, memory capabilities, scheduling tools, and chat integrations provide the broader foundation for agent-led work. What n8n's MCP architecture changes MCP uses a client-server model. In n8n's implementation, the MCP Server runs in n8n and exposes capabilities that connected clients can use. The supported ecosystem includes external AI clients such as Claude, ChatGPT, Cursor, and Windsurf, according to n8n's documentation and examples. Rather than manually translating an automation request into nodes and connections, a user can direct a compatible client to work against the n8n environment. The important distinction is that this does not remove workflows from the picture. n8n's own guidance continues to position workflows as appropriate for deterministic logic. MCP adds an agent-facing layer for work that benefits from natural-language interaction, iterative construction, tool use, or context-aware assistance. The result is a division of responsibilities: workflows can retain explicit business rules, while agents can help design, invoke, and adapt the surrounding automation. n8n component Role in the MCP approach Supported use described in

2026-08-24 原文 →
AI 资讯

Generating 50+ SEO Landing Pages from a Static Site Build Script

I run TextTimeTools , a free site with speaking-time and reading-time calculators. It's a pure static site deployed to Cloudflare Pages — no backend, no database, no CMS. The calculators themselves are one page. But the site has 50+ pages , each targeting a different keyword like "how many words is a 5 minute speech" or "how long to read 1000 words". Every single one of those pages is generated by a build script. I've never written one by hand. Here's the pattern, and why it's the highest-leverage thing I've done for this site's organic traffic. The problem with a single calculator page A speaking-time calculator answers one query well: "how many words is my speech". But people don't search for tools — they search for answers : "how many words is a 5 minute speech" "how many words for a 3 minute speech" "how long to read 1000 words" "how long to read 5000 words" Each of those is a separate keyword with its own search intent and its own competition. One calculator page can't rank for all of them — a page titled "Speaking Time Calculator" has no reason to show up for "how long to read 1000 words". The classic fix is to write a page per keyword. That works, but it doesn't scale — every new keyword means hand-writing another page, and keeping them consistent is a nightmare. The fix: generate pages at build time The build script ( gen-longtail.cjs ) takes a list of keyword targets and emits a complete, keyword-specific HTML page for each one. The word count pages and reading time pages are both generated this way. const PAGES = [ { minutes : 1 , slug : ' how-many-words-is-a-1-minute-speech ' , variant : ' is-a ' }, { minutes : 2 , slug : ' how-many-words-is-a-2-minute-speech ' , variant : ' is-a ' }, { minutes : 5 , slug : ' how-many-words-is-a-5-minute-speech ' , variant : ' is-a ' }, // ... up to 15 minutes { minutes : 2 , slug : ' how-many-words-for-a-2-minute-speech ' , variant : ' for-a ' }, { minutes : 5 , slug : ' how-many-words-for-a-5-minute-speech ' , variant :

2026-08-24 原文 →