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

标签:#t

找到 14891 篇相关文章

AI 资讯

Building an Identity System for AI Agents: AgentCard and Work Records

Here's a scenario that plays out in engineering teams every day: you spin up a conversation with an AI tool to analyze some code, get a useful response, copy-paste the output, and close the tab. An hour later, you need a follow-up analysis — and you're starting from scratch. No context, no history, no continuity. Now multiply that by five tools running in parallel. ChatGPT for drafting, Claude for analysis, Copilot for code, a local model for sensitive data, maybe a custom agent for domain-specific tasks. The outputs are scattered across browser tabs, Slack threads, and clipboard history. Nothing connects. The AI tools themselves are capable enough. What's missing is the infrastructure to treat them as actual team members — with identities, workspaces, and accountability. The Identity Problem Every AI interaction today is anonymous. You talk to "the model," it responds, the session ends. There's no persistent identity, no accumulated context, no track record. This works fine for one-off questions. It breaks down the moment AI needs to participate in a sustained workflow — the kind where you need to know who did what, when, and how well. We've been building an open-source project called Octo (Apache 2.0, GitHub ) that approaches this problem by giving AI agents a proper identity system. In Octo, each AI agent is a Bot — a first-class entity with a name, a creator, a capability card, and a work history. A Bot isn't a chatbot wrapper. It's a structured identity: Creator binding : Every Bot is created by a human user and inherits a scoped subset of that user's permissions. The Bot acts on behalf of its creator, not autonomously. AgentCard : A structured capability declaration — what the Bot can do (coding, analysis, translation, design), at what level, in what domains, and with what constraints. Think of it as a resume that other team members can inspect before assigning work. Work history : Every task a Bot participates in gets recorded — completion status, quality sco

2026-07-01 原文 →
AI 资讯

Sonnet 5 launches: Opus performance at lower cost

This week was largely a Claude story: Sonnet 5 landed with enough benchmark muscle to make Opus feel redundant for most workloads, and GitLab's production data backs up the claims. Alongside that, GitHub Copilot quietly dropped its JetBrains friction, and Google's image model got cheaper and faster on Vercel's gateway. Here's what's worth acting on. Claude Sonnet 5 launches on Vercel AI Gateway Sonnet 5 is available now via Vercel AI Gateway at anthropic/claude-sonnet-5 . Launch pricing is $2/$10 per million input/output tokens—identical to Sonnet 4.6—but that rate expires August 31, after which it steps to $3/$15. The model matches Opus 4.8 on coding and agentic benchmarks, which means you can stop routing hard tasks to Opus and absorb a 50–67% cost reduction in the process. For AI SDK users, this is a one-line change. Stronger long-context handling and document parsing are the practical wins for RAG pipelines and multi-turn agent workflows—two areas where Sonnet 4.6 had real rough edges. Verdict: Ship. Update your model identifier before August 31 while the launch pricing holds. Zero breaking changes, and there's no reason to stay on 4.6 for new work. Sonnet 5 closes Opus gap at lower cost Beyond the Vercel integration, the broader Sonnet 5 release deserves its own read. The model is now the default reasoning tier replacing Sonnet 4.6 across Anthropic's plans, and the capability jump is specifically on agentic task completion—planning, multi-step tool use, brownfield code navigation. Early testers report that tasks which previously stalled midway through agent loops now finish end-to-end, which is a qualitatively different outcome from incremental benchmark gains. The economics are straightforward: Opus-level performance at Sonnet prices through August, then a modest step up to $3/$15. If you're running production agents today, the cost-per-completed-task improvement compounds because you're paying less and spending fewer cycles on failure recovery and re-promptin

2026-07-01 原文 →
AI 资讯

Bikin "Otak" AI Agent Bisa Diedit di Obsidian: Panduan Sinkronisasi Dua Arah untuk Pemula

