<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 未來星織</title>
    <description>The latest articles on DEV Community by 未來星織 (@dax233).</description>
    <link>https://dev.to/dax233</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4240439%2F73e440c7-4e18-4d1f-9e39-12a7f2ffa74f.png</url>
      <title>DEV Community: 未來星織</title>
      <link>https://dev.to/dax233</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dax233"/>
    <language>en</language>
    <item>
      <title>Debugging AI Toolchains: Install, Connect, Model, Workflow</title>
      <dc:creator>未來星織</dc:creator>
      <pubDate>Thu, 12 Nov 2026 07:19:32 +0000</pubDate>
      <link>https://dev.to/dax233/debugging-ai-toolchains-install-connect-model-workflow-2379</link>
      <guid>https://dev.to/dax233/debugging-ai-toolchains-install-connect-model-workflow-2379</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A layered checklist for when an AI tool will not install, will not connect, loads the model and then dies halfway. Written for the person who has already tried the obvious things.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most failures in an AI toolchain fall into one of four layers: &lt;strong&gt;install and permissions, network and proxy, model and credentials, workflow orchestration&lt;/strong&gt;. Debugging in layer order is several times faster than poking at the symptom, because a failure in layer N makes every error message from layer N+1 noise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 1 — install
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Will not install&lt;/strong&gt;: check OS version and CPU architecture (x64 vs arm64) before anything else. A wrong-architecture package produces confusing runtime errors, not install errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Installer completes, app will not start&lt;/strong&gt;: read logs in order — application log, then system event log, then the launcher output. The launcher usually just echoes the application log.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two common silent traps&lt;/strong&gt;: the app installed into the user profile instead of the system location, and antivirus quietly quarantined a binary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exit criterion for this layer&lt;/strong&gt;: one minimal command works (&lt;code&gt;--version&lt;/code&gt; or a health check) before you plug in any real configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Layer 2 — connect
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Separate DNS, TLS, proxy, and server 4xx/5xx&lt;/strong&gt; before touching config. &lt;code&gt;curl -v&lt;/code&gt; gives you the handshake result in one line; guessing from inside a client wastes the afternoon.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proxy setups&lt;/strong&gt;: check that the routing rules actually cover the target hostname, that the port is not already in use, and that &lt;code&gt;NO_PROXY&lt;/code&gt; is not accidentally swallowing it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP specifically&lt;/strong&gt;: test the server on its own before attaching any client. stdio and HTTP transports fail in completely different ways, and mixing them into one debugging session hides the real cause.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A detail worth knowing&lt;/strong&gt;: a client that times out can be healthy — the server may be waiting on stdin that never arrives because the client already exited. Check process lifetime, not just the error string.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Layer 3 — model
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local model fails to load&lt;/strong&gt;: VRAM, quantization format, driver version. Try the smallest quantized build first; if that loads, the problem is capacity, not code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API errors&lt;/strong&gt;: authentication (key, quota, region), routing (&lt;code&gt;base_url&lt;/code&gt; typo, wrong API version), timeouts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy to miss&lt;/strong&gt;: the same key can expose different model sets per region, and the error is usually a plain 404 that reads like "model does not exist" when the model exists somewhere else.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Layer 4 — workflow
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Runs halfway then dies&lt;/strong&gt;: add logging first, then make steps resumable. Idempotent small steps beat a clever retry wrapper.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do not refactor while reproducing&lt;/strong&gt;. A bug you cannot reproduce is not a bug you can fix, and "while I am here" changes destroy your ability to tell which edit mattered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One variable per change&lt;/strong&gt;. If you change three things and it starts working, you learned nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I do not take on
&lt;/h2&gt;

&lt;p&gt;Account trading or sharing, cracking, bypassing software restrictions, scraping private data. No exceptions, no clever workarounds.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one-paragraph version
&lt;/h2&gt;

