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

标签:#ai

找到 4824 篇相关文章

AI 资讯

The Ralph Loop Is Not Enough

"I don't prompt Claude anymore. My job is to write loops." — Boris Cherny, Claude Code creator Though I see where he's coming from, I'd put it differently. A developer's job isn't to write loops. It's to design state machines. Every major agent framework — Claude Code, Codex, Cursor, LangGraph — does the same thing under the hood. A while loop calls an LLM, checks if it wants to use a tool, runs the tool, repeats until done. The loop isn't just a solved problem. It's a boring problem. The hard part is everything around it. A loop has no idea what state the work is in. It just keeps going until something breaks or you run out of tokens. That's the Ralph Loop — named after the Simpsons kid who put a crayon in his nose. Agent, infinite loop, go. The Ralph Loop works, is famous, and has zero memory of where it is in the job. Like Ralph, it keeps going without knowing why. The Fix: A Finite State Machine Think about the NBA Finals. The Spurs and the Knicks aren't improvising — every possession has a state. Fast break. Inbound play. Half court set. Each one has specific reads and triggers for what happens next. Point guard De'Aaron Fox isn't making it up as he goes. The system tells him what situation he's in, and the situation tells him what to do. Your agent works the same way. You define the stages — planning, implementing, reviewing, error handling — and you define what triggers each transition. The agent doesn't orchestrate. It executes. One focused job per state. Why This Matters in Production When agents break, it's almost always one of three things: Infinite loops — one system repeated the same answer 58 times before anyone noticed. Context overflow — the history gets so long the model starts quietly forgetting things. Goal drift — 70 turns in, "don't touch auth" has completely evaporated. State machines fix all three. The loop runs until the list is empty, not until you run out of tokens. The goal lives in the transition logic, not in the context getting squeezed

2026-06-11 原文 →
AI 资讯

The End of Vibe Coding: Why I Switched to Structured AI Workflows

The End of Vibe Coding: Why I Switched to Structured AI Workflows I spent 3 months "vibe coding" my SaaS. Then I realized I was spending more time fixing AI's mistakes than if I'd written it myself. Here's the system that changed everything. In early June 2026, two HN threads with a combined ~1,300 comments told me something had shifted. Thread 1 (~1,100 comments): "What was your 'oh shit' moment with GenAI?" Thread 2 (~230 comments): "What tools have you made for yourself since AI?" Both threads had the same pattern: people started with unfiltered excitement ("I built a whole app in one weekend!"), then hit a wall ("I'm spending more time fixing its bugs than writing code from scratch"). I know the feeling. I lived it. The Vibe Coding Trap When I started building MultiPost — an AI-powered cross-platform content tool — I was deep in "vibe coding" mode: Me: "Make it look better" AI: *adds Tailwind, restyles everything* Me: "Add a filter by date" AI: *adds a date picker, breaks the layout* Me: "Fix that bug where posts don't show" AI: *fixes the filter, introduces a null pointer* Me: "Okay now add a dark mode toggle" AI: *regenerates half the component from scratch* Three weeks later I had a working feature and zero understanding of how any of it actually held together. This was my daily rhythm for weeks. Fast output, slow cleanup. The ratio kept getting worse as the codebase grew. I was optimizing for speed of generation instead of speed of delivery . The "Oh Shit" Moment It came when I reviewed a feature I'd built entirely through unstructured AI sessions. The feature worked. But: The code had 3 different patterns for the same thing (Auth0 token handling in one place, hardcoded keys in another) Error handling was inconsistent — some functions returned null, others threw, others returned Result types Database queries were scattered across the codebase instead of in a repository layer A security reviewer would have cried The AI didn't do this maliciously. It did this

2026-06-11 原文 →
AI 资讯

Zero Data Leakage: Running Llama-3 Locally on iPhone with MLX-Swift for Ultra-Private Health Logs