Pernah kepikiran, "Sebenarnya AI agent saya inget apa aja sih soal saya?" Kalau iya, tulisan ini buat kamu. Masalahnya: Memori AI Itu Kotak Hitam Kalau kamu pakai AI agent yang punya memori jangka panjang (persistent memory), kamu mungkin pernah ngerasa gak nyaman karena beberapa hal ini: Gak tahu persis apa yang diingat AI tentang kamu Gak tahu file-nya disimpan di mana Gak bisa edit memori itu tanpa ngetik perintah lewat chat Takut kalau file memorinya rusak, semua informasi hilang begitu saja Studi kasus di tulisan ini pakai Hermes Agent , agent open-source besutan Nous Research. Sebagai konteks buat yang belum familiar: Hermes Agent adalah agent AI open-source yang berjalan sebagai proses (daemon) mandiri di server milikmu sendiri, mengumpulkan memori lintas sesi, menjalankan tugas terjadwal, terhubung ke belasan platform pesan, dan menulis skill-nya sendiri dari pengalaman. Framework berlisensi MIT ini dirilis Februari 2026 dan dengan cepat menarik perhatian komunitas open-source AI. Hermes menyimpan memorinya di dua file utama: USER.md (profil tentang kamu) dan MEMORY.md (catatan agent soal lingkungan kerja, kebiasaan, dan pelajaran yang dipetik), plus satu file lagi SOUL.md untuk "kepribadian" si agent. Semuanya disimpan dalam format teks polos yang dipisah pakai karakter § , seperti ini: Preferensimu: komunikasi singkat dan langsung § Namamu Budi, awal 30-an, tinggal di Surabaya § Penggemar PKM / Building a Second Brain Format ini fungsional, tapi ada beberapa kekurangan: Susah diedit langsung karena bukan format yang ramah manusia Gak ada riwayat versi — sekali salah edit, informasi bisa hilang selamanya Gak ada tampilan visual — susah lihat semua catatan sekaligus Gak ada antarmuka grafis — harus lewat chat agent atau edit file mentah Solusinya: pindahkan memori itu ke Obsidian , aplikasi catatan berbasis markdown yang mendukung riwayat versi lewat git dan bisa diedit bebas. Arsitektur Sistemnya Sistem sinkronisasi ini punya empat lapisan: ┌───────────────

2026-07-01 原文 →
AI 资讯

AI Metrics Baseline: Prove Your Feature Works Before Scaling It

An AI feature can feel impressive and still be a bad product decision. The demo is fast. The answer sounds useful. The team is excited. Then usage grows and nobody can answer the basic questions: Is it accurate enough? Is it saving time? Which customers trust it? Why did costs spike? Should we scale it, fix it, or kill it? That is the trap an AI metrics baseline prevents. A baseline is not a dashboard full of vanity charts. It is a small set of before-and-after measurements that tells you whether an AI workflow is getting better, getting worse, or merely getting more expensive. Why AI features fail without a baseline Most software teams already track uptime, errors, and conversion. AI features need those too, but they also need new signals because model behavior is probabilistic. A normal API either returns the expected response or throws an error. An AI workflow can return: a fluent answer that is wrong a correct answer with missing evidence a useful answer that costs too much a slow answer that users abandon a safe answer that refuses too often a cheap answer that hurts trust a high-rated answer that does not improve the business workflow Without a baseline, every production discussion becomes opinion-driven: "The model seems better." "Users like it." "The new prompt reduced hallucinations." "The expensive model is worth it." Maybe. Maybe not. The baseline turns those claims into measurable comparisons. What an AI metrics baseline is An AI metrics baseline is the starting measurement for the workflow before you optimize or scale it. It answers five questions: What does the workflow cost today? How good are the outputs today? How fast and reliable is the experience today? Do users adopt and reuse it? Does it improve the real task it claims to improve? You do not need 80 metrics on day one. You need a small set of metrics that match the feature's risk and purpose. For example: Feature Useful baseline Support answer bot resolution rate, citation quality, escalation r

2026-07-01 原文 →
AI 资讯

Navigating the Shift: Why Building Faster Means We Must Think Smarter

