AI 资讯
A Signed AI Agent Receipt Can Still Be Wrong
Your AI agent returns a signed receipt: 0 defects found. The signature is valid. The receipt has not been altered. The agent was authorized to run the check. The result can still be wrong. Perhaps the scanner hit a rate limit and silently converted eleven failures into eleven empty results. Perhaps a watchdog inspected 8 machines and issued a conclusion about 68. Perhaps a database health check ran select 1 successfully while the application was failing because a required column did not exist. In every case, the software can produce a well-formed result. It can even sign that result correctly. What it cannot prove is that it measured the claim the business thinks it measured. That distinction is becoming one of the most important problems in agent infrastructure: authentic receipt != adequate measurement authorized action != correct conclusion zero findings != complete inspection A signature answers only part of the question Cryptographic signatures are valuable. They can prove who signed an object and whether its contents changed after signing. They do not prove: that the check actually ran that it reached the intended target that it measured the right population that the sample supports the claimed conclusion that exceptions were not converted into zeros that a passing control answered the business question This is the difference between provenance integrity and measurement integrity . Provenance integrity asks: Who made this statement, and was the statement altered? Measurement integrity asks: What was actually observed, how much of the target was covered, and is the conclusion justified by that observation? An agent work protocol needs both. Otherwise, a signature can turn uncertainty into durable false confidence. Three failures with the same shape This article grew out of a thoughtful comment from Heinrich Neb on the first article in this series. He described three incidents from one week. First, a harvesting tool scanned 16 public repositories. Five returned
AI 资讯
I ran OpenClaw and Hermes Agent side by side for two weeks — here's what I learned
So I spent the last two weeks running two open-source AI agents in parallel: OpenClaw and Hermes Agent (from Nous Research). I went in expecting to pick a winner. I came out realizing it's not really a "pick one" situation at all. These two projects represent two very different design philosophies — one is built around connection and control , the other around learning and growth . Which one fits you depends on whether you want an obedient tool or a companion that evolves with you. Here's my full breakdown after using both for deployment, daily tasks, and the general "living with it" experience. Two philosophies, two products OpenClaw takes a gateway-first approach. It's a persistent controller that handles routing, permissions, multi-channel integration, and skill orchestration, with pluggable models. The core promise: connect everything, execute predictably. Hermes Agent is built around a learning loop. The agent creates and refines its own skills as you use it, and keeps deepening its model of you over time. The core promise: the more you use it, the better it knows you. A rough analogy: OpenClaw is like a senior assistant who strictly follows the instruction manual — plus a universal adapter. Hermes is more like a teammate who writes their own manual after every task and keeps improving it. The four things that actually differentiate them 1. Skills: ready-made ecosystem vs. self-compounding OpenClaw: human-written skills distributed via ClawHub. Huge ecosystem, works out of the box. Hermes: the agent generates and iterates on skills by itself. Less rich in the short term, but it compounds over time. 2. Memory: good enough vs. actually remembers OpenClaw's default memory is fine (files and Markdown supported). But Hermes' four-layer memory architecture is noticeably more persistent — the difference becomes very tangible after a couple of weeks of use. 3. Autonomy: decisive vs. controllable Hermes is extremely strong when the task is clear — it often nails things
AI 资讯
They Dedicated Their Lives to Teaching. Then the Deepfakes Started
The deepfake epidemic in schools is affecting more than students. Four teachers tell WIRED about becoming targets of sexualized, AI-generated content—and how difficult it was to find accountability.
AI 资讯
sentinel-scan-cli vs Cisco mcp-scanner vs Snyk Agent Scan: comparing open-source MCP security scanners
If you're wiring MCP servers into an agent and want to check them for prompt injection, tool poisoning, or supply-chain risk before you trust them, there are now a handful of open-source options. This is a factual, no-benchmarks comparison of the three I could actually find and read the docs for: our own sentinel-scan-cli , Cisco's mcp-scanner , and what used to be Invariant Labs' mcp-scan . One thing worth flagging up front: Invariant Labs' mcp-scan repo ( github.com/invariantlabs-ai/mcp-scan ) now redirects to github.com/snyk/agent-scan . The project has been absorbed into Snyk and rebranded as "Agent Scan" (package snyk-agent-scan ). If you're comparing tools based on older blog posts that reference "Invariant Labs mcp-scan" as a standalone, no-account CLI, that's out of date — running it now requires a free Snyk account and an SNYK_TOKEN API key ( export SNYK_TOKEN=... ) before the CLI will scan anything. I'm comparing against the current Snyk Agent Scan README since that's what the repo actually ships today. All claims below are pulled directly from each project's public README as of 2026-08-24. No invented features, no synthetic benchmarks — this is a "what does the doc actually say" comparison, not a lab test. Feature comparison sentinel-scan-cli Cisco mcp-scanner Snyk Agent Scan (fka Invariant Labs mcp-scan) License MIT Apache 2.0 source-available on GitHub; requires Snyk account/token to run Install zero dependencies, single Python file or pip install / npx github:... uv tool install , Python 3.11+ uvx snyk-agent-scan or standalone binary Signup / API key required to run at all No ( --demo needs nothing; scanning your own endpoint needs only your own endpoint's key) No (core YARA/static scanning works with zero keys; LLM/Cisco AI Defense/VirusTotal analyzers are opt-in extras) Yes — Snyk account + SNYK_TOKEN required before any scan runs What it scans Live LLM endpoint (prompt-injection/jailbreak suite) and static MCP tool manifests ( mcp.json ) Live MCP se
AI 资讯
We Taught a 230M Language Model to Keep Learning on Android
Small language models can now run directly on phones. But most of them stop learning the moment they ship. For personal AI, that feels like a strange stopping point. Some of the most useful signals arrive only after the model acts: Did the user dismiss the notification? Did they open it later? Did they rewrite the suggestion? Did they ask for it again? These interactions contain useful information about the user, but they are delayed, private, and ambiguous. They are not clean labels, and they are not reliable scalar rewards. To explore this problem, we built Online-SDFT , an open-source prototype that continually fine-tunes a small language model from delayed interactions while keeping the learning loop on the device. The prototype uses: LiquidAI/LFM2.5-230M A rank-4 LoRA adapter ONNX Runtime Training A bounded on-device replay buffer An Android notification-routing testbed Once the model has been provisioned, inference, interaction storage, replay, and adapter updates all happen locally. Why standard fine-tuning is awkward here Suppose the model receives a notification and chooses one of three actions: Show it now Save it for later Archive it Supervised fine-tuning would require a correct action for every notification. But the phone never observes what the ideal action was. Reinforcement learning replaces the correct answer with a reward, but that reward is also difficult to define. Opening a notification does not necessarily mean it arrived at the right time. Ignoring it does not necessarily mean it was unimportant. The user may simply have been busy. There is another complication: the model only observes the result of the action it actually took. If it archives a notification, it cannot know what would have happened had it shown the notification immediately. What the phone receives is not a label or reward. It receives hindsight . Using the same model as student and teacher The core idea is simple: let the model reconsider its decision after seeing what happened
AI 资讯
Building an Open Turkish EV Charging Intent Dataset
Electric-vehicle assistants rarely have just one job. A short Turkish question may ask for a nearby station, a charging-price comparison, help planning a route, or an explanation of battery health. Before an application can retrieve current data or generate an answer, it needs to identify that intent reliably. We created the Turkish EV Charging Intent Dataset as a small, transparent starting point for that routing problem. Version 1.0.0 contains 192 Turkish queries distributed evenly across eight intent classes. It is open under CC BY 4.0, includes fixed train, validation, and test splits, and is maintained by TekPedal , an EV charging map and vehicle decision platform for Türkiye. You can explore the dataset interactively , inspect the source and validation workflow on GitHub , or cite the permanent Zenodo release with DOI 10.5281/zenodo.22062688 . Why intent routing comes first An assistant should not answer every EV question in the same way. Different requests need different tools and freshness guarantees: a station request needs a map or location index; a price request needs current tariff data; route planning needs distance, range, and charging-stop logic; a battery question needs careful educational content; a vehicle comparison needs structured specifications. An intent router makes that separation explicit. It can send each query to the correct retrieval source, product page, or application workflow. This also makes evaluation easier: teams can test routing independently before measuring the quality of downstream answers. Dataset design The taxonomy contains eight balanced classes, with 24 records in each class: FIND_STATION COMPARE_PRICE ROUTE_PLANNING CHARGING_SPEED VEHICLE_COMPARISON HOME_CHARGING BATTERY_HEALTH OWNERSHIP_COST Every record includes a stable ID, the Turkish query, the intent identifier, a human-readable Turkish label, a suggested TekPedal content route, the assigned split, the language, and a provenance marker. Here is a simplified example
AI 资讯
Microsoft archived PyRIT (Mar 2026) - what LLM red-teamers should use instead
Quick one: if PyRIT (Microsoft's Python Risk Identification Tool) is on your shortlist for LLM red-teaming, check the repo first. Azure/PyRIT was archived on GitHub on March 27, 2026. It's read-only now: no commits, no releases, no issue triage, nothing. Whatever version you pip-installed is the last version you'll ever get. That matters more for PyRIT than it would for most tools, because PyRIT was never a turnkey scanner. It's a framework for scripting multi-turn attack orchestration, the kind of thing a red team builds custom attack sequences on top of. A framework that's stopped shipping fixes is a worse foundation to build on than a finished tool that's stopped shipping features, because you were relying on it staying flexible to your needs, and now it can't. So what do you use instead? Depends on what you were actually using PyRIT for: You wanted a broad, actively maintained app-layer scanner -> promptfoo . Zero-install via npx promptfoo , 50+ red-team plugins, OWASP/NIST/MITRE ATLAS report mappings, and it's still getting regular releases. You wanted model-layer testing (jailbreaks, encoding tricks, data leakage on the base model itself, not your app) -> garak . NVIDIA-maintained, pip installable, 8k+ stars, actively developed. You wanted OWASP-mapped detectors and don't mind a paid tier for continuous scanning -> Giskard . The open source scanner is real and current; the always-on Hub is commercial. You wanted a fast, zero-setup smoke test before reaching for any of the above -> that's the gap we built sentinel-scan-cli for. Dependency-free CLI (Python and npm ports, identical output), 15 attack patterns each tagged to its OWASP LLM Top 10 category, --demo runs with no config and no API keys in under a minute. None of these replace PyRIT's specific multi-turn orchestration model one-for-one, if that's genuinely what you need, Microsoft's PyRIT Community fork discussion or building your own harness on top of a maintained model API is probably the honest answe
AI 资讯
Proof-of-Antiquity vs Proof-of-Stake: Why Hardware Diversity Beats Wealth Concentration
When Satoshi Nakamoto designed Bitcoin's Proof-of-Work consensus, the goal was simple: one CPU, one vote. What actually happened was very different. ASIC farms centralized mining into industrial warehouses, and the "one CPU" vision became "one warehouse, one vote." Proof-of-Stake was supposed to fix this by replacing energy expenditure with economic stake. Instead, it created a different problem: the rich get richer, forever. RustChain's Proof-of-Antiquity (PoA) takes a radically different approach. Instead of rewarding who has the most money or the newest hardware, it rewards who has kept the oldest hardware running the longest. The core insight is elegant: time is the one resource that can't be bought, faked, or manufactured. Either your hardware has been alive for twenty years, or it hasn't. This article does a deep technical comparison of Proof-of-Antiquity and Proof-of-Stake, drawing on the actual RustChain source code to explain how each consensus mechanism handles decentralization, Sybil resistance, economic fairness, and network security. The Fundamental Philosophies Proof-of-Stake: Wealth as Security Proof-of-Stake systems — Ethereum 2.0, Cardano, Algorand, Solana (with its Delegated PoS variant) — all share a common assumption: the more tokens you stake, the more committed you are to network security. If you act maliciously, your stake gets slashed. The economic logic is straightforward: attackers would need to acquire a majority of the token supply, which would be prohibitively expensive. The problem is what happens after someone acquires that stake. In PoS, staking rewards compound. A validator with 10x the stake of a small holder earns 10x the rewards, which they can reinvest into more stake. Over time, validator concentration increases. On Ethereum, Lido + Coinbase + Binance + Kraken collectively control over 50% of staked ETH. The "rich get richer" dynamic isn't a bug — it's a mathematical inevitability of proportional rewards based on capital. Proof-
开发者
thumb: popup images and render LaTeX directly in Vim
I made a small Vim 9.2+ plugin called thumb . Put the cursor on an image path → :Thumb → popup the image. Select LaTeX in Visual mode → :Thumb → render it as an image popup. For example:  Put the cursor on diagram.png and run: : Thumb Or select: \frac { a }{ b } = \sqrt { x ^ 2 + y ^ 2 } and run: : Thumb It uses Vim's native popup image support, with Python/Pillow for image conversion and matplotlib for LaTeX rendering. No mappings are installed, so you can add your own: nnoremap < leader > t < Cmd > Thumb < CR > xnoremap < leader > t < Cmd > Thumb < CR > GitHub: https://github.com/JosefAlbers/thumb Requires Vim 9.2+, Python 3, Pillow, and matplotlib. Feedback welcome, particularly around the popup positioning/rendering.
AI 资讯
Domux: a compact open model for smart-home command understanding at the edge
Voice and chat assistants for the home share a deceptively hard job: turning messy natural language into precise, structured commands. “Make it cozy in here” has to become a concrete intent plus the right slots — which device, which room, which value. Domux is an open model from iFlytek that focuses on exactly this problem: command understanding for smart-home assistants, framed as intent parsing and slot filling. What it is Task: smart-home command understanding — intent parsing + slot filling Base model: fine-tuned on google/gemma-4-E2B-it Modality: multimodal (image + text input) Target: edge / on-device deployment rather than large cloud models License: Gemma Why the compact base matters Building on the small Gemma-4-E2B base keeps Domux in a size class meant to run close to the device. For home assistants, that direction is attractive: keeping command understanding on-device can reduce round-trips and keep more interaction local, instead of routing every utterance to a large hosted model. Try it The model card is on Hugging Face (access is gated — you may need to log in and request access): 👉 https://huggingface.co/iFlytekOpenSource/Domux We're sharing open work like this because on-device, task-focused models are a practical piece of the foundation-model and serving story — not everything needs to be a giant cloud model.
开源项目
🔥 laurent22 / joplin - Joplin - the privacy-focused note taking app with sync capab
GitHub热门项目 | Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS. | Stars: 56,058 | 11 stars today | 语言: TypeScript
开源项目
🔥 team-codebug / babua-dsa-patterns-course
GitHub热门项目 | | Stars: 864 | 9 stars today | 语言: JavaScript
开源项目
🔥 reisxd / TizenTube - A TizenBrew module to remove ads and add support for Sponsor
GitHub热门项目 | A TizenBrew module to remove ads and add support for SponsorBlock for your Tizen TV. | Stars: 2,002 | 10 stars today | 语言: JavaScript
开源项目
🔥 NVIDIA-NeMo / Speech - A scalable generative AI framework built for researchers and
GitHub热门项目 | A scalable generative AI framework built for researchers and developers working on Large Language Models, Multimodal, and Speech AI (Automatic Speech Recognition and Text-to-Speech) | Stars: 18,257 | 45 stars today | 语言: Python
AI 资讯
Making webpack's Docs Update Themselves | GSoC 2026, wrapped
Contributor: Nikhil Kumar Rajak ( @ryzrr ) Organization: webpack · Project: webpack-doc-kit Mentors: Aviv Keller ( @avivkeller ), Claudio Wunder ( @ovflowd ), Sebastian Beltran ( @bjohansebas ) Teammates: Mohamed Shams El-Deen ( @moshams272 ), Tushar Thakur ( @TusharThakur04 ) Period: 25 May to 17 August 2026 The problem webpack's docs lived at webpack.js.org and every API change meant somebody updating them by hand. Pages go stale and nobody notices until a reader does. webpack-doc-kit fixes that. It takes webpack's TypeScript declarations, runs them through TypeDoc, hands the output to nodejs/doc-kit for linking and UI, and produces a site that regenerates itself. We split the work three ways. Shams took AST parsing and content, Tushar took routing and navigation and UI, and I took the operational side: how docs get generated on a release, versioned & deployed. My six deliverables were PR-based doc sync, release-aware doc generation, versioned output folders, a deployment pipeline, CI validation before merge, and README fetch automation. All six shipped. Merged PRs in webpack-doc-kit 31 Lines added / removed +1,959 / −1,419 Distinct files touched 89 First / last merge 28 May ( #110 ) / 14 Aug ( #241 ) Merged PRs in other repos 2 Upstream issue filed and fixed 1 Everything below is merged into main . Nothing is open or pending. The release pipeline webpack releases happen in webpack/webpack . The docs live in webpack/webpack-doc-kit . A release in one needs to produce updated docs in the other with nobody doing anything. #110 set up versions.json as the single source of truth everything downstream reads, plus the script that maintains it and the workflow that runs it. My mentor proposed an object schema with latest , label , major , exactVersion , commit and frozen per entry. Review cut it to a flat array of tag strings, because everything else is derivable from the semver string and position [0] with unshift() already tells you which is latest. Right call, and I d
开发者
Dev log #18 From Redis Brokers to Knowledge Graphs: A 177-Commit Sprint
Hit a perfect 7-day streak this week, shipping 177 commits across systems architecture and personal...
开源项目
🔥 shy3130 / tick-stock-panel - TSP自托管、零运维的 A 股「选股 + 监控 + 回测」量化工作台 | 基于 TickFlow 数据源 | LLM能力
GitHub热门项目 | TSP自托管、零运维的 A 股「选股 + 监控 + 回测」量化工作台 | 基于 TickFlow 数据源 | LLM能力驱使策略定制+个股分析+复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源 ,非TickFlow官方项目 | Stars: 3,477 | 82 stars today | 语言: Python
AI 资讯
More Agent Autonomy Needs Stronger Guardrails: React 19 Linting on ESLint 10
The more autonomy I give coding agents, the more of a repository's expectations need to be executable. I do not want manual review to be the first place a predictable failure is discovered. My projects now have more pre-commit hooks, tests, deterministic checks for project conventions, and small reviewable commits. The checks turn expectations into pass/fail results an agent can act on; the commits keep failures narrow enough to diagnose. Linting is one of those guardrails. This story began when the React linting layer I relied on broke during an ESLint 10 upgrade. I maintain several React applications and wanted to upgrade them to ESLint 10. The upgrade stopped at eslint-plugin-react . ESLint 10 removed deprecated rule-context APIs . The current eslint-plugin-react@7.37.5 release declares support only through ESLint 9 and can crash under ESLint 10 with: TypeError: contextOrFilename.getFilename is not a function The upstream compatibility issue was opened on February 7, 2026. As of August 23, it is still open more than six months later. The pull request , opened on July 30, is also still open. That led me to release @ternaus/eslint-plugin-react : an independent React 19 continuation for ESLint 10. Who this is for The package has a deliberately narrow support matrix: Tool Supported version React 19+ ESLint 10 Biome 2.5.8+ Node.js 22.13, 24, or 26 ESLint config Flat config React 18, ESLint 9, and .eslintrc* are outside the package contract. My setup My projects use Biome as the primary formatter and linter. Biome handles general JavaScript, TypeScript, JSX, DOM, and most React checks. ESLint remains for checks that Biome does not provide, including framework plugins and several React 19 contracts. The setup came from real Next.js and React codebases behind Albumentations.ai , sportscategory.info , and my-roots.me : Next.js 16 React 19 TypeScript ESLint 10 with flat config Biome with the all preset Yarn 4 Node.js 22, 24, and 26 My projects need a smaller rule set: the
AI 资讯
How I built an FVG trading bot for OKX and made 99% of its signals useless on purpose
How I built an FVG trading bot for OKX and made 99% of its signals useless on purpose If you trade crypto futures, you know the drill. You're staring at the chart at 3am because you're scared to blink and miss "the perfect entry". Or worse, you get in emotionally, chase a pump, and hand back all your profit in one bad night. I got liquidated once because my stop was at -5% and the liquidation price was at -2%. Price gapped straight through my stop. That's how this project started. I built FVG Killer , a bot that trades one setup only: the ICT Fair Value Gap, on OKX perpetuals. The repo is open-source: https://github.com/Xbs950812/okx_fvg_agent 1. What it trades FVG stands for Fair Value Gap, from the ICT (Inner Circle Trader) framework. The idea is simple: one violent candle moves price fast and leaves a "vacuum" where almost nobody got filled. The theory says market makers rebalance and price tends to come back and fill at least half of that vacuum. So the bot waits for price to retrace into the gap, enters, takes profit at the 50% level (consequent encroachment in ICT-speak), and stops out outside the gap. Detection pipeline: Pre-filter: at least a 3-sigma move and 5x volume expansion Three-candle gap detection, scanning 1H and 4H It tracks the top 100 contracts around the clock, even when it holds nothing 2. The part nobody tells you: saying no Textbooks show you three candles and call it a day. Reality: a naive detector spits out dozens of signals a day and 99% of them are garbage. I built five gates to reject them. Each has a real log line from production: Freshness: gap older than ~100 candles? Drop it. [Freshness] SNXX 1H FVG 186 candles old > 24, drop ATR grade: gap width less than 0.5x ATR is a weak setup. [ATRGrade] width 0.16/ATR 0.37 = 0.43 < 0.5, weak C-grade Direction: don't long a coin that just pumped 14%, don't short one that dumped. [MoverDir] ETHFI 4H long rejected: +14.4% in 24h Depth: if the resting order is 6% off price, you're catching a falli
AI 资讯
483 tests passed, but Vestibule RAG framework wasn't installable — lessons from building with AI agents
I spent two months building Vestibule, an open-source Python framework for the boring layer of RAG ingestion — stable document IDs, a state ledger, error classification, per-vertical governance. The parts every team struggles with once the demo works and production doesn't. Most of the code wasn't typed by me. Four AI agents did the work — one wrote designs, one reviewed them, one implemented, one reviewed the code — all through real GitHub pull requests, with me signing off at every gate. The result: twelve components, three releases, 878 tests. Two moments defined the whole experience. When the process caught what I couldn't The trickiest component provisions vector indexes on first use, safely even when workers race each other. Its design was rejected and revised five times before any code existed. In the first round, the reviewer agent found a genuine race condition: a worker still inside a slow index-creation call (~390 seconds with retries) would look stale (the threshold defaulted to 300 seconds), lose its claim to a waiting worker, and now two workers create the same index. A production race, in the default configuration, spotted by one AI reading another AI's design — before a single line was written. When green tests lied to me After v0.2 shipped, I wrote a quickstart script and ran the pipeline the way a stranger would — for the first time. pip install didn't work. At all. A packaging conflict made the whole framework uninstallable, while 483 tests sat green. An hour of actually using it turned up two more: a default model name that had never once worked against the real SDK, and an import that took down an entire package when an optional dependency was absent. What went wrong wasn't the tests — it was what they measured. They proved the code agreed with itself: same working tree, same mocked seams. Nothing ever checked the world a user lives in: clean machine, real install, real SDK. Passing tests and a working product turn out to be two different claims