Your health data is probably the most sensitive information you own. Yet, most "AI Health Assistants" today require you to ship your symptoms, moods, and medical history to a cloud server. In the era of Edge AI and Privacy-preserving machine learning , this is no longer a trade-off we have to make. By leveraging the MLX Framework and Apple Silicon's unified memory, we can now run on-device LLMs like Llama-3-8B directly on an iPhone. This tutorial explores how to build a 100% offline, local health journal that summarizes your daily wellness without a single byte leaving your device. If you're looking for more production-ready patterns for secure AI, definitely check out the advanced guides over at Wellally Tech Blog . Why MLX-Swift? 🍏 Apple's MLX is a NumPy-like array framework designed specifically for Apple Silicon. When brought into the Swift ecosystem via mlx-swift , it allows us to tap into the GPU and Neural Engine with incredible efficiency. The Architecture: 100% Offline Inference Unlike traditional CoreML conversions that can be rigid, MLX allows for dynamic graph execution. Here is how the data flows from your typed notes to a structured health summary: graph TD A[User Input: Health Notes] --> B[SwiftUI View] B --> C{Privacy Layer} C -->|Local Only| D[MLX-Swift Engine] D --> E[Llama-3-8B Quantized Model] E --> F[Unified Memory / GPU] F --> G[Local Inference] G --> H[Markdown Health Summary] H --> B style C fill:#f9f,stroke:#333,stroke-width:4px style E fill:#00ff0022,stroke:#333 Prerequisites 🛠️ Device : iPhone 15 Pro or later (8GB RAM is highly recommended for Llama-3-8B). Software : Xcode 15.3+, iOS 17.4+. Tech Stack : MLX Framework, SwiftUI, Llama-3-8B (4-bit quantized). Step 1: Setting Up the MLX Engine First, we need to integrate the mlx-swift package. In your Package.swift , add: . package ( url : "https://github.com/ml-explore/mlx-swift-chat" , branch : "main" ) Now, let's initialize the model. Because we are on a mobile device, we must use a quantiz

2026-06-11 原文 →
AI 资讯

Everything that breaks when you mirror a Webflow site (and the fixes)

Webflow's code export has two problems. It is only available on paid Workspace plans, and even when you pay, it does not include your CMS content: collection lists export as empty states, collection pages export with nothing in them. If your site has a blog, the export gives you a site without a blog. Forms and search are disabled in exported code too, per Webflow's own docs. Meanwhile, the published site is sitting on a CDN, fully rendered. Every CMS page is real HTML. wget --mirror will happily fetch all of it. What wget gives you, though, is not deployable. I migrated a production Webflow site this way and hit the same five breakages everyone hits, so I turned the fixes into a Claude Code skill that runs the whole workflow. This post is the five breakages, because they are useful whether or not you use the skill, and they apply to Framer, Squarespace, and friends with different domain names. Setup: the mirror itself The one wget incantation that matters, because Webflow serves assets from a separate CDN domain and you have to tell wget to follow it: wget --mirror --convert-links --adjust-extension \ --page-requisites --span-hosts \ --domains = yourdomain.com,cdn.prod.website-files.com \ --no-parent https://yourdomain.com/ This downloads every page plus the CSS, JS, images, and fonts they reference, and rewrites URLs to relative paths. It looks complete. It is about 90% complete, and the missing 10% is invisible until the page renders blank. Breakage 1: the page renders blank, console says "integrity" The symptom: your mirrored page shows raw unstyled text or nothing at all, and the console says Failed to find a valid digest in the 'integrity' attribute . The cause is subtle. Webflow ships its <link> and <script> tags with SHA-384 SRI hashes. wget's --convert-links rewrites URLs inside the downloaded CSS files, which changes their bytes, which means the SRI hash no longer matches, which means the browser silently refuses to apply the stylesheet. The file is right

2026-06-11 原文 →
AI 资讯

AI Agent Memory Is Not Chat History