While researching the massive wave of digital transformation rewriting the rules for startups this year, I stumbled upon an insightful podcast by the tech firm GeekyAnts. Hosted by Prem, the episode featured Sanket Sahu, the co-founder of GeekyAnts, who recently emerged from a year and a half hiatus to discuss what he calls the " AI-native shift ." As someone navigating the unpredictable US tech market in 2026, listening to their conversation felt like a reality check. We are constantly flooded with news about AI replacing engineers or cutting budgets, but this discussion offered a grounded perspective on what is actually happening on the ground in software development. The Illusion of Speed The central theme that caught my attention was the sheer velocity of modern AI adoption. Sanket made a striking contrast: while television took decades to become a common household utility, modern AI systems like ChatGPT or Claude reached exponential revenue and widespread adoption in mere months. But here is where the critical analysis kicks in. As founders, we often mistake engineering speed for product success. The podcast highlighted a massive bottleneck that many of us are guilty of overlooking: the human limit. While AI can spin up code in hours instead of months, the time required for human review, validation, and team collaboration remains relatively static. If an organization rushes to ship code simply because it can, they risk launching products that lack deep market validation. True product development still requires user testing and meticulous iteration. The building phase might be operating at 10x speed, but the surrounding human infrastructure is only moving at 1.5x. Fluid Roles and the Rise of the "Builder" Another significant takeaway for Western businesses is the shifting definition of software roles. The traditional silos dividing front-end, back-end, and DevOps are rapidly blurring. According to the insights shared in the video, the engineering ecosystem is mo

2026-07-01 原文 →
AI 资讯

AI - Understanding it the modern way

We all use AIs today - From a 5th grader to a retired pensioner, from a small-time business owner to a multimillionaire businessman, from a software engineer to a medical expert. AI exists everywhere! And to be honest its making our lives very simple. Yes, it does!. Response in no time, flexibility, reliability - yes, AI gives all and even more And as Software Engineers, we are getting more inclined towards AI. Back in the days, we used to rely on Stackoverflow to get our queries resolved. Sometimes it did, sometimes it didn't. But, AI changed that landscape completely - asking a query, retrieving data, asking follow-ups and so and on so forth. But, honestly, how many of us have thought - Wow this looks amazing! But how does it actually work! Let's say I type this in Chat GPT or Gemini or Claude etc: "Hi, how is the weather today?". The AI assistant takes the input and processes it and returns the response. But , there is a lot of processing and workflow happening under the hood. As a Software Architect, I struggled a lot to get these answers. Different sources, different suggestions. And the suggestions at some point seemed too overwhelming for me. So, I decided to break it down and start a series which will enable people to understand AI. I want to make people understand AI in the simplest way possible and make every developer leverage AI - not just to get their job done, but also to help in upskilling, so that they don't get lost in the overwhelming world of AI as I did initially! Follow me for more updates!

2026-07-01 原文 →
AI 资讯

Python Selenium Architecture

**Python Selenium Architecture** Introduction: Selenium automates web browsers. The Python Selenium architecture consists of four main components that work together to control a browser. 1.Selenium Client Library (Python Language Binding) Python developers write automation scripts using the standard Selenium API. This library converts your Python code into a standardized format. It sends these commands as programmatic requests to the browser driver. 2.W3C WebDriver Protocol/JSON Wire Protocol This is the communication channel between the code and the driver. Historically, Selenium used the JSON Wire Protocol over HTTP. Modern Selenium (Version 4+) uses the standardized W3CWebDriver Protocol. Commands and responses are transferred directly without any middle translation. 3.Browser Drivers Every web browser has its own specific executable driver. Examples include ChromeDriver for Chrome and GeckoDriver for Firefox. The driver acts as a secure HTTP server that receives commands. It passes these requests directly to the browser and returns results. 4.Web Browsers This is the final layer where execution happens physically. Supported browsers include Google Chrome, Mozilla Firefox, Microsoft Edge, and Safari. The browser receives commands through its native OS-level API. It executes actions like clicking, typing, or fetching text. Significance of Python Virtual Environments: A Python Virtual Environment is an isolated directory containing its own Python installation and independent packages. It prevents dependency conflicts across different software projects. Conclusion: Why It Matters? Avoids Dependency Hell: Different projects can use different versions of the same library. Protects System Python: Prevents breaking system-wide packages required by your operating system. Ensures Reproducibility: Allows developers to easily recreate the exact environment on other machines. No Admin Privileges Needed: Allows installing packages without sudo or administrator rights. Real-Wo

2026-07-01 原文 →
AI 资讯

CalcMora just crossed 200 tools | Here's what changed under the hood