&lt;p&gt;Installs, then connects, then loads the model, then survives interruption. Get all four green before optimizing anything — most "AI is unstable" reports are a layer-3 problem wearing a layer-4 costume.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I do small, fixed-scope debugging and automation jobs — AI tooling, Python, file formats. First diagnosis is free, async and text-only, no calls. Details: &lt;a href="https://dax233.github.io/hire/" rel="noopener noreferrer"&gt;how I work&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>debugging</category>
      <category>productivity</category>
    </item>
    <item>
      <title>拆一个二进制格式：从 pxls.bytes 还原可编辑工程文件</title>
      <dc:creator>未來星織</dc:creator>
      <pubDate>Thu, 12 Nov 2026 07:15:16 +0000</pubDate>
      <link>https://dev.to/dax233/chai-ge-er-jin-zhi-ge-shi-cong-pxlsbytes-huan-yuan-ke-bian-ji-gong-cheng-wen-jian-106o</link>
      <guid>https://dev.to/dax233/chai-ge-er-jin-zhi-ge-shi-cong-pxlsbytes-huan-yuan-ke-bian-ji-gong-cheng-wen-jian-106o</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;一次小型的逆向记录：不重写整个格式，只找最小差异。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  背景
&lt;/h2&gt;

&lt;p&gt;一款同人游戏的像素资产有两种形态：游戏导出的 &lt;code&gt;pxls.bytes&lt;/code&gt;（图集 + UV），和 PixelLiner 的工程文件 &lt;code&gt;.pxl&lt;/code&gt;。想改里面的像素小人，但常见工具只能拆出图集和 PNG，还原不回可编辑工程。&lt;/p&gt;

&lt;h2&gt;
  
  
  观察
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;两种文件都以 &lt;code&gt;%PACK_SECTION%&lt;/code&gt; 为核心，差别在于：导出格式的图集记录带一个「贴图外置」标志位&lt;/li&gt;
&lt;li&gt;把标志位清掉、PNG 内嵌回去，文件就变成 PixelLiner 能直接打开的形态&lt;/li&gt;
&lt;li&gt;打开后它会自动把 PXLS 转成可编辑角色，另存就得到标准工程文件&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;结论：&lt;strong&gt;不需要重新实现整个工程格式，只需要处理这一个差异点。&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  实现
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;纯标准库解析，不依赖 Pillow&lt;/li&gt;
&lt;li&gt;从 PACK 段读每个图块的 UV，从纹理图集裁出单张 PNG&lt;/li&gt;
&lt;li&gt;重建 pxl：改标志位、内嵌 PNG、补齐段表&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--verify&lt;/code&gt; 做结构自校验，避免「看起来能打开」但结构损坏&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;只做容器级改写：解析 section 表，只替换 &lt;code&gt;%PACK_SECTION%&lt;/code&gt; 的内容，其余段（&lt;code&gt;%POSE_SECTION%&lt;/code&gt;、&lt;code&gt;%PTCL_SECTION%&lt;/code&gt;、&lt;code&gt;%IMGV_SECTION%&lt;/code&gt; 等）原样复制。这样风险最小，也不会因为猜错段结构把文件写坏。&lt;/p&gt;

&lt;h2&gt;
  
  
  为什么不直接重写格式
&lt;/h2&gt;

&lt;p&gt;因为成本不在写代码，在于&lt;strong&gt;确认自己没理解错&lt;/strong&gt;。二进制格式里最贵的错误是「读出来像对、写回去全歪」。只改一个标志位，可验证面积小，出错也能定位。&lt;/p&gt;

&lt;h2&gt;
  
  
  教训
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;先找最小差异，别一上来重写整个格式&lt;/li&gt;
&lt;li&gt;用真实样本 + 失败样本对照，比读文档快&lt;/li&gt;
&lt;li&gt;自校验很便宜，能省掉大量「看起来成功」的返工&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;工具在 &lt;a href="https://github.com/Dax233/AICPxlsUnpacker" rel="noopener noreferrer"&gt;github.com/Dax233/AICPxlsUnpacker&lt;/a&gt;。&lt;/p&gt;