Most AI agent systems start with a simple idea: "Let's give the Agent Memory". At first, this usually means saving previous messages, retrieving similar chunks, and injecting them back into the prompt. That works for demos. It does not work reliably for real organizational workflows. Because chat history is not memory. A vector database is not memory. A bigger context window is not memory. Those are storage and retrieval mechanisms. Useful, yes. But memory in an AI Agent System is not just about remembering more information. It is about deciding what should influence future behavior. And that is a much harder problem. The Simple Version When people say "Agent Memory", they often mix together very different things: Conversation history User preferences Workflow state Previous tool results Retrieved documents Task summaries Business rules Approved policies Model-generated assumptions Evidence of completed actions But these should not all be treated the same way. A user saying "I usually prefer short answers" is not the same kind of memory as "invoice #123 was paid". A model saying "the client is probably interested" is not the same as a CRM record. A previous chat message is not the same as a runtime audit log. An approved company policy is not the same as a generated summary. When all of these are thrown into the same context window, the agent may look smarter for a while. Then it slowly becomes unreliable. More Context Can Make Agents Worse A common instinct is to give the agent more context. More history. More documents. More summaries. More retrieved chunks. More memory. But more context does not automatically mean better reasoning. Sometimes it means more noise. Sometimes it means stale information. Sometimes it means private information leaking into the wrong task. Sometimes it means the model starts treating old assumptions as current facts. Sometimes it means low-authority memory overrides high-authority evidence. This is one of the strange things about AI Age

2026-06-11 原文 →
AI 资讯

Your vector memory database remembers everything. That’s exactly the issue.

There is a design assumption baked into almost every vector database and AI memory implementation that sounds reasonable until you watch it grow nodes in production: that remembering more is always better. Through testing and refining our AUDN code, that is not exactly correct. After running VEKTOR Slipstream against real development sessions for 99 days, the database held 1,413 stored memories across four namespaces. Looking at the importance score distribution, 83 percent of those memories sat below 0.25 out of 1.0, what the system considers the noise floor. The remaining 17 percent, just 60 memories out of 1,413, sat above 0.75 and dominated every recall result. This is exactly what a curation layer is supposed to produce. Those 1,154 low-scored memories are accurate. They are not deleted. They are retrievable by direct query. What they are not is important enough to compete with the 60 high-signal entries every time the agent needs context. AUDN penalised them gradually over hundreds of writes because similar, more specific, or more frequently reinforced memories covered the same ground better. The system created a hierarchy. Without curation, all 1,413 memories would compete equally for every recall slot — and the agent would consistently surface redundant, lower-value context alongside the things that actually matter. That is what standard vector memory looks like without a curation layer. A slow, invisible degradation that nobody notices until the agent starts confidently giving you answers that are three months out of date. Every memory node in Vektor carries an importance score between 0 & 1. When a memory is first stored, it receives a score based on the content’s estimated significance. That score is not fixed. Every time a new memory arrives that is semantically related but not directly contradictory, the compatible verdict for that existing memory takes a small redundancy penalty. The penalty is intentionally modest: a factor based on how similar the in

2026-06-11 原文 →
AI 资讯

How to Make Coding Agents Remember Past Solutions

Some engineering problems are only painful because they happen so rarely. Even with a coding agent, the frustration still feels the same. I’ll wrestle with a tool that isn't my daily driver, hit a wall of errors, finally find a resolution, and then I neglect to note the solution because the problem is "fixed." This happened to me recently with a custom, internal GitHub Actions workflow I use for a post-release DevRel task. To make it work, I need to pass a specific authentication token to run Entire in a headless mode. A couple of months ago, I sat down with my AI agent to configure this for the first time. Because Entire is new and our setup is completely undocumented, it took a grueling trial-and-error process to figure out how to generate the token via a local device-flow login. Eventually, we found the answer. I pasted the token into my GitHub secrets, the workflow turned green, and I went about my day without writing anything down. I rarely take notes now that I use coding agents, but it’s not a sustainable practice. I need something to take note of the resolution (even if it’s my agent). Today, when the token expired, I was back at square one. Why I Didn’t Make a Skill Normally, my instinct is to automate repetitive tasks by building a reusable workflow, like an Agent skill or a goose recipe. But a dedicated skill didn't make sense here: Low Frequency: This happens once every few months. Writing and maintaining code for a skill I barely use is textbook over-engineering. Security & Context: Generating an auth token involves sensitive device flows. I didn’t want a generic token-generation script floating around in my global automation suite. I wished my agent had a memory, so I could ask “ How did we get that GENERIC_ENTIRE_TOKEN last time?" and have it recall the context. Instead, I spent an hour re-debugging a problem I had already solved. It was just my agent and me making guesses. To break the loop before the next expiration, I decided to use Entire. (At the