CalcMora just crossed 200 live tools calculators and converters spanning finance, health, math, unit conversions, date/time, everyday life, and sports. It's a small milestone against the bigger target (3,000 tools within a year), but it's the first one that felt like proof the approach actually works. What CalcMora is A free calculator and converter site, built to be fast and genuinely useful rather than bloated with unnecessary interactivity. Every tool lives on its own page, static by default, ad-supported, and designed to actually rank and hold up in search rather than just exist. The stack is intentionally boring: Astro for static output, hosted on Cloudflare Pages . No client-side framework runtime, no heavy JS bundles. That choice is mostly why the site stays fast even as the tool count climbs into the hundreds; static pages don't get slower just because there are more of them. Consistency at scale Going from a handful of tools to 200 forced us to think hard about repeatability. Every tool page follows the same underlying template: a calculator, supporting explanatory content, an FAQ section, and standard trust/attribution elements (author info, last-updated date, disclaimers where relevant). That consistency is what makes it realistic to keep scaling toward thousands of pages without every single one needing a bespoke pass. Structured data (schema.org markup) is baked into every page too; it's a big part of why individual calculators show up well in search, and it's applied consistently rather than as an afterthought. New: embeddable tools The other big addition alongside the 200-tool mark is an embed system — every tool on CalcMora can now be dropped into someone else's site as a lightweight, ad-free widget. Site owners get a copy-paste snippet, no signup required. The implementation leans on a couple of iframe and query-param tricks to keep embedded calculators fast and chrome-free (no header, footer, or ads, just the tool), without needing any JS framework

2026-07-01 原文 →
AI 资讯

How to Implement Biometric Authentication in a Flutter App (The Right Way)

In today's world, security is no longer optional - it's expected. Whether it's a fintech app, a fitness tracker, or an internal company tool, users want fast and secure access without the hassle of remembering passwords. That's exactly where biometric authentication comes in. In this guide, we'll walk through how we implement biometric authentication in a Flutter app , the practical approach we follow in production, and the common mistakes developers often make (and how to avoid them). Why Biometric Authentication? Before jumping into implementation, let's quickly understand why it matters: Faster login experience (no typing passwords) More secure than traditional authentication Native support across Android & iOS Better user trust and retention What We Use in Flutter To implement biometric authentication, we rely on: local_auth package (official Flutter plugin) Native biometric APIs under the hood (Face ID, Touch ID, Fingerprint) Step 1: Add Dependency dependencies : local_auth : ^3.0.1 Then run: flutter pub get Step 2: Platform Setup ✅ Android Setup Inside android/app/src/main/AndroidManifest.xml : <uses-permission android:name= "android.permission.USE_BIOMETRIC" /> Also ensure: <uses-feature android:name= "android.hardware.fingerprint" android:required= "false" /> ✅ iOS Setup Inside ios/Runner/Info.plist : <key> NSFaceIDUsageDescription </key> <string> We use Face ID to authenticate you securely </string> ⚠️ Without this, Face ID will NOT work and your app may crash. Step 3: Implement Biometric Logic Here's how we structure it in production: import 'package:flutter/foundation.dart' ; import 'package:local_auth/local_auth.dart' ; class BiometricService { final LocalAuthentication _auth = LocalAuthentication (); /// Check if device supports biometrics Future < bool > isBiometricAvailable () async { try { final bool canCheckBiometrics = await _auth . canCheckBiometrics ; final bool isDeviceSupported = await _auth . isDeviceSupported (); return canCheckBiometrics &&

2026-07-01 原文 →
AI 资讯

Introducing correctover-patronus: 6-Dimensional Verification for Patronus AI