</description>
      <category>reverseengineering</category>
      <category>python</category>
      <category>pixelart</category>
      <category>fileformats</category>
    </item>
    <item>
      <title>AI 工具链排错：装不上、连不上、跑一半断掉</title>
      <dc:creator>未來星織</dc:creator>
      <pubDate>Thu, 12 Nov 2026 07:14:10 +0000</pubDate>
      <link>https://dev.to/dax233/ai-gong-ju-lian-pai-cuo-zhuang-bu-shang-lian-bu-shang-pao-ban-duan-diao-50g6</link>
      <guid>https://dev.to/dax233/ai-gong-ju-lian-pai-cuo-zhuang-bu-shang-lian-bu-shang-pao-ban-duan-diao-50g6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;一个独立开发者的排查顺序清单。写给正在被 AI 工具折腾的人，也写给未来的自己。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  先说结论
&lt;/h2&gt;

&lt;p&gt;AI 工具链的故障，九成落在四个位置：&lt;strong&gt;安装与权限、网络与代理、模型与凭据、工作流编排&lt;/strong&gt;。按顺序查，比乱试快得多。&lt;/p&gt;

&lt;p&gt;顺序很重要：上一层没通，下一层的报错基本都是噪音。所以不要跳步，也不要一上来就怀疑代码。&lt;/p&gt;

&lt;h2&gt;
  
  
  一、安装阶段
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;装不上：先确认系统版本与架构（x64 / arm64）、安装包是否完整（SHA256）、是否需要管理员权限&lt;/li&gt;
&lt;li&gt;装完打不开：日志优先级是 应用日志 &amp;gt; 系统事件 &amp;gt; 启动器输出&lt;/li&gt;
&lt;li&gt;两个常见坑：装进了用户目录而不是 Program Files；杀软静默拦截&lt;/li&gt;
&lt;li&gt;判断标准：能不能用一个最小命令跑起来（&lt;code&gt;--version&lt;/code&gt;），先别急着接业务&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  二、连接阶段
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;连不上：先分清是 DNS、TLS、代理还是服务端 4xx/5xx；一层一层往下排除&lt;/li&gt;
&lt;li&gt;代理环境：检查分流规则是否覆盖目标域名、端口是否被占用、&lt;code&gt;NO_PROXY&lt;/code&gt; 有没有写漏&lt;/li&gt;
&lt;li&gt;MCP：先单独测 server 能否启动，再接客户端；stdio 和 HTTP 的失败表现完全不同&lt;/li&gt;
&lt;li&gt;阶段性验证：&lt;code&gt;curl -v&lt;/code&gt; 拿到 TLS 握手结果，比在客户端里猜有效率得多&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  三、模型阶段
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;本地模型加载失败：显存不足、量化格式不匹配、驱动版本太旧&lt;/li&gt;
&lt;li&gt;API 报错：鉴权（key / 额度 / 区域）、路由（&lt;code&gt;base_url&lt;/code&gt; 写错）、超时&lt;/li&gt;
&lt;li&gt;一个容易忽略的点：同一个 key 在不同区域的可用模型不一样，报错信息往往只说 404&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  四、工作流阶段
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;跑一半断：先加日志，再做断点重跑；把长流程拆成幂等的小步骤&lt;/li&gt;
&lt;li&gt;别一上来就重构，先复现；复现不了的问题不要「顺手优化」&lt;/li&gt;
&lt;li&gt;记录改动：一次只改一个变量，否则下次出问题你分不清是谁的锅&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  什么情况我不接
&lt;/h2&gt;

&lt;p&gt;账号买卖或共享、破解、绕过软件限制、爬隐私数据。这几条没有例外。&lt;/p&gt;

&lt;h2&gt;
  
  
  一句话版本
&lt;/h2&gt;

&lt;p&gt;装得上 → 连得上 → 模型跑得动 → 流程断得住。四步全过，再谈优化。&lt;/p&gt;

</description>
      <category>ai</category>
      <category>troubleshooting</category>
      <category>mcp</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