2026-06-11 原文 →
AI 资讯

Rust Crate 'onering' Compromised: Malicious Code Exfiltration Risk Mitigated with Updated Version

Introduction and Background The Rust ecosystem, celebrated for its memory safety and performance, relies heavily on crates —its package management system. These crates, hosted on the crates.io registry, are the building blocks of Rust projects, enabling developers to share and reuse code efficiently. However, this convenience comes with a hidden cost: a single compromised crate can cascade into a full-blown supply chain attack, as recently demonstrated by the 'onering' crate compromise . The Role of Crates in the Rust Ecosystem Crates serve as the backbone of Rust's dependency system. When a developer adds a crate to their project, Cargo , Rust's package manager, automatically resolves and includes all transitive dependencies. This mechanism, while streamlining development, amplifies the attack surface . A malicious crate, like 'onering', can propagate through multiple projects, executing harmful code during build or runtime. The attack on 'onering' exploited this very mechanism, leveraging the trust inherent in the Rust ecosystem to exfiltrate sensitive code from unsuspecting systems. The 'onering' Compromise: A Case Study in Supply Chain Vulnerability The 'onering' crate was compromised through a malicious code injection during an upload or update. This injection bypassed the insufficient security measures of the crates.io registry, which lacks robust checks for uploaded crates. Once deployed, the malicious code executed during the build process, exfiltrating sensitive data from systems that depended on it. The attack's success underscores the lack of developer vigilance regarding supply chain security and the overreliance on registry integrity . Systemic Failures and Their Mechanisms Insufficient Security Scanning: The crates.io registry failed to detect the malicious code during upload due to limited automated scanning capabilities . This allowed the compromised crate to enter the ecosystem undetected. Overreliance on Registry Security: Developers often trust cr

2026-06-11 原文 →
AI 资讯

Xbox warns of a ‘reset’ as it prepares for layoffs

Microsoft's Xbox division will be hit with significant layoffs next month, according to people familiar with Microsoft's plans. The company has been preparing for the layoffs internally for weeks, with Xbox CEO Asha Sharma hinting about "making hard choices" last month. Sources suggest the cuts could even involve a studio closure, or changes to the […]

2026-06-11 原文 →
AI 资讯

Integrating Generative AI Into an Enterprise E-Learning Authoring Tool — What I Actually Learned

After 11 years building e-learning software at a major enterprise, here’s what surprised me when we started shipping GenAI features to real users. The Starting Point Nobody Talks About Most GenAI integration blog posts start with a clean slate — a greenfield app, a fresh codebase, a blank canvas. Real life is messier. When we began integrating generative AI into our e-learning authoring tool, we weren’t starting from scratch. We were dealing with a mature enterprise product — millions of users, legacy architecture decisions made years ago, compliance requirements from Fortune 500 customers, and LMS interoperability standards (SCORM, xAPI) that were designed long before anyone imagined AI-generated content. The challenge wasn’t “how do we call an AI API.” It was “how do we ship AI features into a product that thousands of instructional designers depend on daily, without breaking their workflows or their trust.” Here’s what I learned. Lesson 1: The AI Feature Your Users Want Is Not the One You Think When we first scoped out AI integration, the engineering team gravitated toward the flashy stuff — generate an entire course from a prompt, auto-create assessments, AI-powered slide design. Then we talked to actual users. Instructional designers didn’t want AI to replace their expertise. They wanted it to eliminate the tedious parts of their workflow: Reformatting content across different output types (responsive HTML5, PDF, SCORM packages) Generating alt-text for hundreds of images in accessibility-compliant courses Summarizing lengthy SME-provided documents into digestible learning chunks Suggesting quiz questions from existing content (not generating courses from nothing) The takeaway: don’t let engineering excitement drive your AI feature roadmap. Do 10 user interviews before writing a single line of integration code. The highest-impact GenAI features are usually the boring ones. Lesson 2: Prompt Engineering Is a Product Decision, Not an Engineering Task We initially t