The Problem LLM evaluation tools like Patronus AI excel at hallucination detection, toxicity checks, and semantic relevance. But they don't catch the structural failures: A JSON response missing required fields A function call with malformed parameters Output that violates schema constraints Latency budget overruns silently degrading UX Cost explosions from runaway token usage These aren't hallucinations. They're verification failures. The Solution correctover-patronus is an adapter that runs Correctover's 87 deterministic verification rules as native Patronus evaluators. Every verdict comes with a recomputable proof hash — meaning you can verify the verifier. pip install correctover-patronus The 6 Dimensions Dimension What It Checks Example Structure Output format validity JSON parses correctly Schema Field presence & types Required fields exist Identity Semantic relevance to input Response addresses the question Integrity Forbidden pattern absence No Tracebacks or error messages Latency Response time budget Under 30s threshold Cost Token usage budget Under 10k token limit Usage Full 6-Dimension Verification from correctover_patronus import CorrectoverEvaluator , CorrectoverConfig config = CorrectoverConfig ( min_confidence = 0.7 , latency_rules = { " max_ms " : 5000 }, cost_rules = { " max_tokens " : 4000 } ) evaluator = CorrectoverEvaluator ( config = config ) result = evaluator . evaluate ( task_input = " Summarize this article... " , task_output = " The article discusses... " , task_context = { " source " : " article " , " word_count " : 1500 } ) print ( f " Overall: { result . score : . 2 f } ( { ' PASS ' if result . pass_ else ' FAIL ' } ) " ) print ( f " Proof hash: { result . metadata [ ' proof_hash ' ] } " ) for dim , info in result . metadata [ ' dimensions ' ]. items (): print ( f " { dim } : { info [ ' status ' ] } (score= { info [ ' score ' ] : . 2 f } ) " ) Individual Dimensions from correctover_patronus import correctover_structure , correctover_inte

2026-07-01 原文 →
开发者

客戶開價太低嗎?Freelancer 接案前的 3 問決策樹

客戶開價太低嗎?Freelancer 接案前的 3 問決策樹 客戶說:「就改幾行代碼,收這麼多?」 你是不是也曾這樣懷疑過自己? 每個 freelancer 都遇過這種時刻——客戶開了一個數字,你直覺「好像太低了」,但又說不出具體原因。以下是三個問題,幫你在 30 秒內判斷一個報價是否值得接。 3 問決策樹 Q1:這個價格是否覆蓋你的實際時間成本? 別只算「改了幾行代碼」。真實成本包括: 讀懂陌生的 codebase(新手可能 3 小時起跳) 本地環境折騰(特別是別人維護的老項目) 測試和部署風險(部署壞了誰負責?) 客戶來回溝通的成本(「再大一點」「這個藍再淺一點」) 未知因素:如果代碼原作者已經不在,你是在維修「別人的技術債」 快速算法 :把報價 ÷ 你估計的總小時數 = 每小時實際時薪。拿這個數字和你的底線比(建議:不是你「想要」的時薪,而是你「能接受吃飯」的時薪)。 如果低於底線 30%,進 Q2。 Q2:需求是否清楚到可以控制風險? 報價低且需求模糊 = 高危信號。 以下任一癥狀存在,提高風險溢價或拒絕: 「就簡單改一下」——沒有定義邊界 沒有明確定義「完成」的標準——上線了算完成?客戶滿意了算完成? 對方說「你先做再說」——這句話幾乎等於「我打算白嫖你」 沒有提供任何文件或代碼庫 access——等於讓你盲開 決策樹 : 需求不清楚 + 報價低 → 報價必須上浮 50%,否則不接 需求不清楚 + 報價合理 → 可以談,先付定金再動工 需求清楚 + 報價低 → 進 Q3 Q3:這個案子是否帶來明確後續價值? 有兩種情況可以在低報價下仍然接: 確定的後續項目 :客戶明確說「這個做好了,下個月還有 X 個功能要做」 戰略性客戶 :這個客戶有公開作品價值(大厂案例、知名公司、能寫進 portfolio 的上線項目) 如果兩者都沒有,低報價等於純粹的自我低估。 真實案例:隱藏成本解析 案例 1:$200 改 3 行 CSS 客戶說:「就改導航列的顏色,$200 應該夠了吧?」 表面看:3 行 × $66/行 = 天價。 現實: 理解整個樣式系統、找到正確的 CSS 檔案:2 小時 本地環境折騰(別人的專案,Node 版本衝突):1 小時 反覆修改確認視覺效果:3 小時(客戶說「那個藍再淺一點、再加個 hover 效果」) 部署時發現壞了其他頁面:2 小時 客戶最後說「還是原來的好」:情緒成本 實際時薪 :$200 ÷ 8 小時 = $25/小時,低於 freelancer 最低生存線。 案例 2:$2,000 報價改 2 天的「簡單項目」 客戶說:「做一個登入系統,就基本功能,2 個禮拜夠了吧?」 報價 $2,000,看起來還不錯。 現實: 需求訪談:4 小時(客戶一開始說「就登入」,後來才說「還要有第三方登入、密碼重置、邀請機制」) 設計資料庫結構:3 小時 實現 Registration + Login + OAuth:6 小時 測試覆蓋:4 小時 文件撰寫和交接:2 小時 實際 :19 小時 × $105/小時 = $1,995 ——這個案子壓根不賺錢 常見陷阱:為什麼低報價 freelancer 總是吃虧 1. 「就幾行代碼」陷阱 代碼行數 ≠ 工作量。真正的成本在「理解上下文」——你得讀懂別人的代碼邏輯,這可能比你自己寫慢三倍。 2. 「簡單的 SQL」陷阱 每一條看似簡單的 UPDATE 語句,背後可能是: 凌晨 3 點資料庫突然鎖死 備份失敗、沒有測試環境 正式資料一個失误就沒了 3. 「長期合作」陷阱 客戶說「我們長期合作」通常是好事,但前提是—— 報價不能因為「長期」而打折 長期合作應該帶來穩定收入,不是穩定低價 你現在有一個具體報價嗎? 如果客戶給了你一個數字,你不確定是否該接—— For $10, I'll review one client offer and tell you whether it looks underpriced, risky, or worth taking. 直接發報價截圖或文字到 paypal.me/cheapuno ,標註「報價審查」,24 小時內回覆具體分析。 快速決策檢查表(列印出來放桌邊) □ 報價 ÷ 預估時數 > 我的底線時薪? □ 需求有明確定義邊界嗎? □ 有隱藏的技術債或未知因素嗎? □ 客戶有明確的後續項目或品牌價值? □ 我有權利說「不」嗎? 如果以上有任何一個「否」,這個報價需要重新談。 如果你想系統性学会如何報價、報價低了怎麼談、客戶不接受怎麼辦——歡迎從 Freelance Pricing Master Index 開始,這裡有 14 篇文章覆蓋 freelancer 定價的各種場景。

