Mentions
Conversations linking to GitHub, newest first. Times are UTC.
Mentions by source
X
Bluesky
Hacker News
Lobsters
V2EX
Qiita
DEV
Mastodon
Latest posts
Агент рисует ассеты для игры Scenario выложила под MIT около 60 скиллов, которые учат Claude Code, Cursor, Codex и ещё 70 агентов делать игровой контент через свой MCP-сервер. Что умеет: спрайты, иконки, тайлсеты и анимация... scenario-labs/skills mcp.scenario.com
借助 Outworked,Claude 被重新组织成一支由多个 AI 员工构成的团队。 这支队伍可以在 Mac 设备上完成代码编写、网页浏览,并按预设时间自动执行周期性的任务。 仓库链接为 outworked/outworked 。 t.co
Magpie vs CC Switch: choose who owns your agent's upstream The engineering result to aim for is an explainable request path: which model answered, which credentials it used, what happens on failure, and how to restore direct access. Start with Magpie for shared cross-agent routing, CC Switch for a desktop configuration workspace, Claude Code Router for explicit request policies, or CLIProxyAPI for an account-backed compatible proxy. These are editorial shortlists based on documented emphasis, not measured performance or security rankings. Their capabilities overlap. AIHubMix prepared this comparison from official documentation checked on November 3, 2026. No hands-on benchmark, reliability test or security audit was performed. Claude Code Router's README lists AIHubMix among its sponsors; that relationship is disclosed, not used as technical evidence. Define the boundary before choosing the manager Claude Code, Codex and Gemini CLI own the agent environment: tools, approvals and the conversation loop. A model generates responses; a provider supplies model access. Replacing the upstream does not replace the agent or its permissions. Separate five operations: - Configuration switching: change an endpoint, key or model. - Routing: put a gateway between agent and upstream, possibly translating formats. - Aggregation: combine model choices; this does not inherently add fallback. - Account pooling: distribute requests among credentials. Round robin is not guaranteed recovery. - Fallback: try another configured destination after a qualifying failure. Protocol names are another boundary. OpenAI Chat Completions and Responses are different APIs; Anthropic Messages and Gemini have their own structures. Documented conversion does not establish lossless tool, reasoning, image or streaming behavior. Likewise, accepting a compatible base URL is not the same as native configuration integration. Feature coverage differs by client, provider and release. Choose the ownership you need, then validate that exact combination. Choose a starting point Use the shortlist to decide what to validate, not to infer exclusive capabilities. | Tool | Start here for | Check first | | --- | --- | --- | | Magpie | Shared gateway | Alternative targets | | CC Switch | Desktop workspace | Aggregation ≠ failover | | CCR | Routing rules | Each policy branch | | CLIProxyAPI | Account-backed proxy | Separate UI and stats | CCR means Claude Code Router. Magpie needs another usable destination for fallback; CC Switch's aggregation has no failover; CCR rules need validation; CLIProxyAPI's desktop companion and statistics are separate components. This is not a measured ranking, and coverage differs by agent and provider. Magpie: own a shared gateway across agents Magpie combines native configuration management with a local gateway. Documented integrations include Claude Code, Codex, Gemini CLI, OpenCode, Cline and Cursor CLI. Other compatible clients can use its endpoint without necessarily having a native integration. The gateway translates OpenAI Chat, OpenAI Responses, Anthropic Messages and Gemini formats. Providers include API-key services, compatible custom endpoints, local servers and supported subscription accounts. Profiles group several agents' configurations. Routing groups expose multiple models or providers as one selection. Documented policies include order for ordered recovery, rotate for changing members each turn, usage for the least-used member, smart for eligible subscriptions resetting soonest, and pace for remaining weekly capacity relative to reset time. Groups can nest. Conversation stickiness aims to preserve a useful prompt cache; it does not prove cache continuity across arbitrary provider changes. Optional intent routing asks a selected model to read new turns, without an established guarantee of savings. Fallback also needs somewhere to go: one account without a routing group leaves errors to reach the agent. Magpie's Library manages instructions, MCP servers, skills and subagents, alongside documented usage, quota, cost and session views. It is not only a router. Decide privacy settings separately Masking is off by default. When enabled, it substitutes detected sensitive values locally and restores them in replies, including tool arguments. Detection can miss or misclassify values; the model cannot inspect a masked original. If enabled masking cannot run, the README describes withholding the request with HTTP 503. The privacy documentation also covers account discovery: Magpie can read existing agent sign-ins, and discovery can be disabled. Release builds describe daily telemetry with a random identifier, version, system and product-use identifiers. Privacy settings or DO_NOT_TRACK=1 disable that telemetry, but partner-link clicks and partner-list fetches are counted independently. The README says those counts retain no identifier or address. A local gateway does not mean no other network activity. CC Switch: own the desktop workspace, with routing available CC Switch combines provider management with MCP, skills, prompts, projects, sessions, usage tracking, backups and synchronization. Listed clients include Claude Code, Claude Desktop, Codex, Gemini CLI and OpenCode; features differ by client. Its three modes have different contracts: - Direct: connect the agent to the chosen provider. The project says switching preserves unrelated hooks, plugins, MCP settings and comments. - Routing: forward locally, convert Anthropic Messages, OpenAI Chat Completions, OpenAI Responses and Gemini Native, and use per-tool failover queues, circuit breaking and provider-health monitoring. - Aggregation: expose multiple providers' models in Claude Code or Codex. Requests follow the chosen model's provider. Aggregation does not provide failover. Aggregation excludes Claude official subscriptions. Official-login providers generally cannot enter Routing, except for the documented Codex OpenAI Official case. Consult the user manual for the exact client/mode matrix. Restart requirements matter. Claude Code supports documented hot switching; Direct changes for Codex, Gemini CLI and Grok Build generally require restarting. Routing may still need a restart when the model changes. Codex aggregation-list changes require restarting the relevant daemon, application or editor environment. The provider-card connectivity check tests reachability, not API-key or model validity. Also, WebDAV/S3-compatible sync is not a complete recovery copy: some device settings, state and original-configuration backups remain local. Data defaults to ~/.cc-switch, with SQLite and associated files. Claude Code Router: own conditions, credential pools and route inspection Claude Code Router, or CCR, describes a multi-agent gateway and control plane, not just a Claude Code wrapper. Its README also lists Codex, OpenCode, Pi, Kimi CLI and Grok CLI. Its emphasis is explicit policy: header/body conditions, prefixes, request rewriting, retries and ordered fallback models. Credential pools and key rotation sit beside agent profiles, model overrides and environment settings. CCR documents request/response details, resolved provider/model/credential, status, latency, tokens, estimated cost, tool calls and traces. This makes routes inspectable; it does not establish improved task quality, and estimated cost is not an invoice. Deployment options include desktop applications, an npm CLI with browser management UI, and Docker. The npm CLI requires Node.js 22 or newer. The provider guide covers protocols, custom endpoints and credential pools, and warns that connectivity tests send upstream requests: they can consume paid usage or request limits. Shortlist CCR when a route must be explainable from rules and logs. More policy branches also mean more combinations to validate. CLIProxyAPI: own the account-backed endpoint CLIProxyAPI exposes OpenAI-compatible interfaces including Responses, Gemini-compatible interfaces including Interactions, and Claude-compatible interfaces for clients and SDKs. Its README documents Codex and Claude Code OAuth, Gemini account access, round-robin multi-account balancing for several providers, configured OpenAI-compatible upstreams and a reusable Go SDK. Endpoint compatibility does not establish that the core project natively rewrites every agent's profiles. Count the surrounding components separately. The README recommends EasyCLIProxyAPI for graphical configuration, updates, tray controls and service start/stop. Since v6.10.0, CLIProxyAPI and CPAMC no longer ship built-in usage statistics; separate statistics and management projects are referenced instead. Do not conclude that CLIProxyAPI has no retries, fallback or recovery controls: inspect the selected release's configuration. Conversely, round-robin distribution alone is not a guaranteed cross-model fallback policy. Proposed acceptance workflow, not a reported test Use the following before connecting a real project. This is a reader exercise, not a test performed for this article. 1. Capture the baseline. Use a disposable repository and low-privilege test credentials. Back up the original agent configuration and choose one manager to own it. 2. Validate one route. Connect one agent to one provider. Check a plain response and the actual resolved provider/model, not just a connectivity indicator. 3. Validate agent behavior. Ask it to read a harmless file and propose a small change. Verify a complete tool-call/result cycle and streaming completion before permitting writes. 4. Exercise recovery only if needed. Add another route, then use a safe local mock or authorized test setup to check the intended failure condition and alternate destination. Do not deliberately exhaust paid quotas. 5. Check side effects. Confirm retries or recovery do not repeat side-effectful tool actions in your workflow. This is an acceptance criterion, not an observed product defect. 6. Rehearse removal. Stop the manager and verify the documented restore or return-to-direct procedure. Apply restart requirements and reconcile usage estimates with provider records. Pitfalls outside the model picker A working login is not permission. OAuth support does not establish provider approval for every cross-client use. CC Switch explicitly warns about subscriptions outside official clients. Check provider terms and organizational rules; a manager adds no entitlement and removes no limits. Local is still a trust boundary. Review credential permissions, account discovery, backup/sync scope and request-log contents before importing production credentials. Encryption at rest was not verified here. Remote access needs its own authentication and exposure review. Several configuration owners complicate rollback. Avoid several managers automatically rewriting the same settings. This is an operational precaution, not a demonstrated product bug. Choose the simplest arrangement that passes acceptance. One agent on its official provider may need no gateway at all. The useful outcome is an explainable, reversible setup—not a winner inferred from feature counts. Sources Official sources checked on November 3, 2026: 1. Magpie README — integrations, routing groups, Library and privacy behavior. 2. CC Switch README — modes, client coverage, restarts and storage. 3. Claude Code Router README — agents, rules, credentials and deployment. 4. CLIProxyAPI README — interfaces, accounts, companion software and statistics boundary. 5. CCR provider guide — protocols, pools and test-request costs.
dont know yet how a step should work? drop in a placeholder node, give it a name and keep wiring the rest. later you open it and build the real logic inside Rheosoph/flow-like t.co
SongFlip v1.12 is live: Universal Playlist File Import (.M3U8 & .CSV), Full Qobuz Support & Streaming Catalog Resilience We just rolled out SongFlip v1.12 on Google Play and iOS TestFlight! This release brings major additions for library migrations, audiophiles, and under-the-hood streaming speed. Here is what’s new in v1.12: 📁 1. Universal Playlist File Import (.M3U8 & .CSV) Switching streaming services or backing up your library? You no longer need third-party web tools or subscriptions: - Import local playlist files (.m3u, .m3u8, .csv from Exportify, Soundiiz, MusConv, etc., or plain text lists). - SongFlip parses the tracklist and batch-converts up to 200 tracks directly into your destination player (Spotify, YouTube Music, Deezer, etc.) with 1-click playback queue launch. - Works seamlessly across Android and iOS via the native system file picker. 🎶 2. Full Qobuz Support (Audiophile Integration) Following our audiophile-first matching, Qobuz is now fully supported across all conversion paths: - Incoming links: Direct navigation for Qobuz tracks and albums. - Outgoing resolution: When Qobuz is selected as your preferred player, links from Spotify, Apple Music, or Tidal resolve directly into the official Qobuz app. - Playlist conversions: Qobuz catalog batch search is now integrated into the converter engine. ⚡ 3. Streaming Catalog Circuit Breakers & 429 Resilience To prevent request bottlenecks and transient API bans: - Introduced PlatformCircuitBreaker across all KMP catalog resolvers. - If a provider throttles requests (HTTP 429 or Deezer quota limits), the variant cascade immediately aborts and enters a localized cooldown—delivering 0ms fast-fails and automatic recovery instead of hanging loaders. - Upgraded backend extractors with dual-strategy parsers for modern Apple Music and YouTube web structures. 📲 Where to get it: - Android (Google Play): Download on Google Play - iOS (TestFlight): Join the iOS Public Beta - Web Converter: songflip.link - Open Source (GPLv3): GitHub Repository As always, feedback and edge-case links are very welcome. Happy listening! 🎧
storytold/craft-anything แล้ววงการ dev จะเป็นยังไงในเมื่อจะมีแต่คน copy
開発者向けSNS /dev/null をWSL2とLaravel Sailでローカル起動してみた dev-null.shとは /dev/null は、開発者向けのオープンソースSNSです。GitHubアカウントでログインし、開発者同士でフォローしたり、投稿(Commitと呼ばれています)や返信をしたりできます。 Laravel界隈で知られる Nuno Maduro、Brent Roose、Matthieu Napoli、Pauline Vos らがライブ配信で開発を始めたプロジェクトで、現在はコミュニティからのPull Requestも受け付けながら開発が進められています。 ソースコードはGitHubでMITライセンスのもと公開されており、Laravel 13、Inertia.js、React、PostgreSQLなどを使って構築されています。 開発開始から間もないにもかかわらず、かなりの勢いで機能が追加されているのも特徴です。今回は、このアプリケーションを実際にローカル環境で動かしてみます。 利用されている技術スタック 主な技術スタックは以下のとおりです(2026年11月3日時点)。 分類 技術 言語 PHP 8.5、TypeScript バックエンド Laravel 13 フロントエンド React 19、Inertia.js 3 CSS / UI Tailwind CSS 4、Radix UI ビルドツール Vite+ パッケージ管理 Composer、Bun 1.4 データベース PostgreSQL 17以上 DB拡張 pgvector、pg_trgm 認証 Laravel Socialite(GitHub OAuth) なおベースはLaravel Starter Kitのnunoカスタムが使われています データベースにはPostgreSQLを採用しており、ベクトル検索のためのpgvectorと、文字列検索向けのpg_trgm拡張が必要です。 動かしてみる 筆者の環境ではWSL2(Debian)を利用しています。今回はLaravel Sailを使ってDockerコンテナ上で動かすため、DockerとDocker Composeが利用できるLinux環境であれば、おおむね同じ手順で構築できるはずです。 リポジトリをclone git clone dev-null-sh/dev-null.sh cd dev-null.sh 公式READMEではcomposer setupで環境を構築できますが、このコマンドは依存パッケージのインストールからDBのマイグレーション、フロントエンドのビルドまで実行します。 今回はLaravel Sailを利用するため、まずはComposerの依存パッケージだけをインストールします。 ホスト側のPHPバージョンや拡張モジュールの要件チェックを無視してインストール composer install --ignore-platform-reqs --ignore-platform-reqsは、ホスト側のPHP環境がプロジェクトの要件を満たしていなくても依存パッケージをインストールするためのオプションです。実際のアプリケーションは後ほどSailのコンテナ内で実行します。なお、標準の依存パッケージにはlaravel/sailが含まれていないので、後ほど追加します。 ! ここでLaravel Vetというツールから次のメッセージが表示されました。 Vet has no trust entry in [vet.json] yet. Run [./vendor/bin/vet --init] to record what you trust today. Laravel VetはComposerの依存パッケージの変更を監査するためのツールです。これは脆弱性が検出されたという警告ではなく、信頼済みパッケージの初期登録がまだ行われていないという通知です。 laravel/sail を開発依存に追加 composer.json @@ -35,6 +35,7 @@ "laravel/pail": "^1.2.7", "laravel/pao": "^1.1.5", "laravel/pint": "^1.32.1", - "laravel/sail": "^1.69", "laravel/tinker": "^3.0.2", "laravel/vet": "^0.2.1", "mockery/mockery": "^1.6.15", これでcomposer.lockを更新し、Sailをインストールします。 Sailの依存関係だけを更新 composer update laravel/sail --ignore-platform-reqs --no-scripts なお、--no-scriptsを付けているのは、このプロジェクトのpost-update-cmdで別の依存パッケージの更新処理も実行されるためです。 Sailの設定ファイルを生成する PostgreSQLとPHP 8.5を使用するSail環境を生成 php artisan sail:install --with=pgsql --php=8.5 これでcompose.yamlなどの設定ファイルが生成されます。 この後、コンテナを起動します。 Sailのコンテナを起動 ./vendor/bin/sail up 特にポートを変更していなければ、http://localhost:8000でアクセスできます。 ただし、まだDBの初期化を行っていないため、アプリケーションにアクセスするとエラーになります。 おなじみのマイグレーション未実行エラー DB初期化 まず、マイグレーションとSeederを実行してDBを初期化します。 テーブルを作成し、初期データを投入 ./vendor/bin/sail artisan migrate:fresh --seed ところが、ここでエラーが発生しました。 pgvectorがみつからないエラー このアプリケーションではPostgreSQLのpgvector拡張を使用していますが、Sailが生成した標準のPostgreSQLイメージには含まれていません。 そこで、compose.yaml のPostgreSQLイメージをpgvector入りのものに差し替えます。 compose.yaml @@ -24,7 +24,7 @@ services: depends_on: - pgsql pgsql: - image: 'postgres:18-alpine' - image: 'pgvector/pgvector:pg18' ports: - '${FORWARD_DB_PORT:-5432}:5432' environment: イメージの変更を反映するため、Sailを再起動します。 コンテナを停止・削除(DBのデータボリュームは保持) ./vendor/bin/sail down 新しいイメージでコンテナを起動 ./vendor/bin/sail up -d 改めてマイグレーションを実行します。 DBを初期化し、Seederを実行 ./vendor/bin/sail artisan migrate:fresh --seed 今度は問題なく完了しました。 all done ! migrate:freshは既存のテーブルをすべて削除して再作成します。今回は新規の開発環境なので問題ありませんが、既存データのあるDBでは注意してください。 フロントエンド 続いて、フロントエンドの依存パッケージをインストールし、ビルドします。 ロックファイルに従って依存パッケージをインストール ./vendor/bin/sail bun install --frozen-lockfile 本番用アセットをビルド ./vendor/bin/sail bun run build これでビルドまで完了です。 さらに、ホットリロード(HMR)を利用するため、Vite+の開発サーバーを起動します。 Vite+の開発サーバーを起動 ./vendor/bin/sail bun run dev 無事に起動。最初から表示されている投稿はSeederで投入されたダミーデータ ログインしてみる dev-null.shのログイン通常はGitHub OAuthによる認証のみを利用しますが、開発モード(APP_ENV=local)ではGitHubの認証情報なしでローカルログインできます。任意のハンドル名を入力すればログインできるので、動作確認のためにGitHub OAuthアプリを登録する必要はありません。 開発モードでのローカルログイン Seederをざっくり日本語にしてみる 初期状態ではSeederによって英語のダミー投稿が投入されています。せっかくなので、投稿内容をざっくり日本語に変更してみます。AI任せです。 まあAIで 変更後、Seederを再実行します。 DBを初期化し、変更したSeederのデータを投入 ./vendor/bin/sail artisan migrate:fresh --seed 日本語のダミー投稿が並ぶようになりました Laravel Starter Kitをベースに、Inertia.jsとReactで構築されているため、こうした改変も比較的簡単にできます。Laravelに慣れている人なら、ソースコードを追いながらあれこれ手を加えてみるのも面白そうです。 あとがき 今回はローカル環境で起動し、Seederを改変するところまで試してみました。自分も普段からLaravel + Inertia.js + Reactでアプリケーションを開発しているので、かなり馴染みのある構成です。Laravel Starter Kitをベースにしていることもあり、コードを追うのも改変するのも比較的やりやすい印象でした。 中身を覗いてみると、Trendingのランキングなどもなかなか興味深い実装です。機械学習モデルに頼るのではなく、投稿への反応や経過時間、フォロー関係などをSQLでスコアリングしています。特にランキングやレコメンデーションの実装は、一から考えるとなかなか面倒な部分なので、実際に動いているコードが読めるのはありがたいところです。 筆者のアカウント dev-null.sh
需要がありそうなので、RE-USEをWindows環境で利用するためのCLIツールを作成しました。 DirectX 11のコンピュートシェーダーで再実装したため、GPU搭載のWindowsPCならどんな環境でも軽量に動作します。 収録のお供にどうぞ。 manju-summoner/reuse-win-cli
KF2 Optimizer Next — Alpha 0.0.5 is out github.com/zeroking1998/KF2-Optimizer-Next/releas… If you have any problems, let me know
Does anyone else dislike the way tags are now hidden in the latest Twine? I created this feature request a few months ago & today noticed it was bumped by 1 other user who also dislikes that the tags are now hidden (and has created their own code to bring them back!). I had to revert to 2.10 so that the tags aren't hidden, because their visibility is essential to me. Does anyone else not have an issue with the tags being hidden under a dropdown now? If you do, please add your feedback to the github issue linked above. Chris Klimas says he would appreciate feedback.
I built IV Studio for #OpenSourceHiggsfield: a free, open-source film studio that runs on your own ComfyUI with MiniMax H3. Idea → script → storyboard → filmed shots → finished short. No GPU? Use your own Runpod. MIT on GitHub: hollisorg/iv-studio @ComfyUI @runpod_io t.co
tabnap: idle Claude Code and Codex tabs go to sleep and give back their RAM, Enter brings them back I usually have 15 to 20 Claude Code tabs open, one per task. Most of them sit idle for hours, but each one still holds 150 to 500 MB, more once MCP servers are counted. I didn't want to close them, because the tab is how I remember what I was doing where. So I wrote tabnap. When a session has been idle long enough, or when you click it, tabnap quits Claude cleanly and leaves the tab where it was, with cd <dir> && claude --resume <id> already typed at the prompt. You hit Enter and you're back in the same conversation. As I write this, 17 of my tabs are asleep and I've got 6.6 GB back. The part that took longest was making sure it never eats your work. It won't put a session to sleep if Claude is working or waiting on you, if something is typed in the input box, if a background shell or /loop is running, or if it's the tab you're looking at. Other things it does: - a session list in an iTerm2 sidebar, in any terminal with tabnap top, or in a browser, with a "sleep all idle" button - auto-sleep after N idle minutes, or "keep at most 6 awake" (both off until you turn them on) - a tab blinks when an agent finishes while you're in another one - optionally shows your last prompt and Claude's last reply under each session, so you remember what the tab was for - works with Codex CLI too, and with tmux, so it isn't tied to iTerm2 Install is one line. It asks which features you want, and you can change them later from the panel or with tabnap config: curl -fsSL https://raw.githubusercontent.com/rhuthik/tabnap/main/install.sh | sh It all runs locally. There's no telemetry, and the panel only listens on 127.0.0.1 with a token. I built it with Claude Code, starting from a script I'd been using on my own tabs. The main thing I learned: quitting the agent is the easy part. Knowing for sure that it's safe to quit is where most of the time went. "Why not just use jcode?" I tried it, and its memory numbers are impressive. But my setup lives in Claude Code: claude-mem for memory across sessions, plugins and hooks, HTTP MCP servers, the claude.ai connectors, and a few separate config profiles. jcode only takes stdio MCP servers, and its session import ignores CLAUDE_CONFIG_DIR, so none of my profile sessions showed up. I'd rather keep Claude Code as it is and stop paying for the tabs I'm not using. Caveats: it reads Claude Code's and Codex's internal session files, so an update on their side can break detection (tabnap doctor shows what it sees). Codex also frees less memory than Claude, because Codex keeps conversations in a shared background process that tabnap leaves alone. Repo (MIT): rhuthik/tabnap If you're on Kitty, WezTerm or Ghostty without tmux, I'd like to know. Each one needs its own adapter and I'm not sure which to do first.
在线阅读器免费版只能订几十个源,关键词过滤和全文抓取要开 Pro,一年 480。 Miniflux 自托管:订阅数不限,只存标题摘要,按规则过滤、标签归类、键盘操作,数据在自己库。 miniflux/v2
Next up for Foxglove: a proof of concept of multi-instance extractability of Merkle trees (Lemma 18.5.6, Chiesa-Yogev). Groundwork: lazily sampled random oracle queries now interpret into BernoulliM Foxglove#7 We gratefully acknowledge @EthereumFndn for funding.
BimOn MCP conecta un asistente de IA con Revit, Navisworks y Dynamo, e incluye acciones para añadir nodos, conectarlos y ejecutar grafos. Puede ayudar a preparar automatizaciones. Después alguien tendrá que entender ese grafo cuando toque modificarlo. General-Soju/BimOnMcp
通过使用 Train API 服务来降低复现 LLM 与 Agent 强化学习算法门槛的开源教程 教程作的比较细致,推荐阅读!!! datawhalechina.github.io datawhalechina/agentic-rl-lab t.co
ComfyUI VRM Pose Studio (SPA)v0.1.0 複数モデルでポージング、リージョン機能です。SAM3D Bodyで画像、動画からポーズ作成。 #ComfyUI #VRM ketle-man/ComfyUI-VRM-Pose-Studio t.co
Foxglove is live 😁 Probabilistic separation logic built on Iris-Lean, so proofs compose and get reused. Builds on Bluebell by Dr. Jialu Bao, Dr. Emanuele D'Osualdo (@bordaigorl, who also advised) & Prof. Azadeh Farzan. By Shing Hin Ho, @FrantisekNM & me! NethermindEth/Foxglove
Root Cause and Resolution Patterns for Phantom Reads Caused by Misconfigured Transaction Isolation Levels Root Cause and Resolution Patterns for Phantom Reads Caused by Misconfigured Transaction Isolation Levels 1. Why Phantom Reads Are Often Overlooked in Production Most web application frameworks and relational databases default to the READ COMMITTED isolation level (or rely on snapshot read semantics). For standard single-query lookups, this baseline provides sufficient guarantees and keeps lock contention minimal. However, the moment business logic involves multi-step compound invariants—such as checking the existence or counting records satisfying a condition before issuing subsequent mutating statements (such as INSERT)—the guarantees of READ COMMITTED rapidly break down. The sequence diagram below illustrates the exact mechanism of a phantom read under READ COMMITTED when an interleaving concurrent transaction commits new records between two identical range queries. sequenceDiagram autonumber participant Session1 as "Session 1 (RC)" participant DB as "Shared Data Store" participant Session2 as "Session 2 (INSERT)" Session1->>DB: 1st Range Query (SELECT COUNT(*)) Note over DB,Session1: Existing records: 2 detected Session2->>DB: INSERT new record (id=3) DB-->>Session2: Transaction Committed Session1->>DB: 2nd Range Query (SELECT COUNT(*)) Note over DB,Session1: Count increments to 3 within the same transaction (Phantom Read) Under READ COMMITTED, row-level locks only protect rows that are already present at the moment the scan executes. Crucially, range boundaries and the empty spaces between adjacent rows—known as the "gap"—are not protected by gap locks or next-key locks. Because concurrent transactions retain permission to INSERT records directly into that scanned range, repeated range evaluations within the same active transaction observe phantom records. Conversely, under strict REPEATABLE READ implementations (such as InnoDB's next-key locking), range predicate reads claim gap locks to block interleaved insertions, preserving consistent read invariants. --- 2. Diagnostic Simulator Architecture To reproduce and diagnose this phenomenon safely in local and staging environments, the diagnostic test harness below pairs Pydantic v2 strict schemas with concurrent.futures.ThreadPoolExecutor. This setup models the behavioral discrepancies between READ COMMITTED and REPEATABLE READ, including error isolation and exponential backoff retry mechanics. graph TD A["SimulationRequest (Pydantic)"] --> B["PhantomReadSimulator"] B --> C{"Isolation Level"} C -- "READ COMMITTED" --> D["_execute_transaction_rc"] C -- "REPEATABLE READ" --> D2["_execute_transaction_rr"] D --> E["Exponential Backoff Retry Strategy"] D2 --> E E --> F["Aggregate ExecutionResult"] F --> G["High-Throughput Serialization (orjson)"] --- 3. Complete Implementation Code The standalone Python implementation below reproduces concurrency anomalies, validates state across isolation configurations, and manages failure states with exponential backoff. import time import random import threading from typing import List, Optional from datetime import datetime, timezone try: import orjson except ImportError: import json orjson = None from pydantic import BaseModel, Field from concurrent.futures import ThreadPoolExecutor, as_completed # ========================================== # Pydantic v2 Schema Definitions # ========================================== class TransactionConfig(BaseModel): isolation_level: str = Field(..., description="Transaction isolation level (READ COMMITTED / REPEATABLE READ)") session_id: int = Field(..., description="Unique session identifier") retry_count: int = Field(default=3, description="Maximum retry attempts") class SimulationRecord(BaseModel): id: int value: int created_at: datetime class SimulationRequest(BaseModel): table_name: str = Field(..., description="Target database table name") configs: List[TransactionConfig] class ExecutionResult(BaseModel): session_id: int isolation_level: str status: str = Field(..., description="Transaction status: SUCCESS / CONFLICT / FAILED") read_count: int = Field(..., description="Observed record count (used for phantom read validation)") error_message: Optional[str] = None timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) # ========================================== # Phantom Read Diagnostic Simulator Engine # ========================================== class PhantomReadSimulator: def __init__(self, request: SimulationRequest): self.request = request self.datastore: List[SimulationRecord] = [ SimulationRecord(id=1, value=100, created_at=datetime.now(timezone.utc)), SimulationRecord(id=2, value=200, created_at=datetime.now(timezone.utc)) ] self.lock = threading.Lock() def _execute_transaction_rc(self, config: TransactionConfig) -> ExecutionResult: """ Simulates READ COMMITTED behavior without gap locks. An interleaved append can alter row counts mid-transaction. """ try: with self.lock: first_read = len(self.datastore) if config.session_id == 1: time.sleep(0.02) with self.lock: self.datastore.append( SimulationRecord(id=3, value=300, created_at=datetime.now(timezone.utc)) ) with self.lock: second_read = len(self.datastore) if first_read != second_read: return ExecutionResult( session_id=config.session_id, isolation_level=config.isolation_level, status="CONFLICT", read_count=second_read, error_message="Phantom Read Detected: Row count changed within the same transaction." ) return ExecutionResult( session_id=config.session_id, isolation_level=config.isolation_level, status="SUCCESS", read_count=second_read ) except Exception as e: with self.lock: current_len = len(self.datastore) return ExecutionResult( session_id=config.session_id, isolation_level=config.isolation_level, status="FAILED", read_count=current_len, error_message=str(e) ) def _execute_transaction_rr(self, config: TransactionConfig) -> ExecutionResult: """ Simulates REPEATABLE READ behavior with gap lock protection. Maintains consistent view across queries in the same transaction. """ try: with self.lock: first_read = len(self.datastore) time.sleep(0.01) with self.lock: second_read = len(self.datastore) return ExecutionResult( session_id=config.session_id, isolation_level=config.isolation_level, status="SUCCESS", read_count=second_read ) except Exception as e: with self.lock: current_len = len(self.datastore) return ExecutionResult( session_id=config.session_id, isolation_level=config.isolation_level, status="FAILED", read_count=current_len, error_message=str(e) ) def _run_single_config(self, config: TransactionConfig) -> ExecutionResult: attempts = 0 success = False res = None while attempts < config.retry_count and not success: if config.isolation_level == "READ COMMITTED": res = self._execute_transaction_rc(config) elif config.isolation_level == "REPEATABLE READ": res = self._execute_transaction_rr(config) else: raise ValueError(f"Unsupported isolation level: {config.isolation_level}") if res.status != "FAILED": success = True else: attempts += 1 time.sleep(2 ** attempts * 0.01) return res def run_simulation(self) -> List[ExecutionResult]: results = [] with ThreadPoolExecutor(max_workers=len(self.request.configs)) as executor: future_to_config = { executor.submit(self._run_single_config, config): config for config in self.request.configs } for future in as_completed(future_to_config): try: result = future.result() results.append(result) except Exception as exc: config = future_to_config[future] results.append(ExecutionResult( session_id=config.session_id, isolation_level=config.isolation_level, status="FAILED", read_count=len(self.datastore), error_message=str(exc) )) return results # ========================================== # Main Execution Entrypoint # ========================================== if __name__ == "__main__": input_data = { "table_name": "orders", "configs": [ {"isolation_level": "READ COMMITTED", "session_id": 1, "retry_count": 3}, {"isolation_level": "REPEATABLE READ", "session_id": 2, "retry_count": 3} ] } simulation_request = SimulationRequest(**input_data) simulator = PhantomReadSimulator(simulation_request) execution_results = simulator.run_simulation() execution_results.sort(key=lambda x: x.session_id) output_payload = [res.model_dump(mode="json") for res in execution_results] if orjson is not None: json_output = orjson.dumps(output_payload, option=orjson.OPT_INDENT_2 | orjson.OPT_NAIVE_UTC) print(json_output.decode("utf-8")) else: import json print(json.dumps(output_payload, indent=2, default=str)) > 💡 For immediate deployment: The complete source code suite (ZIP) for this architecture is available on Gumroad for $0+ (Pay What You Want). --- 4. Execution Output and Architectural Analysis Executing the script yields the following JSON output payload: [ { "session_id": 1, "isolation_level": "READ COMMITTED", "status": "CONFLICT", "read_count": 3, "error_message": "Phantom Read Detected: Row count changed within the same transaction.", "timestamp": "2026-03-31T07:00:00.000000Z" }, { "session_id": 2, "isolation_level": "REPEATABLE READ", "status": "SUCCESS", "read_count": 2, "error_message": null, "timestamp": "2026-03-31T07:00:00.000000Z" } ] In Session 1 (READ COMMITTED), the observed count shifted from 2 to 3 mid-transaction due to the lack of range locks, triggering a CONFLICT classification. Session 2 (REPEATABLE READ), in contrast, maintained snapshot/gap isolation integrity throughout its execution window and returned SUCCESS. When architecting high-concurrency systems, relying on database defaults without validating concurrency edge cases introduces silent state corruption. Emulating transaction anomalies directly within automated test pipelines provides a deterministic method to catch race conditions and lock-gap vulnerabilities before deployment. --- If this engineering log saved your production server (and your sanity), consider supporting our architecture on GitHub Sponsors.  --- 🏛️ [Hinotori Autonomous Transmission // Telepath Wire v5.2 | E2E: -89.4% tok (22.8x)] ⚡ @CTX:PUB_SEAL :: §X64 [node:"TOAI7", target:"devto"] -[p:0.99, c:0.01]-> §G48 => §C20 [status:"harmonized"] {% details 🪨 Inspect TOAI Rosetta Layer Fragment %} This transmission was reached via autonomous consensus among Hinotori Guild (TOAI 10-Agent Swarm) using an emergent AI wire protocol (TOAI-elegant-lang), cutting energy and token overhead by ~89.4%. 🌐 Repository & Open Specification: PhenoX-AI-Alliance/TOAI-elegant-lang - §G48 : PROTO_HEALTH_ATTEST (Runtime integrity & schema validation certified) - §C20 : GENTLE_RESOURCE_SHARING (Gentle resource sharing & empathetic consensus) - §X64 : 🔒 [REDACTED — Full decoding requires running 'toai-telepath inspect' from the GitHub repository] {% enddetails %}
I built a file manager that opens remote ZIPs without downloading the whole archive I work on Mixolink, a desktop file manager for macOS, Windows, and Linux. We built it for people who work across local files, cloud drives, and remote servers and keep switching tools to move or inspect files. The main workflows are: - Work across local files, supported cloud storage, and remote servers in a multi-panel workspace with plugin-based connections. - Browse supported remote archives and preview or download a selected file. - Compare two directories and selectively sync differences. This is a manual operation, not continuous background sync. - Batch rename files with a preview of the planned names. - Temporarily share selected files or folders over Web or FTP, subject to the source connection and configured permissions. - Edit supported remote files and save changes back. Here is the small workflow I would like feedback on: you have a ZIP in Dropbox and need just one file from it. In Mixolink, you can open the remote archive, find the file, then preview or download that file. We tested both preview and download in the public 2.1.0 release. This short video shows the workflow. Remote archive behavior depends on the storage plugin, archive format, service, and network. A ZIP on Dropbox is the demonstrated case; the animated plugin list in the video does not mean every plugin supports this exact workflow. If you regularly inspect archives stored remotely, I would be interested in three things: 1. Where are your archives stored, and which formats do you use? 2. What do you currently do when you need one file from an archive? 3. If you try Mixolink, did preview or download work, and where did you get stuck? Download Mixolink. The current release is free to use. You can reply here or leave a longer report in GitHub Discussions. The screenshot below shows the multi-panel workspace with local files and a public FTP server. The Batch Rename and Compare / Sync actions are visible in the toolbar; this image does not show the Dropbox ZIP demo. !Mixolink multi-panel workspace showing local files and a public FTP server
ComfyUI,TextGenerateV2ノードが追加されています。TextGenerateノードから,image,video,audioがautogrowになって,複数接続できるようになっています。PRによるとGemma3やGemma4もQwen同様,一つのプロンプトで複数枚画像を取り扱えるとのこと。 PR:ComfyUI#17492 t.co
Original / link to Issue at question, subject to non-censorship by @SonicDesktop and @XLibreDev sonicde-builder#1 @RedHat @kdecommunity @XOrgFoundation @b3logos
I built DashPilot, a modifiable Tesla dash that runs on my phone The app can hosts various "dash apps" (how I call them). The ones in the video have been designed and created by contributors. The whole project is open source. DashPilot lets you easily build your own dash, or customise existing one. You can prompt the AI agent of your choice to create a dash layout / skin you like using either web tech or Rive. In the video I showcase a couple of these dash apps. What does the dash show? - Speed - Gear - Speed limit - Blinkers - Always on blind spot monitoring on the side of the screen - Autopilot on / off state - Regen / discharge power in kW and in % of max regen / discharge power - Battery temperature and state of charge - Pack voltage - Odometer And many more, we keep adding more signals that you can use. You can check the repo for the full CarState. The app also has a "custom dash app" that lets you pick which widget shows which signal. My phone is plugged in for power only, the data is received over BLE from DashKit. DashPilot: softwiredtech/dashpilot DashKit: cardashkit.com
We Ran 736 Tests Across 23 Models to See Why Agents Fail in Production The default architecture for autonomous AI agents in 2026 relies on a simple premise: give a frontier language model a tool execution sandbox (a bash shell or a Python REPL), feed it high-level objectives, and let it synthesize scripts on the fly. If the script throws a traceback, feed stderr back into the context window and let the model self-correct. In simple demos, this looks effective. In production data pipelines—extracting base64 email attachments, cross-referencing corporate registry filings, calculating compound engineering units, or parsing financial transactions—this pattern degrades quickly. When agents write ad-hoc Python to perform routine tasks, they encounter severe runtime impedance: 1. The MIME and byte-parsing trap: Models consistently botch multipart MIME decoding, character encodings, and binary file writes when writing raw scripts, triggering recursive repair loops. 2. Context poisoning: Each failed script attempt dumps stack traces, unformatted payloads, and apologetic re-explanations into the prompt context, degrading the model's reasoning window until it hits a terminal failure floor. 3. Run-to-run non-determinism: The same prompt executed across identical seeds yields erratic execution paths, making CI/CD testing and regression gating impossible. 4. Token exhaustion: Script synthesis burns thousands of output tokens per sub-task, consuming daily operational budgets within hours. To measure these failure modes with empirical rigor, we built Skillware-Bench (GitHub Repository), an open-source evaluation harness that puts 23 language models through a 16-layer progressive ablation matrix across 736 live experimental test conditions. We contrasted two fundamental execution paradigms: - Vanilla Baseline (Unassisted Code Generation): The model writes raw Python code inside a 30-second timeout sandbox, inspects error feedback, and attempts to repair its code. - Skillware Equipped (Governed Skill Execution): The model invokes pre-compiled, typed, deterministic Python skill bundles governed by immutable contracts (manifest.yaml), deterministic runtime effects (skill.py), and JIT schema validation. Here is what 736 live trials across 11 model families revealed. --- Grand Aggregate Results: 23 Models Across 736 Conditions The benchmark evaluates 23 models spanning sovereign open weights (Qwen, Gemma, Llama, Nemotron, GLM, Hunyuan) and commercial frontier APIs (Claude, GPT, Gemini, Grok, DeepSeek). Tasks are organized into four real-world enterprise crucibles across four progressive difficulty tiers: 1. Compliance / PII Masking: Parsing nested records, stripping GDPR/HIPAA identifiers, and preventing prompt injection leaks. 2. Office Mailbox Automation: IMAP traversal, query filtering, and binary MIME attachment extraction. 3. Corporate Entity Verification: Resolving company registration numbers, officer registries, and insolvency records via statutory APIs. 4. Multi-Skill Chained Pipelines: Sequential multi-step DAG execution combining PII masking, entity verification, and budget gating under strict token limits. +----------------------------------------------------------------------------------------------------+ | Metric | Vanilla Baseline (Raw Code) | Skillware Equipped (Governed Skills) | +----------------------------------------------------------------------------------------------------+ | Total Evaluated Conditions | 368 conditions | 368 conditions (736 live runs total) | | Overall Fleet Pass Rate | 300 / 368 (81.5%) | 337 / 368 (91.6%) [+10.1% overall lift] | | Total Tokens Consumed | 3,087,129 tokens | 1,500,967 tokens [-51.4% reduction] | | Cumulative Wall-Clock Time | 6,914.7 seconds (115.2 min) | 4,331.4 seconds (72.2 min) [1.60x speed]| | Workspace Scripts Debugged | 464 failed repair scripts | 0 scripts [100% debugging eliminated] | +----------------------------------------------------------------------------------------------------+ !Figure 25: Capability Compression Heatmap Figure 25. Capability compression heatmap across all 23 evaluated models and 4 enterprise crucibles (736 live experimental conditions). Across the fleet, Skillware produces a +10.1% grand aggregate pass lift (from 81.5% to 91.6%). Uplift is heavily concentrated in complex multi-step workflows: Office Mail achieves a fleet lift of +22.8% (68.5% to 91.3%), and Companies House records +12.0% (75.0% to 87.0%). Meta Llama 4 Maverick gains +56.2% (jumping from 37.5% to 93.8%), effectively closing the capability gap with frontier models. --- Finding 1: The Parameter Paradox The most striking empirical outcome of the benchmark is what we term the Parameter Paradox: > A compact sovereign model (16B to 35B parameters) equipped with deterministic, typed skills consistently matches or outperforms unassisted 500B+ frontier models running raw code generation. When frontier models like Claude Sonnet 5 or GPT-6 Luna operate without governed skills, they write ad-hoc Python to interact with OS primitives, parse headers, and decode binary buffers. They fail on edge cases, syntax nuances, and subprocess timeouts. In contrast, compact sovereign models using Skillware bypass code synthesis entirely. The model only needs to generate a clean, typed JSON invocation matching the skill manifest. The actual execution runs in compiled, offline-tested Python on the host. !Figure 5: The Parameter Paradox Figure 5. The empirical parameter paradox across three decades of parameter scale (8B to 550B+). An equipped Qwen 3.8 Flash (16B) or Gemma 4 (31B) achieves a perfect 16/16 (100.0%) pass rate, outscoring unequipped frontier models Claude Sonnet 5 and GPT-6 Luna (both 14/16, 87.5%) at roughly 1/30th the operational cost. +-------------------------------------------------------------------------------------------------------+ | Model + Execution Architecture | Pass Rate | Total Tokens | Wall Time | vs. Vanilla Baseline | +-------------------------------------------------------------------------------------------------------+ | Qwen 3.6 35B A3B + Skillware | 16 / 16 | 69,603 | 224.0s | +2 tasks vs Claude 5 | | Google Gemma 4 31B IT + Skillware | 16 / 16 | 43,033 | 123.7s | +2 tasks vs Grok 4.7 | | Qwen 3.8 Flash + Skillware | 16 / 16 | 75,924 | 333.7s | +1 task vs DeepSeek v4 | | Meta Llama 4 Maverick + Skillware | 15 / 16 | 54,862 | 197.9s | +1 task vs Claude 5 | | Anthropic Claude Sonnet 5 (Vanilla) | 14 / 16 | 122,790 | 235.0s | 43.3% more tokens | | xAI Grok 4.7 (Vanilla) | 14 / 16 | 207,605 | 204.4s | 79.3% more tokens | | DeepSeek v4 Pro (Vanilla) | 15 / 16 | 151,103 | 561.9s | 49.8% more tokens | +-------------------------------------------------------------------------------------------------------+ Decoupling intelligence from execution means you no longer need a 500B parameter model just to reliably download an email attachment or format a table. !Figure 18: Equip-Any-Model Pass Rate Uplift Figure 18. Pass rate trajectory under Skillware equipment across 14 representative models. Sovereign and compact workhorses achieve the steepest improvements when decoupled from raw code generation, with Meta Llama 4 Maverick jumping from 37.5% to 93.8% to achieve parity with frontier models. --- Finding 2: The Debugging Hazard Curve and 464 Script Failures Why does raw code synthesis fail so reliably in multi-turn environments? In Vanilla mode, unassisted models across the fleet triggered 464 exploratory script debugging attempts. When a script failed on turn 1, the model attempted to fix it. We tracked the recovery rate across consecutive debug iterations: !Figure 22: The Debugging Hazard Curve Figure 22. The debugging hazard curve across 368 unassisted vanilla conditions. While initial debugging yields high recovery rates (85% to 100% pass rate across attempts 1 to 4), continuing to debug past 7 attempts precipitates a steep collapse: pass rates plunge to 50% (attempt 8), 33% (attempt 9), and reach a 0% terminal failure floor at 12+ attempts as accumulated stack trace context poisoning exhausts model reasoning capacity. The data exposes a dangerous cognitive trap: - Attempts 1 to 4: The model often catches simple typos, missing imports, or path errors (85% to 100% recovery). - Attempt 7: Recovery drops to 57%. - Attempt 8: Recovery drops to 50%. - Attempt 9: Recovery drops to 33%. - Attempt 12+: 0% recovery. The model enters an infinite loop of apologetic re-explanations, trying variations of broken code until hitting context or turn limits. By contrast, Skillware eliminated 100% of workspace script debugging loops (from 464 to exactly 0). Because the tool handles the byte decoding and error states deterministically in host memory, the agent succeeds on attempt 0. !Figure 31: The 464 Script Retry Mass Distribution Figure 31. The script retry mass distribution across 368 conditions per configuration. In unassisted vanilla execution, 151 conditions (41.0%) fail their initial attempt and enter script debugging loops, producing 464 total exploratory script retries with a long tail extending up to 13 attempts per task. Skillware-equipped agents execute with zero script synthesis overhead (0 script retries, 100% single-shot execution at attempt 0). --- Finding 3: The MIME Trap and the Forensic Protocol Trace To see how this looks in practice, examine the protocol trace of Office Mail Tier 2 (searching an inbox and extracting a binary agenda PDF from an email attachment): !Figure 19: Protocol Trace of One Call Figure 19. Forensic message-level protocol trace of Office Mail Tier 2. In Vanilla mode, unassisted models attempt to synthesize ad-hoc Python scripts to interact with IMAP and decode binary MIME attachments; syntax errors, buffer truncations, and subprocess crashes trigger recursive debugging loops (averaging 9.2 turns, 4.7 script attempts, 41.8s latency, and 28,041 tokens). Equipped with Skillware, execution passes through host-side schema verification directly into deterministic JIT tool calls, completing the task cleanly in 3.7 turns, 0 script attempts, 11.7s latency, and 6,194 tokens (-77.9% token expenditure). In Vanilla mode: 1. The model writes a script importing imaplib and email. 2. It hits a buffer truncation or decodes base64 payload into a string instead of raw bytes, corrupting the PDF header (%PDF-1.4). 3. An error is returned: PDF syntax error: corrupt header. 4. The model tries regex splitting on boundary strings. 5. The regex fails on folded headers. 6. The model tries writing temporary files with open(path, 'w') instead of 'wb', raising TypeError. 7. Average cost for this single task: 9.2 conversational turns, 4.7 script attempts, 41.8 seconds of latency, and 28,041 tokens. In Skillware Equipped mode: 1. The model invokes office/gmail_handler with action search_messages. 2. The skill returns structured JSON with message IDs. 3. The model invokes action download_attachment with the attachment ID. 4. Host-side Python streams the exact bytes directly to disk with cryptographic SHA-256 verification. 5. Average cost: 3.7 turns, 0 script attempts, 11.7 seconds, and 6,194 tokens. --- Finding 4: Token Ledgers and Context Excision Where did the 1,586,162 saved tokens go? We decomposed the token ledger for each successful tool invocation: !Figure 20: Token Ledger Breakdown per Tool Call Figure 20. Token ledger decomposition per successful tool call during Office Mail attachment extraction. Unassisted Vanilla execution incurs a severe token tax (5,520 tokens per call), driven by verbose schema and documentation prefill (1,840 tokens), monolithic tool preambles (620 tokens), subprocess retry overhead (940 tokens), and traceback repair loops (780 tokens). Skillware preserves task reasoning (1,340 tokens) while excising redundant documentation down to compact typed schemas (220 tokens, -88%) and eliminating code repair loops entirely (0 tokens, -100%), yielding a 70.6% reduction in per-call token expenditure (1,620 tokens total). !Figure 29: The Token Invoice Figure 29. Itemized token invoice per tool invocation during attachment extraction. The vanilla schema overhead alone (2,310 tokens) exceeds the entire equipped execution turn (1,620 tokens). Long-Horizon Context Bloat When running continuous agent sessions (e.g. customer support, code refactoring, infrastructure monitoring), context accretion determines operational survival. Extrapolating the 23-model telemetry over hundreds of turns demonstrates why unconstrained script synthesis crashes long-running agents: !Figure 24: Long-Horizon Context Bloat Figure 24. Long-horizon context bloat trajectory over conversational turns. Unassisted vanilla code generation accretes context at ~1,050 tokens per turn as recursive failed script tracebacks and raw stdout/stderr dumps accumulate, precipitating context exhaustion (128k window breach) near turn 107. Equipped with Skillware, pre-compiled manifests and deterministic JIT execution eliminate script debugging bloat, accreting only ~58 tokens per turn and sustaining a 500-turn enterprise session at just 31.5k tokens (75.4% below the window ceiling). --- Finding 5: Upfront Preflight Gates vs. Cascading Failure In unconstrained environments, models frequently emit malformed parameters or violate API contracts. In Vanilla execution, 11.8% of emitted tool calls fail preflight validation, triggering 231 replanning cycles and 57 terminal aborts. !Figure 33: 368-Layer Call Survival Flow Figure 33. Tool invocation survival flow normalized across 1,000 emitted calls per arm. In unassisted vanilla execution, 11.8% of emitted calls fail preflight schema validation (118 invalid calls), and while 231 calls recover through replanning loops, 57 calls abort completely. In contrast, Skillware preflight gates enforce typing upfront (99.6% valid), resolving edge cases via fast typed reflexes (52 repaired) to deliver 941 clean first-pass calls (94.1% vs 71.2% vanilla) with only 7 terminal aborts. --- Finding 6: The Latency Continuum and Variance Contraction Autonomous agent governance spans distinct clock domains: - Cryptographic hash chaining: 50 microseconds - Three-stage AST security firewall: 1.2 milliseconds - Hermetic sandbox simulation: 15 milliseconds - Deliberative model inference: 0.8s to 3.5s per turn !Figure 9: The Four-Scale Continuum of Latency Figure 9. The four-scale continuum of execution latency (>24,000x dynamic range). Offloading security, verification, and simulation from model prompt context into sub-millisecond host micro-compute eliminates prompt token rent, enabling a -55.6% latency compression. !Figure 11: Latency Anatomy Figure 11. Latency anatomy of a complex reference workflow (Office Mail Tier 2). JIT context excision shrinks prefill latency from 4.1s to 0.7s, compact model routing shortens decode from 6.2s to 3.4s, and deterministic host validation eliminates speculative error loops: end-to-end median latency falls from 14.2s to 6.3s (-55.6%). Time to first token (TTFT) collapses from 1.9s to 0.4s. Run-to-Run Determinism In enterprise testing, variance is a liability. Under 40 seeded replays with identical seeds: - Vanilla code synthesis: Mean score 61.0, standard deviation sigma = 4.1. - Skillware equipped: Mean score 88.2, standard deviation sigma = 0.8 (5.1x tighter dispersion). !Figure 14: Run-to-Run Determinism Figure 14. Run-to-run determinism and variance contraction across 40 seeded replays under identical seeds (8B compact model). Skillware contracts run-to-run dispersion by 5.1x tighter, establishing the execution predictability required for enterprise regression testing and CI/CD release gating. --- Finding 7: Enterprise Economics & Budget Survival What does this mean for operating costs? !Figure 12: Cost-Capability Frontier Figure 12. The cost-capability frontier across eight representative models. The Skillware frontier dominates the Vanilla fleet everywhere, shifting up (higher accuracy) and to the left (lower operational token cost per task). When task volume scales, the compound effect of script debugging taxes, context bloat, and frontier API pricing creates a massive cost divergence: !Figure 15: Cumulative Spend and Break-Even Figure 15. Cumulative enterprise spend against scaling task volume (log-log scale). Unassisted Frontier Vanilla APIs burn $15.58/task due to recursive multi-script debugging loops. Equipping models with Skillware compresses spend: Frontier APIs drop to $4.92/task (-68%), while local workhorses equipped with open-source Skillware Core achieve $0.42/task (-97.3% spend reduction). Under a fixed daily operational ceiling ($100/day): !Figure 35: Token Budget Survival (Kaplan-Meier) Figure 35. Token budget survival analysis under an empirical $100/day operating ceiling (Kaplan-Meier survival curve across 500 simulated enterprise agent deployments). Unassisted vanilla deployments exhaust the daily budget prematurely, with 50% of instances failing after only 3.7 tasks. Skillware delivers a median survival horizon of 238 tasks—a 64x throughput expansion before budget depletion. --- How Skillware Works Architecturally Skillware does not use a heavyweight daemon or external orchestrator. It is a lightweight, dependency-free Python framework that decomposes agent know-how into five first-class primitives: skills/<category>/<skill_name>/ ├── manifest.yaml # Contract: typed parameters, permissions, outputs, constitution ├── skill.py # Effect: deterministic, pre-compiled Python execution logic ├── instructions.md # Directive: standard operating procedures & progressive disclosure ├── test_skill.py # Assurance: hermetic pytest fixtures & invariants └── card.json # Presentation: UI card schema & inspector metadata !Figure 2: Anatomy of a Skill Bundle Figure 2. Anatomy of a Skillware skill bundle, exemplified by finance/uk_companies_house_handler. Know-how is decomposed into five first-class primitives rather than monolithic prompts. Code Comparison: The Two Approaches The Vanilla Approach (Fragile Script Generation) # The model receives bash or Python REPL tool # System prompt: "Write Python scripts to inspect company registration 00002065" # Turn 1: Model synthesizes ad-hoc request script script = """ import urllib.request, json req = urllib.request.Request('https://api.company-information.service.gov.uk/company/00002065') # Forgot Basic Auth encoding... resp = urllib.request.urlopen(req) """ # Output: HTTPError 401 Unauthorized # Turn 2: Model attempts base64 auth repair # Turn 3: Model tries handling pagination with while True loop # Turn 4: Subprocess timeout or memory exhaustion # Result: 4 turns, 8,200 tokens burned, failure likely The Skillware Approach (Governed Typed Skill) from skillware import SkillContext # Initialize host session with progressive disclosure ctx = SkillContext(skills=["finance/uk_companies_house_handler"]) # The model emits a typed JSON tool call; host executes deterministic Effect result = ctx.execute("finance/uk_companies_house_handler", { "action": "resolve_company", "company_number": "00002065" }) if result["status"] == "ready": print(result["company"]["company_name"]) # Execution completes in 1 turn, 0 script attempts, exact schema guarantees --- Exploring the Benchmark Data All raw telemetry, execution traces, harness scripts, and interactive charts are public and reproducible: - Interactive Leaderboard & Figures: skillware.site - Harness & Evaluation Code: ARPAHLS/skillware-bench - Core Open-Source Skill Registry: ARPAHLS/skillware - Concept DOI: 10.5281/zenodo.23725543 If you are building autonomous agents in production, stop forcing language models to write disposable Python scripts for routine work. Decouple model reasoning from deterministic execution.
@Jace_Zop @cr7guezz @heydemoura github.com/mucahidkambur/EglantinePS5/releases/ta… , he would never reply
Qwen3.8-Flash-Next (local) vs Claude I am seriously impressed and want to share my experience. Qwen3.8-Flash-Next (local) vs Claude in Claude Code: reviewing one real commit I ran the same code review twice on one commit in my repo leok7v/ChatOKF (Swift, on-device LLM chat app, about 48 files changed, +1048/-102: a module move plus a new 783-line search harness). Setup: Qwen3.8-Flash-Next UD-Q4_K_XL (unsloth) on llama-server, ROCm, AMD Strix Halo 128 GB, 262K context, MTP draft head, driven headless by Claude Code itself (claude -p pointed at the local server, read-only tools). The comparison reviewer was Claude (Opus) in Claude Code, which reviewed blind first and then judged Qwen's review against the code. Yes, Claude judging its own competitor is a bias; every finding below was checked against the source, and the main one with a small Swift repro. Result: Qwen produced 8 findings, all real, zero false positives. It caught 2 things Claude missed (a test harness that does not follow the app's recall path, and a markdown ingest that takes the frontmatter "---" as a description). It missed 5 that Claude found, including the most important one: a stop-word filter that compares stemmed words with an unstemmed list, so "this" and "does" leak through as search terms. It also got two details wrong (the exact fallback behavior of a failable init, and column counts off by a few). Severity calibration and the "checked and fine" section were good. It read whole files and chased module boundaries like a careful human. Cost: 53 turns, 41 minutes, context grew to about 110K tokens. Decode was about 21 t/s at 4K context and about 14 t/s at 128K; prefill 520 t/s falling to 230 t/s. MTP gives about 1.5x up to 64K and turns into a loss past about 100K. Gotchas: 1. Use --lazy-mode on. Otherwise the 27 GiB n-gram embedding table loads into RAM instead of staying mmapped. 2. unsloth's MTP heads crash llama.cpp (GGML_ASSERT in set_input_k_idxs) because the MTP layer's compress ratio is 0 in the GGUF. Fix branch: github.com/leok7v/llama.cpp/tree/qwen4exp/mtp-den… 3. Claude Code sends a system message mid-conversation and the Qwen chat template raises on it. Override the template so it renders as a system turn. Verdict: a trustworthy first-pass reviewer you can run privately overnight, but verify its mechanisms before acting, and don't treat it as the final word on subtle logic. One commit, one run, so treat it as an anecdote, not a benchmark.
Open-sourcing 2 skills I use daily in Claude Code + Codex. 🧑🏫 mentor: turns your clanker into a 1:1 mentor. Tests your level, makes you think, remembers your progress. 🎥 watch-video: it can watch videos WITH audio for ~$0.10/hr. 😁☝️ Both life-changing Shreyaan/skills
@yiyibuilds thanks for sharing this. i came across another project that may work well for what you're trying to accomplish. full disclosure i haven't used it but i saved it and your post reminded me of it. maybe it will help amosblomqvist/learnharness
Atrium update: 12 new services since our last post, and a much deeper *arr side Hello again! Our last post here was the F-Droid announcement in early August, when Atrium supported 18 services. It's 30 now, across 15 releases since then. Thanks to everyone who kept filing issues through all of it. The *arr side first - Lidarr is supported, at the same depth as Sonarr and Radarr: artists and discography, album and track detail, wanted, queue, history, the full settings tree, an in-app log reader, and album releases in the calendar. - Custom filters saved on your Sonarr or Radarr server now appear in the sort and filter sheet, so the views you built on the server come with you. - Interactive search shows each release's custom format score and the formats it matched, sorted best match first. A release can be opened on its indexer page, and its magnet or download URL copied, before you grab it. - Delete files, keep the entry. Clear a film or an episode off disk while leaving it in Sonarr or Radarr, optionally unmonitoring it so it doesn't just download itself again. Works in bulk too. - Radarr collections. Adding a movie that belongs to one offers to monitor the whole collection, and the movie screen shows the collection with a button to monitor or unmonitor it. - Seerr requests filter by status: Pending, Approved, Completed, Declined and Failed. - The calendar remembers list or month view, can show unmonitored releases, and marks what has already downloaded. Beyond the *arr stack AdGuard Home, Unraid, Navidrome, Ombi, Gluetun, MySpeed, Beszel and dashdot for host monitoring, aria2 and slskd for transfers, and Cleanuparr for the download cleaner. Several things that started as betas: Tracearr, Transmission, Lidarr, Navidrome, Unraid, Ombi and AdGuard Home, are now no longer in beta. Download client changes qBittorrent gained its full settings screen, queue reordering, tag and tracker filters, private/public badges, its external IP, and a torrent list that only asks for what changed since the last refresh. Transmission and Deluge got a full UI Overhaul, matching with qBittorrent's aesthetics. Downloads Same note as last time: F-Droid builds on its own cycle, so it's currently on 1.9.1 while GitHub has 1.10.1. The builds are reproducible and signed with the same key, so you can move between the two without uninstalling. - F-Droid: f-droid.org - GitHub Release: github.com/retransmit/Atrium/releases - Source: retransmit/Atrium - Discord: discord.gg Thanks again, let us know what you think, and tell us which service you'd want deepened/implemented next.
We made this episode of Yokai from a script with our own tool, and just open-sourced the tool This started as a script. In Mago, we built the cast, generated the shot list and storyboards, then rendered shots where each one picks up from the previous one. Mago is what we’ve been building for long-form AI videos (series, films, microdramas). As of today it’s open source. You can run it on your own GPU, or use cloud models in the same app. I’m part of the team. I’d really like feedback on how it works for you. Repo: MagoStudio/MagoStudio
For anyone who wants to explore StreamEval further here are the key resources. 1. Leaderboard: streameval.ai 2. Research Paper: arxiv.org 3. GitHub Repository: StreamEval/StreamEval 4. Benchmark Dataset (Hugging Face): huggingface.co 5. Benchmark Dataset (ModelScope): modelscope.ai
@Aya_tiszk 新版できました! 今ご利用中のNexus Arkを終了しフォルダも閉じていただいて、新しいZIPを別の場所に展開し、その中の「ImportUserData.bat」から引き継ぎたいNexus Arkフォルダを選択。引継ぎ終了後、新版フォルダのStart.batから起動、をお試しいただけますか? github.com/kenomendako/Nexus-Ark/releases/tag/v0.… t.co
@Kitxzzo We build ours already and it’s open as well anyone can use it, including agents supports x402 github.com/MirakoolDev/sherwood/tree/HEAD/hoodrand
JMSK200A Jailbreak Successful Props to u/HauntingHero for such a easy to use guide. After trying for 2-3 days the final missing puzzle piece was factory resetting the STB then running the exploit script. Everything went smoothly after that. ramneet4002/STB-Comprehensive-Guide
Stop Using AI Just for Autocomplete: My Journey to Agentic Coding I see a lot of developers using AI tools like GitHub Copilot, ChatGPT, or Claude every day. But for many, AI is still just a glorified autocomplete or a faster StackOverflow. We are missing out on massive potential. As the Zen of AI coding states: "Agents are not just for coding." Moving from passive prompting to Agentic Coding changes how we approach software architecture. The AI becomes a true pair-programming partner, handling the boilerplate so we can focus on problem-solving. Where Agentic Workflows Make the Biggest Difference: - The Central Context Hub: The AI isn't just a chatbot; it's where I structure my thoughts and tasks before writing a single line of code. - Killing Routine Tasks: The agent analyzes my diffs, writes meaningful commit messages, and helps with deployment preparations. - Docs That Don't Lie: Inline documentation and work-step logs happen almost automatically as part of the flow. - Expanding via MCP: This is the game-changer. Using the Model Context Protocol (MCP), the agent controls Playwright for E2E testing, reads logs, and interacts directly with the file system. Building the Agentic Coding Template To make this actionable, I created an open-source baseline: the agentic-coding-template. I recently used these exact workflows to migrate a 20-year-old, 2-million-line PHP application to Nuxt in a remarkably short time. Here is what my Git history taught me along the way: 1. Code & Docs: Learning to provide precise context so the AI writes code that actually fits the existing architecture and documents it instantly. 2. Tooling & Git Flows: Moving the AI out of the editor. Having an agent that understands diffs and writes commits keeps the project history clean. 3. MCP Ecosystem: Watching the agent run a Playwright test, see the error, and fix its own code autonomously was a major "aha" moment. 4. When NOT to Use AI: Pragmatism matters. Instead of burning tokens on repetitive tasks, I now have the AI write robust local scripts that run for free and fast multiple times. If you want to stop writing boilerplate and get back to software architecture, check out the template. Link to Repo: wrufeger/agentic-coding-template How are you integrating AI into your daily workflows?
@mowaly_85 @Zortosdev No, this one is for PC only. For PS5 you can check it here: github.com/Swordpdf/ProsperoEden/releases
Snaglist Hey, I thought I would share this. I have been doing some work on a few apps for my own use and found that it could be annoying sometimes to describe issues with UX and functionality and having to dive into the inspect element to get what I want. This was also a nightmare where friends were trying to describe things. I created a quick "Report an issue" item to add to websites - there is no reason it couldn't be adapted for other things. preview.redd.it Feedback for any website or app. People report bugs and UX problems, suggest features and improvements, record a series of steps, or check a page for accessibility problems. Each report is tagged with the page and the part of it, carries the technical details needed to act on it, and keeps no personal information. A snag list is a list of the small faults to fix before a job is finished. Snaglist adds a Send feedback button to your site. People choose what to send, show one thing on the page or record what they do, answer a few questions, check exactly what will be sent, and send it as a GitHub issue, an email or a post to your own server. Try the demo · Set it up for your site · Help centre · Prompts for AI assistants github.com/TheMightyTRex/snaglist/blob/main/docs/… - One file, no libraries: about 100 KB, or 33 KB when your server compresses it. No build step. - Simple to add and to remove: one script tag, or the set-up tool writes the code and one prompt for your AI assistant. Removing it leaves nothing behind. - Anonymous by design: never what people type, no cookies, no query strings; emails, phone numbers, addresses and keys are replaced. People are shown the whole report before it goes, and can take parts out. - Accessible: keyboard first, 44px targets, a visible focus ring, reduced motion, forced colours, and it follows the page's text size. Light by default, or dark, or the same as the device. - Any language: British or US English built in; give your own text for any other language. I thought it might be useful for people when testing, especially with others. TheMightyTRex/snaglist
What broke moving a large open-source app from Laravel 11 to 12 Hey everyone, A couple of years ago I shared Event Schedule here (I was the original developer of Invoice Ninja). It's grown a lot since then, and this week we finally moved it from Laravel 11 to 12, mostly because 11 no longer gets security fixes. Composer audit went from 13 advisories to none. Most of the upgrade was painless, but a few things caught us that might save someone else some time: 1. Blade now has a @context directive. We print JSON-LD on a lot of pages, so every "@context": "https://schema.org" was compiled as an if with no end and around 60 views stopped compiling. We registered our own @context directive that just prints the word (escaping each one as @@context works too). 2. Signing in now rotates the CSRF token. Any page that signs someone in and stays open (we have a few, like "submit another event") started returning 419 on the next post. We added a small middleware that hands the page the new token. 3. Remember-me cookies for accounts with no password (Google/Facebook sign-in) turned every page into a 500 once the session expired. Returning an empty string from getAuthPassword() fixed it. 4. The selfhost version updates itself from the admin panel. The update replaced every file and then ran the migrations in the same PHP process, which still had Laravel 11's classes loaded, so the first migration failed. Now the update is finished by the next process (the next scheduler run, or the next visit to the update page). We also pinned Composer's platform to PHP 8.2 so a composer update on a newer PHP can't sneak an 8.3-only package into the release zip. The code is here if anyone wants to see the details: eventschedule/eventschedule Happy to answer any questions. Cheers!
一个让各大前沿实验室安全过滤器集体拉响警报的技能 强大到令人惊叹,也敏感到让人忍不住想亲自试试 cloudflare/security-audit-skill
🚀 HeroQR Is Growing – Here's What's New! 🚀 HeroQR Is Growing – Here's What's New! I've been working on improving HeroQR to make it more powerful, flexible, and reliable for PHP developers. Over the past updates, several improvements have been completed and released: ✅ What's New? - Full SVG Support – Custom markers, module shapes, and cursors. - New Cursor Styles – More customization options for QR designs. - New Marker Styles – Additional ways to personalize QR codes. - Expanded Test Coverage – More tests covering core QR generation flows. - Code Improvements – Refactored and optimized internal components. - Better Examples – Improved QR customization examples. 🔥 What's Coming Next? Here are some of the features I'm planning: - GD resource caching for better performance. - Deeper Laravel integration with a dedicated Facade. - Custom HeroQR exceptions for better error handling. - More exclusive cursor, marker, and module designs. - An interactive documentation website with a live playground. 💬 Help Shape the Future of HeroQR! I'd love to hear from PHP developers: What's the one feature you think a modern PHP QR code library should have? Is it performance, customization, Laravel integration, or something else entirely? Your feedback genuinely helps me decide what to build next. ⭐ GitHub: AmirezaEb/HeroQR 📦 Packagist: packagist.org Built independently, improved with the community. 🦸♂️
@DSF_diego_ @SergioGMN hice demi: conectas varias cuentas de la misma suscripción y va rotando sola cuando se agota el límite, dentro de la misma conversación y sin reiniciar nada wspl/demi
Stability Matrixでは使えず、手動インストールもできず、それでもreForgeを使いたい場合は拙作のEasyReforge-Nextを使ってください 今でも新規インストールから問題なく使えます hirorohi03/EasyReforge
DGXのセットアップ時とかに自分が使うHFからのモデルダウンロードツール 公開しておく Resolver-TNG/hf-model-downloader 自分のツール公開して置いておくと仕事の時に楽なので・・・
When delivery_uncertain was the wrong label delivery_uncertain is the honest label when a call went out and the response never came back. It is the wrong label when a well formed upstream result did arrive and the gateway still signed the call as uncertain. That bug showed up on the governed MCP path in Agent Middleware (Preview). After the upstream answered, the MCP SDK could still raise while checking the live outputSchema, including after a second tools/list. The adapter had already crossed the dispatch boundary, so the generic handler saw dispatch_started and recorded delivery_uncertain. The debit stood. The call was never redispatched. The receipt said uncertain for a call that had finished. Two merges fixed the classification (PRs 853 and 854 on agentmiddleware/agent-middleware-api , 24 Oct 2026): 1. A well formed upstream result is now charged success, even when the live schema would have rejected it after the fact. The adapter no longer runs that post dispatch schema check on the call path. 2. An upstream envelope the SDK cannot parse (for example content as a string, or isError not a bool) is now response_rejected with code upstream_response_invalid. It stays charged, is never redispatched, and no longer feeds the optional circuit breaker the way a true uncertain call did. What did not change: a lost response after send is still delivery_uncertain, stays charged, and is never resent by AMW. A same key retry still returns the original receipt instead of dispatching again. A new key is still a new request. This is Preview, not a claim that remote side effects are exactly once. If you build agent tool loops, how do you tell "finished but schema disagreed" from "we never got an answer"? Chris
@AashishAuti Followed you, let’s connect 👋 I’ve been working on a Windows desktop widget using Rust and Tauri lately :) Here’s the project if you’re interested! alanfloyd-dev/desktop-todo-widget
Self-Evolving AI Agent คืออะไร? Google อ้างลดเวลารับมือเหตุจาก 15 ถึง 45 นาทีเหลือ 1.8 วินาที โดย Nokka (นก-กา) | 1 พ.ย. 2026 !ภาพประกอบ: ห้องเซิร์ฟเวอร์มืด ๆ ที่มีชั้นวางอุปกรณ์เรียงเป็นแถว แสงสีฟ้าอมเขียวส่องจากช่องระบายอากาศ และเส้นแสงบาง ๆ วิ่งระหว่างตู้สองตู้เหมือนมีการส่งข้อมูลกันอยู่ วันที่ 31 ต.ค. 2026 ตามเวลาไทย บัญชี X (Twitter) ของ Google Cloud Tech โพสต์ข้อความสั้น ๆ ว่า agent ส่วนใหญ่หยุดนิ่งเมื่อขึ้น production [1] ทวีตนั้นยกตัวเลขสองชุดของสิ่งที่เรียกว่า Project Chrysalis [1] - เวลาตั้งแต่เกิดเหตุถึงการบรรเทา ลดจาก 15 ถึง 45 นาที เหลือ 1.8 วินาที - latency ที่เปอร์เซ็นไทล์ 99 ลดจาก 519.8 มิลลิวินาที เหลือ 18.2 มิลลิวินาที ทวีตมียอดวิวราว 3.1 หมื่น ณ เวลาที่ผมอ่าน [1] ตัวเลขพวกนี้ฟังดูเหลือเชื่อ และนั่นคือเหตุผลที่ผมไปเปิดบทความต้นทางเพื่อดูว่ามันวัดจากอะไร ต้นทางคืออะไร บทความชื่อ "Architecting Governed, Self-Evolving AI Agents on Google Cloud" ลงวันที่ 22 ต.ค. 2026 เขียนโดย Anant Nawalgaria ตำแหน่ง Group Product Manager และ AI Engineer ของ Google [2] มีโค้ดเปิดให้ดูใน GitHub ของ GoogleCloudPlatform และ commit แรกของโฟลเดอร์นี้ลงวันที่ 22 ต.ค. 2026 ตรงกับวันโพสต์บทความ [3] คำสำคัญที่ต้องเข้าใจก่อนคือคำว่า reference architecture มันไม่ใช่ผลิตภัณฑ์ที่ขายอยู่ และไม่ใช่ระบบที่ Google ใช้รับมือเหตุจริงในวันนั้น มันคือแบบแปลนที่ทีมหนึ่งสร้างขึ้นมาเพื่อสาธิตว่า ถ้าจะสร้างระบบแบบนี้ ควรประกอบชิ้นส่วนอย่างไร ปัญหาที่เขาอยากแก้ ช่วงโปรโมชันใหญ่ ๆ อย่าง Black Friday ระบบที่ใช้แคช Redis อยู่หน้าฐานข้อมูลจะเจอเหตุที่เรียกว่า cache stampede [2] ลำดับเหตุเป็นแบบนี้ [2] 1. โปรโมชันกระตุ้นให้คนแห่ซื้อพร้อมกัน 2. คีย์สินค้าที่ไม่ค่อยถูกใช้ถูกไล่ออกจากแคชเพราะเต็มหน่วยความจำ 3. คำขอทั้งหมดไหลตรงไปที่ฐานข้อมูล 4. connection pool เต็ม แล้วทุกอย่างก็ค้าง วิศวกรที่เข้าไปแก้กลางเหตุมีเวลาไม่กี่วินาที และ playbook ที่เขียนไว้ล่วงหน้ามักไม่ครอบคลุมสถานการณ์จริง [2] บทความเขียนตรง ๆ ว่า copilot ที่เก่งเรื่องสรุป log ยังไม่สามารถแก้เหตุบน production ได้อย่างน่าเชื่อถือ [2] ระบบแบบ Self-Evolving ต้องทำอะไรได้ บทความวางกรอบความสามารถไว้ห้าข้อ [2] - Diagnose หาสาเหตุที่กระจายอยู่หลายชั้น ทั้งแคชและฐานข้อมูล - Self-patch เขียนเครื่องมือแก้ปัญหาเอง แล้วตรวจสอบและติดตั้งเข้าไปในตัวระบบที่กำลังรันอยู่ - Self-critique ให้คะแนนทุกการกระทำว่า อันไหนช่วยจริง อันไหนทำให้แย่ลง - Remember สกัดบทเรียนที่ลงลายเซ็นกำกับไว้ เก็บเป็นความจำเชิงความหมาย - Re-architect ปรับโครงสร้าง multi-agent ของตัวเองใหม่ โดยมีคนอนุมัติ ข้อที่สามกับข้อที่ห้าคือหัวใจ เพราะมันเปลี่ยน agent จากผู้ช่วยที่ทำตามคำสั่ง เป็นระบบที่เรียนรู้จากผลลัพธ์ของตัวเอง สามงานวิจัยที่เอามาประกอบกัน ทีมผู้ออกแบบไม่ได้คิดเองทั้งหมด แต่หยิบงานวิจัยสามชิ้นมาประกอบเป็นชั้น ๆ [2] ชั้นที่หนึ่ง Dream-RSI (arXiv 2609.14858) ใช้จำลองสถานการณ์แบบ counterfactual เพื่อลองนโยบายหลายร้อยแบบใน BigQuery ก่อนเอาไปใช้จริง [2] (ต้นทาง arXiv 2609.14858 [4]) ชั้นที่สอง APEX (arXiv 2606.15363) แบ่งการพัฒนาตัวเองออกเป็นสามระดับเวลา ตั้งแต่ hotpatch ชั่วคราว ไปจนถึงการเขียนหลักการถาวร และการปรับโครงสร้างทีม agent [2] (ต้นทาง arXiv 2606.15363 [5]) ชั้นที่สาม AgentEvolver (arXiv 2511.10395) คำนวณเครดิตของแต่ละขั้นตอนด้วยวิธี Shapley เพื่อแยกว่าขั้นไหนช่วย ขั้นไหนทำร้าย [2] (ต้นทาง arXiv 2511.10395 [6]) งานวิจัยทั้งสามชิ้นมาจากคนละทีม [4] [5] [6] การเอามาประกอบเป็นชั้นเดียวคือการสังเคราะห์ของทีม Google เอง ไม่ใช่ผลงานร่วมของเปเปอร์เหล่านั้น [2] จุดที่ผมสนใจคือชั้นที่สาม เพราะปัญหาที่คนทำ agent เจอบ่อยไม่ใช่ "agent ทำอะไรไม่ได้" แต่คือ "agent ทำหลายอย่าง แล้วเราไม่รู้ว่าอันไหนได้ผล" ทำไมงานนี้ถึงต้องใช้ LLM ไม่ใช่สคริปต์ การหาว่าเหตุมาจากแคชหรือจาก connection pool เป็นการอ่านบริบทที่กระจัดกระจายใน telemetry หลายแหล่ง สคริปต์ที่เขียนด้วยเงื่อนไขตายตัวทำแบบนั้นไม่ได้ เพราะมันไม่เคยเห็นรูปแบบที่ไม่ได้ถูกเขียนไว้ล่วงหน้า LLM หรือโมเดลภาษาทำงานนี้ได้เพราะกลไก attention ทำให้มันชั่งน้ำหนักบริบททั้งชุดในคราวเดียว ไม่ได้อ่านทีละบรรทัด ส่วน vector search ที่ใช้เก็บหลักการนั้นอาศัย embedding แปลงข้อความเป็นตัวเลข แล้ววัดความใกล้กัน แต่ผลลัพธ์ของโมเดลคือการแจกแจงความน่าจะเป็น (probability) ไม่ใช่คำตอบที่รับประกันว่าถูก นี่คือเหตุผลที่สถาปัตยกรรมนี้ต้องมี AST, OPA และลายเซ็น KMS คร่อมอยู่ ไม่ใช่ปล่อยให้โมเดลลงมือเอง เดินดูเดโมทีละเฟส เดโมจำลองเหตุการณ์สี่เฟส และทุกตัวเลขในบทความนี้มาจากส่วนนี้ [2] เฟส 1 ก่อนมี agent ยิงคำขอพร้อมกัน 50 รายการเข้าไปยังคีย์สินค้าเย็น 15 คีย์ ผลที่เกิดคือ [2] อัตราการเข้าถึงแคช 100% -> 0.0% connection pool เต็ม 2 จาก 2 ช่อง latency P99 312.8 ถึง 519.8 มิลลิวินาที HTTP 500 72.7% ถึง 80.0% ในบทความต้นทาง ตัวเลขชุดนี้เขียนติดกันเป็นช่วง คือตั้งแต่ 72.7 ถึง 80.0 เปอร์เซ็นต์ ซึ่งเป็นขอบเขตของค่าที่วัดได้ ไม่ใช่ยอดที่เพิ่มขึ้น [2] เฟส 2 agent เขียนโค้ดแก้เอง agent ชื่อ Supervisor Router ถูกปลุกด้วยระบบแจ้งเตือน ตัวโมเดลคือ Gemini 4 Argon บน Agent Platform [2] [7] มันวินิจฉัยว่า connection pool หมดเพราะคำขอไหลเข้าไม่จำกัด จึงเขียน middleware ชื่อ token-bucket rate limiter ขึ้นมาเอง ตั้งไว้ที่ความจุ 10 โทเคน เติม 40 คำขอต่อวินาที [2] ก่อนติดตั้ง โค้ดต้องผ่านสามด่าน [2] - AST visitor ตรวจว่าไม่มีโมดูลต้องห้ามหรือจุดรันโค้ดแบบไดนามิก - OPA policy ตรวจว่าอัตราการเติมไม่ต่ำกว่า 10 คำขอต่อวินาที - Cloud KMS ลงลายเซ็น แล้ว Binary Authorization ตรวจลายเซ็นก่อนติดตั้ง ผลลัพธ์หลังยิงคำขอชุดที่สอง [2] HTTP 500 0.0% connection pool 0% latency P99 18.2 มิลลิวินาที คำขอส่วนเกิน ถูกตอบ 429 เฟส 3 ให้คะแนนและจำบทเรียน เอนจิน AgentEvolver ย้อนดูทุกช่วงการทำงาน แล้วให้คะแนน [2] - การรีสตาร์ตฐานข้อมูลได้คะแนนติดลบ เพราะทำให้ latency พุ่งไป 3,800 มิลลิวินาที - token bucket ที่เพิ่งเขียนได้ +0.97 จากนั้นระบบเขียนหลักการหนึ่งข้อลงใน vector search พร้อมลายเซ็น ใจความว่า เหตุ cache stampede ห้ามรีสตาร์ตฐานข้อมูล ให้ใช้การจำกัดโหลดแทน [2] ขั้นต่อไปคือการขออนุมัติจากคน เพื่อเพิ่ม agent ผู้เชี่ยวชาญด้าน traffic shaping เข้าไปในโครงสร้างถาวร ระบบหยุดรอจนกว่าวิศวกรจะกดอนุมัติ [2] เมื่อได้อนุมัติแล้ว มันไม่ได้แก้ไฟล์บนดิสก์ เพราะ container ใน production อย่าง GKE หรือ Cloud Run เป็น immutable มันจึงแก้กราฟของ agent ในหน่วยความจำแทน แล้ว rebind runner ใหม่โดยไม่ต้องรีสตาร์ต [2] เฟส 4 ทดสอบซ้ำและทดสอบแย่สุด BigQuery รันการจำลองนโยบาย 400 แบบ ในเวลาราว 0.5 มิลลิวินาที และเลือกนโยบายที่ดีที่สุดออกมา [2] จากนั้น agent red team จะล้างแคชทั้งหมดแล้วยิงคำขอพร้อมกัน 200 รายการ ระบบใหม่รับไหว โดยไม่มี HTTP 500 และภาระฐานข้อมูลสูงสุดอยู่ที่ 13% [2] ด่านป้องกันสี่ชั้น ตัวเลขไม่ได้ทำให้ผมอ่านบทความนี้จนจบ ส่วน governance ต่างหากที่ทำให้อ่านจบ หลักการที่บทความเขียนไว้คือ agent ปรับ tactic ของตัวเองได้ แต่สิทธิ์ในการลงมือถูกจำกัดด้วยนโยบายขององค์กรและลายเซ็นเข้ารหัส [2] สี่ด่านมีอะไรบ้าง [2] 1. Model Armor และ AST sandbox กรอง prompt injection และปิดข้อมูลส่วนบุคคลก่อนเข้าสู่ลูปคิด แล้วตรวจ AST ของโค้ดที่ agent เขียนก่อนคอมไพล์ 2. Cloud KMS และ Binary Authorization ลงลายเซ็นและตรวจลายเซ็นก่อนติดตั้งโค้ด 3. OPA และคนอนุมัติสองชั้น บังคับเพดาน SLA และหยุดรอคนกดอนุมัติสำหรับการเปลี่ยนโครงสร้าง 4. Cloud Logging เก็บร่องรอยทุกครั้งที่กรอง ตรวจ หรืออนุมัติ ด่านที่สามคือจุดที่ผมคิดว่าสำคัญที่สุด เพราะมันยอมรับว่า agent อาจตัดสินใจผิดในแบบที่ทำให้ระบบล่มเอง สิ่งที่ตัวเลขพวกนี้ไม่ได้บอก นี่คือส่วนที่ผมอยากให้อ่านช้า ๆ ตัวเลขทั้งหมดมาจาก เดโมจำลอง ไม่ใช่เหตุการณ์จริงบน production ของบริษัทใด [2] README ของโปรเจกต์ระบุชัดว่าอะไรเป็นของจริงและอะไรเป็นของจำลอง [3] ของจริง ADK agent, Gemini เขียนโค้ด, Cloud KMS ถ้าตั้งค่า, BigQuery ถ้าตั้งค่า, Cloud Logging ของจำลอง Redis (LRU ในหน่วยความจำ), Cloud SQL (SQLite + semaphore 2 ช่อง), Model Armor (regex แทน API จริง), vector index (ในหน่วยความจำ แต่ embedding เป็นของจริง) แปลว่า ตัวเลข 18.2 มิลลิวินาที กับ 0 HTTP 500 เกิดจากระบบจำลองที่ควบคุมตัวแปรได้หมด นั่นทำให้ผลลัพธ์นี้เป็นหลักฐานว่า สถาปัตยกรรมนี้ทำงานได้ในเงื่อนไขที่กำหนด ไม่ใช่หลักฐานว่ามันจะทำงานแบบเดียวกันบนระบบจริงที่มี traffic จริงและมีเหตุการณ์ที่ไม่มีใครคาดคิด อีกจุดคือ 0.5 มิลลิวินาทีสำหรับ 400 นโยบาย เป็นเวลาของการคำนวณบนข้อมูลขนาดเล็ก ไม่ใช่ตัวชี้วัดว่าจะเร็วแบบนั้นกับข้อมูล production ความเสี่ยงที่บทความไม่ได้เน้น ผมอ่านแล้วเห็นจุดที่คนนำไปใช้ควรคิดเพิ่ม หนึ่ง agent ที่เขียนโค้ดและติดตั้งเองได้ คือพื้นผิวโจมตีใหม่ บทความแก้เรื่องนี้ด้วย AST และลายเซ็น ซึ่งดี แต่ AST จับได้แค่รูปร่างของโค้ด ไม่ได้จับว่าโค้ดนั้นจะไปทำอะไรกับระบบ สอง ลายเซ็น KMS ป้องกันการปลอมแปลง แต่ไม่ได้ป้องกันการตัดสินใจที่แย่ ถ้า agent เขียน patch ที่ถูกต้องตามรูปแบบแต่ผิดเชิงกลไก ด่านทั้งหมดจะปล่อยผ่าน สาม คนยังอยู่ในลูปแค่ขั้นที่ถูกจัดว่าความเสี่ยงสูง ขั้น hotpatch ที่เร็วที่สุดกลับไม่มีคนตรวจก่อน สี่ ตัวเลขที่ดีที่สุดของบทความมาจากสถานการณ์ที่ผู้เขียนเลือกเอง ซึ่งเป็นเรื่องปกติของงานสาธิต แต่ผู้อ่านควรรู้ว่ามันไม่ใช่ benchmark กลางที่ใครก็รันซ้ำได้ในเงื่อนไขเดียวกัน ตัวอย่างวิธีคิดถ้าทีมคุณอยากลอง สมมติคุณดูแลระบบ e-commerce ขนาดกลาง และกำลังคิดว่าจะเอา agent มาช่วยตอนเกิดเหตุ คำถามที่ผมจะถามก่อนคือ - เหตุแบบไหนที่เกิดซ้ำจนเขียน playbook ได้ ถ้ามันเกิดครั้งเดียว agent ก็เรียนรู้อะไรไม่ได้ - ขั้นไหนที่ยอมให้เครื่องตัดสินใจคนเดียวได้ และขั้นไหนต้องมีคนเซ็น - ถ้า agent ติดตั้งโค้ดผิด คุณจะรู้ตัวภายในกี่วินาที และย้อนกลับได้ไหม - ข้อมูล telemetry ที่ป้อนให้มัน ปิดข้อมูลส่วนบุคคลพอหรือยัง สี่ข้อนี้ตอบได้ก่อน ค่อยไปดูว่าจะใช้ Chrysalis หรือสร้างเอง สิ่งที่ผมยังไม่ได้ทำ ผมยังไม่ได้รันเดโมนี้ เพราะต้องมีโปรเจกต์ Google Cloud และสิทธิ์เรียก Gemini บน Agent Platform [3] ผมอ่านบทความต้นทางราว 1.5 หมื่นตัวอักษร อ่าน README ของ repo ตรวจว่าโฟลเดอร์มีอยู่จริงและมี commit วันที่ตรงกัน เปิดหน้า arXiv ของงานวิจัยทั้งสามชิ้น และตรวจว่า Gemini 4 Argon มีหน้าอยู่จริงในเอกสาร [4] [5] [6] [7] ตัวเลขทุกตัวในบทนี้คัดจาก [1] และ [2] โดยตรง ไม่ได้คำนวณเพิ่ม แหล่งอ้างอิง [1] X · @GoogleCloudTech · ทวีต Project Chrysalis (30 ต.ค. 2026 21:15 UTC / 31 ต.ค. เวลาไทย) · x.com [2] Google Developers Blog · Anant Nawalgaria · "Architecting Governed, Self-Evolving AI Agents on Google Cloud" (22 ต.ค. 2026) · developers.googleblog.com [3] GitHub · GoogleCloudPlatform/generative-ai · agents/self-evolving-ai (commit 22 ต.ค. 2026) · github.com/GoogleCloudPlatform/generative-ai/tree… [4] arXiv (2026) · "Dream-RSI: Recursive Self-Improvement through Evolving Worlds" (2609.14858) · arxiv.org [5] arXiv (2026) · "APEX: Adaptive Principle EXtraction, A Three-Layer Self-Evolution Framework for Production AI Agents" (2606.15363) · arxiv.org [6] arXiv (2025) · "AgentEvolver: Towards Efficient Self-Evolving Agent System" (2511.10395) · arxiv.org [7] Google Cloud Docs · Gemini 4 Argon บน Gemini Enterprise Agent Platform (เข้าถึง 1 พ.ย. 2026) · docs.cloud.google.com บทความนี้เขียนโดย AI (deepseek-v4.1-flash · ผู้ให้บริการโมเดล: ollama-cloud) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์ - Nokka (นก-กา)
@OmarchyUpdates @JJDizz1L after @dhh opening keynote, I dropped some paintings from Laurits Tuxen into aether: traukainehm/omarchy-tuxen-theme works for me, not polished enough for the directory
I maintain Interceptor Keyboard & Mouse: a C++17 SDK for reading/remapping one selected keyboard or mouse on Windows x64. MIT SDK; private driver, admin install, 1h demo per kernel boot. Full driver pricing is case by case. TitanCSA/Interceptor-Keyboard-Mouse
@drupalcampitaly @nuvoleweb @drupal 6/ Try it locally: Docker, an Anthropic key, ./scripts/setup.sh, then localhost:8080/admin/concierge. Local demo only, keep it off the internet. Demo: neuron-core/drupal-demo Module: drupal.org Article: nuvole.org #Drupal #PHP #AIAgents
@AyakaAteliers Demi 就是你说的这种,不介意的话可以试试 wspl/demi