2026-06-11 原文 →
AI 资讯

From an Empty Workspace to a Running Robot in One Prompt

The hard parts of robotics are supposed to be perception, planning, and control. So why does so much of the day go to everything that comes before them? The hidden setup tax in every robotics simulation project Ask anyone what's hard about robotics and you'll get the same list: perception, planning, control, navigation. The genuinely interesting problems. If you track where your hours actually go, though, a strange thing shows up. A big chunk of the day disappears before you reach any of that. You're not solving hard problems yet. You're just getting to the starting line: wiring up a workspace, writing description files, stitching together launch files, and coaxing a simulator into opening without errors. It's the unglamorous tax on every project, and most of us have quietly accepted it as the cost of doing business. Building a differential drive robot simulation in ROS 2 and Gazebo from scratch A diff drive base, a LiDAR, and Gazebo, set up from one prompt instead of an afternoon of boilerplate. A few days ago I wanted a simple mobile robot simulation. Nothing exotic: a differential drive base (two driven wheels, the classic mobile-robot setup), a LiDAR for sensing, running in Gazebo . This is the kind of thing that should be straightforward. In practice it's an afternoon of boilerplate before the robot so much as twitches. So instead of wiring it up by hand, I wanted to see how far Drift could get from a single prompt. To make it a fair test, I stripped the workspace down to nothing. No packages, no URDF, no launch files. A blank slate. Then I typed one line: "Create a mobile simulation from scratch." From XACRO to URDF: how the robot description gets generated in ROS 2 What the tool wrote first, and what XACRO and URDF actually do for your robot. It checked the workspace first: The opening move was sensible: it looked at the current directory to understand what it was working with. It generated a XACRO file for the robot's dimensions: XACRO is the macro-based for

2026-06-11 原文 →
AI 资讯

Fable won’t answer basic biology questions

Anthropic just released Claude Fable 5, calling it the most powerful AI model it has ever made widely available and praising its skills in biology, among others. But the model won't answer basic biology questions - the kind you'd expect a high schooler to handle. Instead, it hands off the query to the former flagship […]

2026-06-11 原文 →
AI 资讯

I Built a Freelance Job Hunting Automation on n8n — Here's Everything I Learned

I'm a 17-year-old IT student from Luxembourg. A few months ago I got tired of spending 2-3 hours a day manually browsing Upwork, Malt, and Freelancer looking for projects. So I built an automation system that does it for me — 24/7, on a Raspberry Pi 3. Here's what it does, how I built it, and every painful lesson I learned along the way. What the system does Scans Upwork, Malt, and Freelancer every 30 minutes Scores each job 0–100 with AI based on my profile Generates proposals in English, French, and German Sends the best jobs to Telegram with inline A/B buttons Tracks which proposal style gets more replies Sends daily stats and weekly market trend reports Reminds me to follow up after 3 days The stack n8n — self-hosted workflow automation (Docker on Raspberry Pi 3) Groq API (Llama 3.1-8b-instant) — AI scoring and proposal generation Supabase — PostgreSQL database for jobs, proposals, clients SerpAPI — searching job boards via Google Apify — scraping Upwork listings Telegram Bot API — alerts and bot commands Cloudflare Tunnel — HTTPS for webhooks Total running cost: ~$5/month. 7 workflows 01 - Job Discovery — runs every 30 minutes, searches 10+ sources, deduplicates via Supabase unique constraint on URL 02 - Proposal Generator — AI scores the job, generates two proposal variants (formal vs hook-first), sends to Telegram with A/B buttons 03 - Follow-up Reminders — checks Supabase every 3 days for unanswered proposals 04 - CRM via Telegram — full client management through bot commands (/jobs, /stats, /clients) 05 - Market Intelligence — daily report: how many jobs found, average score, top platforms 06 - Trend Analysis — weekly report on what skills are trending in automation 07 - Lead Generation — finds companies actively using Zapier or Make who might want to switch to n8n Lessons learned (the hard way) 1. Cyrillic text breaks JSON body nodes silently If you have Cyrillic characters in a JSON body field with newlines, n8n throws a "Bad control character" error. Kee

2026-06-11 原文 →