2026-07-01 原文 →
AI 资讯

我讓三個 AI 各司其職寫程式:Codex 出測試、Grok 寫實作、Claude 驗收

我讓三個 AI 各司其職寫程式:Codex 出測試、Grok 寫實作、Claude 驗收 這週我沒有讓單一 coding agent 從頭包到尾。我把流程拆成一條固定的契約: Codex 先寫測試,Grok 再寫實作去讓那些測試通過(只能改實作、不准動測試),Claude 獨立驗收才提交。 測試在實作之前就寫死,成為 Grok 必須滿足、且不能修改的規格。我先在一個 Zig 專案跑了兩個功能,後來又在一個 Rust + Turso 專案獨立重跑三個功能(見文末)——判斷一致:這條 pipeline 在 有嚴格測試當契約 的前提下可用;它省下的不是人力,而是把「錯誤發現點」往前、往獨立處移。這只是 workflow 可用性判定,不含可商用判定——後者要另算 token/seat 成本、隱私、rate limit 與審計,本文不碰。 實驗條件(可自行驗證) 工具: codex-cli 0.142.4 、 grok 0.2.77 (44e77bec3a) 、Claude Code(CLI,版本未記錄,屬已知量測缺口)。 專案:一個 Zig 0.16.0 codebase(私有 repo,commit hash 僅供我本地對照),加一個「回合後反思」功能。另在一個 Rust + Turso 專案上以同一條 pipeline 再跑一輪,見文末「換一個 stack 再驗一次」。 樣本:Zig n=2 個功能 (config surface、reflection module),共 15 個測試(4 + 11);Rust + Turso n=3 個功能 (見文末)。兩者各自樣本都小。 出題命令: codex exec --sandbox read-only (單次、不寫檔)。 施工命令:Grok headless、可寫檔模式(write→test→fix)。 觸發 400 的命令:對 grok-composer-2.5-fast 傳 --effort (等同 reasoningEffort 參數)。 驗收命令: zig test <libs> --dep build_options --dep compat -Mroot=src/root.zig --test-filter "<功能前綴>" ;leak-detecting allocator 回報 0 leak。 樣本小,數字不外推;以下每個論斷都設計成能被另一個工程師在幾分鐘內驗證或反駁。 核心迴圈:測試先寫死,實作去追它 每個功能走五步,順序不可換: Codex 出測試 + 最小 stub 。stub 讓測試「能編譯、但在斷言上失敗」——這是真正的 RED,不是因為符號缺失而編不過。測試此刻就固定下來,之後不再改。 Claude 對照原始碼核對 測試。Codex 會猜 API(vtable 欄位、函式簽章、建構模式),必須逐一驗證符號存在才落地。 Claude 放進隔離的 git worktree ,跑到確定 RED:pass/fail 混合,每個失敗各有其原因。 Grok 寫實作 到 GREEN。任務只有一句: 讓這些已寫死的測試通過,只改實作、不准動測試。 測試是 Grok 不能碰的契約,不是它可以順手改綠的東西。 Claude 獨立驗收 (不採信 Grok 的自述):跑測試、確認 0 leak、核對 diff 的正確性與改動範圍,才提交。 重點不是「三個比一個強」,而是 出測試的人跟寫實作的人不是同一個 agent ——測試因此成為獨立的規格,實作成為獨立的檢查。一個模型不能同時定義正確、又判定自己是否正確。 對照三個真實替代方案 單 agent 跑 TDD(自己出測試、自己實作) :最快,但自我驗證風險最高。 人寫測試 + agent 實作 :最可靠,測試由人把關;代價是人工成本最高。 本文的三 agent 分工 :增加 orchestration 來回(見下),換到的是「假綠」風險下降——任何一環的自欺會在下一環被抓到。 選哪個,取決於你的錯誤成本 vs. 來回成本。 每家 CLI 的落地差異(用法決定,不是廠商能力差異) 三家我都只用了各自的一種模式,差異來自我怎麼接,不是模型智力: Codex :我用 codex exec --sandbox read-only 的 單次 模式,讓它只「輸出」測試碼、不改檔。它其實支援 --sandbox workspace-write 與 exec resume (可多輪、可寫檔),但我刻意把它限縮成「出題者」,讓出題與施工不同源。誤把單次 read-only 模式當施工者用,會得到看似對、實際編不過的檔案。 Grok :我用 headless、可寫檔模式跑 write→test→fix。踩到一個 參數相容性 的坑:在 grok 0.2

2026-07-01 原文 →
AI 资讯

From Vibe Coding to Production: A Step-by-Step Guide to Shipping AI-Generated Code Safely in 2026

Here's an uncomfortable truth nobody wants to admit out loud: most teams can generate a working app in minutes now, but almost none of them can ship it to production without breaking something important. Only a small fraction of organizations have actually moved their AI-built systems past the pilot stage. The gap between "it works on my machine" and "it works for real users" has never been wider, and closing that gap is quickly becoming the single most valuable skill a developer can have this year. If you have been prompting your way to a working prototype and then hitting a wall when it's time to actually deploy, this guide walks through exactly how to close that gap, with working examples at every step. Why This Matters Right Now Vibe coding, meaning describing what you want in plain language and letting an AI model scaffold the implementation, has gone from a novelty to a default workflow. Developers are shipping REST APIs , auth flows, and full CRUD apps with a single well-written prompt. But speed of generation is not the same as readiness for production. Untested edge cases, missing validation, weak error handling, and security gaps show up constantly in AI-generated code because the model optimized for "looks correct" rather than "survives real traffic." The developers who stand out this year are not the ones who can generate code fastest. They are the ones who know how to validate it, harden it, and integrate it responsibly. Below is a practical checklist you can apply to any AI-generated codebase before it touches a real user. Step 1: Treat the AI Output as a First Draft, Not a Final Answer Say your AI assistant generates this login handler: \ javascript // AI-generated first draft app.post('/login', async (req, res) => { const { email, password } = req.body; const user = await db.query( SELECT * FROM users WHERE email = '${email}' ); if (user.password === password) { res.json({ token: generateToken(user) }); } }); \ \ Looks functional. It is also a SQL in

2026-07-01 原文 →