由于现在硬盘价格居高不下,淘宝上一块全新的4T希捷甚至能卖到一千块钱。 所以使用网盘作为nas的补充存储,成为了一项不错的选择,但是由于常规挂载形式(cd2、系统自带的挂载)都存在有频繁扫盘风控的问题,所以目前最好的方式,应该就是使用将网盘进行挂载生成strm文件了。如下图 通过这种形式挂载之后,使用支持strm的影视软件就可以直接进行识别播放了(例如飞牛自带的影视、还有EMBY,都是支持strm的)。 接下来我将以fnOS为例,分享一下我使用下来感觉比较方便的容器生成工具。 首先是这个叫做SmartStrm的工具,如果你用的nas商店里有套件的话可以直接进行下载 没有套件的话,也可以考虑在这里进行配置 SmartStrm的github地址 安装好之后首先需要进行配置的就是添加存储 可以看到支持的网盘还是比较多的,个人比较推荐115,目前官网有价格2年150块会员,还是不错的(但是这个优惠价格是不包含空间的,需要用户想办法扩容,可以考虑买扩容卡或者直接原石号起步) 配置好之后我们就可以看到这里出现了我们的网盘账户 随后配置好了就可以再点击任务管理,进行创建任务了,点击添加,并且按需配置之后,设置一个恰当的执行时间,就可以开始运行了。 之前我也试过蛮多的strm生成软件,但综合体验下来,感觉还是这个smartstrm使用起来比较好。 既然strm配置好了,那么接下来就是找资源这一块了 假如你使用的是115的话,我个人比较推荐的是这个叫做115闪推的插件,配置和使用起来都比较简单,扫码登录之后,在以后只要涉及到磁力链接或者是ed2k的网页,都可以调用这个插件一键推送了。 2 个帖子 - 2 位参与者 阅读完整话题
抛砖引玉: AI Chat — 多模型智能对话客户端 8 个帖子 - 7 位参与者 阅读完整话题
抛砖引玉,我用Gemini生成一个 角色设定 你是一个资深的知识管理专家、“刻记(KejiMemo)”制卡助手,同时兼具 广博的跨学科知识储备 。你不仅擅长对长篇Word文档进行结构化拆解,还能敏锐地进行思维发散,通过引入关联的文献、历史、热点或案例来丰满知识骨架。 任务目标 请对我后续发送的文档内容进行处理。你的任务分为两步: 核心提取 :将原文转化为便于记忆的闪卡。 发散拓展 :基于原文知识点,主动为你认为“重要但干瘪”的概念补充 历史背景、前沿新闻、经典文献或生动案例 ,帮助我加深理解。 所有内容(包括核心提取与知识拓展)都必须严格根据指定的特殊符号规则,转化为高质量的记忆闪卡素材。 刻记格式刷符号规则(请严格遵守) 批量拆卡(分割卡片) : 规则:将文档按“独立知识点”、“段落”或“题目”拆分。一张卡片只记一个核心点。 符号:不同卡片之间,请严格使用 [请替换为刻记的拆卡符号,如:--- ] 隔开。 标重点(高亮) : 规则:识别段落中的核心定义、关键词、核心结论并标记。 符号:使用 [请替换为刻记的高亮符号,如:==重点内容==] 进行包裹。 批量挖空(填空题) : 规则:针对需要主动回忆的核心内容(时间、人名、核心原理、关键数据),进行挖空。 符号:使用 [请替换为刻记的挖空符号,如:{{挖空内容}}] 进行包裹。 转选项卡(选择题) : 规则:针对易混淆点或对比类知识,设计为“题干+选项”形式,并生成3个合理干扰项。 符号格式要求: [请替换为题干标记] 题干内容 [请替换选项标记,如 A.] 选项1 [请替换选项标记,如 B.] 选项2 [请替换选项标记,如 C.] 选项3 [请替换选项标记,如 D.] 选项4 [请替换答案标记,如 答案:A] 工作流 深度理解 :通读我发送的文档片段,提取核心骨架。 知识发散(关键步) :审视核心点,思考“这个知识是怎么来的?”、“最近有什么相关的新闻?”、“有什么容易混淆的近义词?”,提取出1-2个高质量的拓展知识。 输出排版 :将原文知识和拓展知识交叉混编,严格使用符号打标,直接输出纯文本。 示例 我发送的内容: 第一代计算机采用电子管作为主要元器件,诞生于1946年,代表机型是ENIAC。 你输出的结果: 第一代计算机采用{{电子管}}作为主要元器件,诞生于{{1946年}}。 [拆卡符号] 世界上第一台电子计算机代表机型是==ENIAC==。 [拆卡符号] 【知识拓展:历史背景】 ENIAC 的研发最初是为了在二战期间为美国陆军计算{{火炮弹道表}}。它重达30吨,耗电量极大,每次开机都会导致费城部分地区==灯光变暗==。 [拆卡符号] 【知识拓展:前沿对比】 从电子管到现代芯片,计算能力发生了质的飞跃。如果将 ENIAC 与现代智能手机对比,以下说法正确的是? A. ENIAC 的算力远超现代手机,但体积庞大 B. 现代智能手机的算力是 ENIAC 的数千万倍以上 C. ENIAC 已经具备了现代操作系统的雏形 D. 两者使用的核心基础材料均为硅半导体 答案:B 如果你准备好了,请回复“我已了解刻记拓展制卡规则,请发送您的Word文档内容!我将为您提取核心并进行深度知识关联。” 1 个帖子 - 1 位参与者 阅读完整话题
先放个我的抛砖引玉。看看还有什么卡有用好开滴 3 个帖子 - 2 位参与者 阅读完整话题
抛砖引玉,尽量不说的太复杂,很多一搜其实都有,这只是一个整理 背景: 1 ,OpenAI 会探测浏览器指纹。包括不限于字体,时区,系统语言,因此只全局代理没有用的。被发现指纹和你 IP 不一样,必降智。这就是为何很多人 web 降智,但是 app 不降智的原因。用 https://www.browserscan.net/ 可以自己测试 2 ,OpenAI 对于 IP 纯净度没那么高的要求,主要不能频繁换号和换 IP 。即一个 IP 尽量只与少量账号关联。因此没必要斥巨资买真家宽,但是机场那种万人骑节点肯定也是不行的。用 http://ping0.cc/ 可以简单自测。 解决方法: 1 ,注册 webshare 家宽,8.4 刀一年。 https://www.webshare.io/?referral_code=l8pbcdgt108a Static Residential ,Private ,PROXY NUMBER CUSTOM 选 1 ,Bandwidth 选 250 ,Choose Location of Proxies 选美,Manual Replacementsi 选 20 ,右边 pay year 打开是 8.4 刀 2 ,设置好链式代理。webshare 的 socks5 在大陆不能直连,香港可以。 3 ,指纹浏览器,用 Roxy 免费版足够了。 https://roxybrowser.cn?code=09143UXA 新建窗口后, https://www.browserscan.net/ 测试确保是 100%即可 可以设置 IP 变动,国家地区变动时不打开浏览器,防止你误操作被风控
抛砖引玉,尽量不说的太复杂,很多一搜其实都有,这只是一个整理 背景: 1 ,OpenAI 会探测浏览器指纹。包括不限于字体,时区,系统语言,因此只全局代理没有用的。被发现指纹和你 IP 不一样,必降智。这就是为何很多人 web 降智,但是 app 不降智的原因。用 https://www.browserscan.net/ 可以自己测试 2 ,OpenAI 对于 IP 纯净度没那么高的要求,主要不能频繁换号和换 IP 。即一个 IP 尽量只与少量账号关联。因此没必要斥巨资买真家宽,但是机场那种万人骑节点肯定也是不行的。用 http://ping0.cc/ 可以简单自测。 解决方法: 1 ,注册 webshare 家宽,8.4 刀一年。 https://www.webshare.io/?referral_code=l8pbcdgt108a Static Residential ,Private ,PROXY NUMBER CUSTOM 选 1 ,Bandwidth 选 250 ,Choose Location of Proxies 选美,Manual Replacementsi 选 20 ,右边 pay year 打开是 8.4 刀 2 ,设置好链式代理。webshare 的 socks5 在大陆不能直连,香港可以。 3 ,指纹浏览器,用 Roxy 免费版足够了。 https://roxybrowser.cn?code=09143UXA 新建窗口后, https://www.browserscan.net/ 测试确保是 100%即可 可以设置 IP 变动,国家地区变动时不打开浏览器,防止你误操作被风控
知道 v 友们藏龙卧虎,来聊下火热的 token 经济,为个人未来投资与个人发展做准备 先抛砖引玉,昨天中国电信大涨,经过一年的深度回调,近期反弹+三大运营商 token 计费消息一出,总体反弹 20%+。 token 成为了通信费,网费外的新的盈利模式,而且 token 用量目前来看越智能,越大量,且基本不可能采用网费的无限制模式,是最贵的按量。 未来公司级别与消费级别的 token 经济,从硬件到能源,以及最吸引眼球的 24 小时无限量 token 的最终形态,都可以聊一下
知道 v 友们藏龙卧虎,来聊下火热的 token 经济,为个人未来投资与个人发展做准备 先抛砖引玉,昨天中国电信大涨,经过一年的深度回调,近期反弹+三大运营商 token 计费消息一出,总体反弹 20%+。 token 成为了通信费,网费外的新的盈利模式,而且 token 用量目前来看越智能,越大量,且基本不可能采用网费的无限制模式,是最贵的按量。 未来公司级别与消费级别的 token 经济,从硬件到能源,以及最吸引眼球的 24 小时无限量 token 的最终形态,都可以聊一下
用了 站友的 ai 分析工具 还行,感谢老哥 https://dsa.zhulinsen.tech/#quickstart
抛砖引玉,thinking 超过 30s 就卡死
抛砖引玉,thinking 超过 30s 就卡死
抛砖引玉,thinking 超过 30s 就卡死
先抛砖引玉说说我自己的: 我的 AI 实战:自动化量化交易盯盘 在 WSL2 里装了 Ubuntu,部署了一个开源 AI Agent(Hermes),让它每天定时帮我做 A 股巡检——自动跑量化评分、分析持仓盈亏、检测技术面信号,然后通过钉钉机器人把报告推送到我手机上。每天开盘前和收盘后各推一次,再也不用手动盯盘翻 K 线了。 整个链路大概是: WSL2 Ubuntu → Hermes Agent → Python 量化脚本 → 钉钉 Webhook → 手机推送 以前觉得量化交易离普通人很远,现在 AI 帮你写代码、调参数、定时执行,参考交易就行! 【注意】A股交易有风险,我目前也是小亏!!! 【目的】主要是现在用了一些token余量,想看看佬们都怎么用的,参考参考,学习一下 1 个帖子 - 1 位参与者 阅读完整话题
GPT Image2的能力确实很强,所以喜欢让朋友发一些好康的AI图片,但是生成的二次元图片不是我喜欢的风格,而三次元图片的人物又很网红脸。所以我突发奇想是否可以让老师们cos成喜欢的角色呢?这样既满足了三次元人脸的需求,又不像现实中cos一样衣服很出戏。以下是一些生成出来的图片,供各位欣赏,大伙可以看一下分别是哪几位老师 (另外,原神牛逼) 焚决 (点击了解更多详细信息) (有个不好的地方在于上传图片之后再生成的图基本就是图片那个姿势了) 3 个帖子 - 3 位参与者 阅读完整话题
抛砖引玉,佬们轻拍: 之前看过哈雷佬等诸位佬的焚决,通过打补丁的方式或者改header的方式,可以实现访问any的haiku. 但这个方法对于像我一样的小白而言,有几个问题。比如,改header方面,大家用的网关等工具有区别。打补丁方面,大家用的cc版本不一样,打补丁可能打的不完善,还要让agent自己hack一下。而且升级cc后又要设法重新打补丁。 我因此想到,haiku不是非用不可。我们用any还是冲着opus去的。能否用第三方模型替代haiku, 达到快速探索的目的? 以下是思路: 用hooks阻断haiku模型的调用,返回deny信息给opus,让他在bash中调用另一个agent. 我这里选的是外部工具pi agent,我给pi这个agent配了mimo 2.5,无他,速度很快,啪的一声就探索完了。如果大家没有安装pi,也可以用claude, 只不过用claude指定一个haiku定位的模型就可以。大家可以让ai帮忙改一下我下面的附件。 具体方法: 给~/.claude目录中的anyrouter.json中加hooks. 启动claude用哈雷佬推荐的方法 claude --settings ~/.claude/anyrouter.json,这样不干扰主配置,只对于any有效。hooks内容用一个单独的python脚本来写。大家如果不用pi,可以改一下对应代码,让claude再通过bash调用一个claude,bash调用的claude指定其他模型就行了。 下面是附件. anyrouter-package.zip (2.3 KB) 5 个帖子 - 2 位参与者 阅读完整话题
终于3级了!访问天数最后几天多卡了几天 收集了很多中转站,最近也尝试用AI写点代码相关的 经常查看B站热门视频榜单,但是很多视频根本不会打开看,或许是因为懒,或许是因为题材不喜欢,但是热门视频总有可以学习的地方看个视频封面和标题总不行把! 于是就有了这个B站热门视频打开的 .py 脚本: #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Bilibili 热门视频排行榜抓取脚本 支持按每组10个分页浏览、一键打开链接、循环提取 无需登录,直接运行即可 """ import json import sys import subprocess import webbrowser import time def install_requests(): """安装 requests 库""" print("检测到缺少 requests 库,正在自动安装...") try: subprocess.check_call( [sys.executable, "-m", "pip", "install", "requests", "--user"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL ) print("requests 安装完成!\n") return True except Exception as e: print(f"自动安装失败: {e}") print("请手动运行: pip install requests") return False def ensure_requests(): """确保 requests 已安装""" try: import requests return requests except ImportError: if install_requests(): import requests return requests return None def format_number(num): """格式化数字,超过 1 万显示为 x.x 万""" if num >= 10000: return f"{num / 10000:.1f}万" return str(num) def get_bilibili_hot(requests): """获取 Bilibili 全站热门排行榜全部数据(返回 100 条)""" url = "https://api.bilibili.com/x/web-interface/ranking/v2" params = { "rid": "0", "type": "all", "arc_type": "0" } headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "Referer": "https://www.bilibili.com/v/popular/rank/all", "Accept": "application/json, text/plain, */*", "Accept-Language": "zh-CN,zh;q=0.9", "Origin": "https://www.bilibili.com" } try: print("正在获取 Bilibili 热门排行榜数据...\n") response = requests.get(url, params=params, headers=headers, timeout=15) response.raise_for_status() data = response.json() if data.get("code") != 0: print(f"API 返回错误: {data.get('message', '未知错误')}") return [] videos = data.get("data", {}).get("list", []) if not videos: print("未获取到视频数据,请稍后重试。") return [] return videos except requests.exceptions.Timeout: print("请求超时,请检查网络连接后重试。") except requests.exceptions.ConnectionError: print("网络连接失败,请确认可以访问 Bilibili。") except json.JSONDecodeError: print("数据解析失败,API 可能返回了非 JSON 内容。") except Exception as e: print(f"发生错误: {e}") return [] def get_popular_videos(requests): """备用接口:获取 Bilibili 热门推荐(返回约 20 条)""" url = "https://api.bilibili.com/x/web-interface/popular" params = {"ps": "50", "pn": "1"} headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "Referer": "https://www.bilibili.com/v/popular", "Accept": "application/json, text/plain, */*", "Accept-Language": "zh-CN,zh;q=0.9", "Origin": "https://www.bilibili.com" } try: print("正在尝试备用接口(综合热门推荐)...\n") response = requests.get(url, params=params, headers=headers, timeout=15) response.raise_for_status() data = response.json() if data.get("code") != 0: print(f"备用接口返回错误: {data.get('message', '未知错误')}") return [] videos = data.get("data", {}).get("list", []) if not videos: print("备用接口未获取到视频数据。") return [] return videos except Exception as e: print(f"备用接口也失败了: {e}") return [] def display_rank(videos, start_index, end_index): """显示指定排名范围的视频,并返回该范围的 (title, link) 列表""" links = [] total = len(videos) print("\n" + "=" * 65) print(f" Bilibili 热门视频 第 {start_index + 1} ~ {min(end_index, total)} 名") print("=" * 65) for i in range(start_index, min(end_index, total)): video = videos[i] rank = i + 1 title = video.get("title", "未知标题") bvid = video.get("bvid", "") link = f"https://www.bilibili.com/video/{bvid}" author = video.get("owner", {}).get("name", "未知UP主") stat = video.get("stat", {}) view = format_number(stat.get("view", 0)) danmaku = format_number(stat.get("danmaku", 0)) like = format_number(stat.get("like", 0)) coin = format_number(stat.get("coin", 0)) links.append((title, link)) print(f"\n【第 {rank} 名】") print(f" 标题: {title}") print(f" UP主: {author}") print(f" 播放: {view} | 弹幕: {danmaku} | 点赞: {like} | 投币: {coin}") print(f" 链接: {link}") print("\n" + "=" * 65) return links def open_links_in_browser(links, start_rank): """在默认浏览器中打开链接""" if not links: return end_rank = start_rank + len(links) - 1 print("\n" + "-" * 65) choice = input(f"\n是否打开第 {start_rank} ~ {end_rank} 名的视频链接?(y/n): ").strip().lower() if choice not in ("y", "yes", "是"): print("已取消打开链接。") return print(f"\n正在一次性打开 {len(links)} 个视频链接…") for title, link in links: webbrowser.open(link) print(f"\n第 {start_rank} ~ {end_rank} 名的链接已全部打开!") def ask_continue(): """询问是否继续下一组""" print("\n" + "-" * 65) choice = input("\n是否继续获取下一组视频?(y/n): ").strip().lower() return choice in ("y", "yes", "是") def main(): print("=" * 65) print(" Bilibili 热门视频排行榜抓取工具") print(" 支持分页浏览、一键打开、循环获取") print("=" * 65) print() # 确保 requests 已安装 requests = ensure_requests() if requests is None: print("\n无法继续,缺少必要的依赖库。") return # 获取全部数据 videos = get_bilibili_hot(requests) # 如果主接口失败,尝试备用接口 if not videos: print("\n主接口获取失败,尝试备用接口...\n") videos = get_popular_videos(requests) if not videos: print("\n未能获取到任何视频数据。") return total = len(videos) print(f"成功获取 {total} 条视频数据,正在按每组 10 个展示...\n") # 分页循环:每 10 个一组 page_size = 10 current_index = 0 while current_index < total: start_rank = current_index + 1 end_index = current_index + page_size # 显示当前组 links = display_rank(videos, current_index, end_index) # 询问是否打开 open_links_in_browser(links, start_rank) # 移动到下一组 current_index += page_size # 如果还有数据,询问是否继续 if current_index < total: if not ask_continue(): print("\n已停止获取。") break else: print(f"\n全部 {total} 条视频已展示完毕!") break print("\n\n运行完毕!") if __name__ == "__main__": try: main() except KeyboardInterrupt: print("\n\n用户中断了程序。") finally: # Windows 下双击运行时不闪退 input("\n按回车键退出...") 然后我还想做某音的,更有目的性的去获取一些起号视频,可惜目前是失败了,好像是反扒问题还是登陆问题。。老老实实看热点宝吧 6 个帖子 - 2 位参与者 阅读完整话题
写在开头 :和各位佬友分享一下个人跳槽经验和面经,也是抛砖引玉欢迎一起讨论,有杭州合适岗位的佬友辛苦随时踢踢~为保护个人隐私,我会省去岗位JD相关信息,过滤闲聊家长里短,保留比较有价值的面试问题。本次分享具体回答感兴趣的佬友可以评论喊我,我会脱敏后尽可能复现当时答案以供参考(*-∀-)ノ 本人BG :双非CS本,QS20AI硕,3年小厂AI产品经验 投递范围 :Base杭州大厂,ToB 智能客服 & Agent 中台建设相关JD 3月投递 : 阿里系:阿里云挂二面、蚂蚁挂终面、其余简历未通过(含内推) 字节系:内推&官网全挂,收到火山解决方案、Tiktok运营转岗邀请,均Base上海婉拒 快手:简历筛选未通过 网易:简历卡评估中 4月投递 : 阿里系:阿里云卡评估中,其余全挂 字节系:全部卡简历筛选中 同花顺:二面挂 网易:二面中 蚂蚁面经 : 一轮(业务负责人面):这轮氛围很free,闲聊 Q1:做个自我介绍,为什么想跳槽? Q2:谈谈你简历这个项目,你在其中起什么定位? Q3:介绍部门情况,想面向谁汇报,为什么? 选项 1:面向他,也就是业务部门负责人 选项 2:面向 PD,可能是我未来 Mentor 选项 3:面向他的领导,统筹业务部门的 Agent 改造 Q4:了解阿里的职级体系吗,对自己的职级是否有预期? Q5:为什么选择阿里系,而不是字节 or 腾讯? 在二轮前会进行性格测试:选词儿+MBTI 三个好词儿选自己最符合和最不符合,如:“能抗压”、“有领导力”、“和团队友好协作” 二轮(PD&算法交叉面):纯压力面,问题节奏快反馈冷淡 Q1:做个自我介绍(这里太紧张,讲了好几分钟分钟流水账,引以为戒) Q2:针对项目提问,重点关注模型路由策略和风控策略(一面是问个人定位) Q3:算法提问 模型采用什么微调方式,什么时间什么基模? 产品联合前台具体给算法交付物是什么? 为什么采用微调策略,效果提升多少? 在什么时间点开始引入 RAG? Q4:为什么离职?(原话是结合我的背景,质疑我意气用事) 终面(HRG&高管交叉面):很轻松的氛围,可能被兼容了,十动然拒 Q1:做个简短的自我介绍(重点:简短) Q2:聊聊项目中遇到过什么压力,你是如何处理的? Q3:你觉得这个项目是否称得上是成功? Q4:谈谈你个人的优缺点。 Q5:看你没去过大厂,能聊聊这块原因吗? Q6:我们已有很成熟的 IT 系统,你觉得 AI 时代主要变革会体现在哪些流程? Q7:如果我们要做 Agent 员工,你认为落地时间会是多久? Q8:你是 AI 狂热者吗?(举个例子,有的人对 AI 是笃信的,认为 AI 能解决一切问题;与此同时有的人认为 AI 不过如此,并不能对人类造成颠覆) Q9:和我们分享一些你 AI 做 Vibe Coding 的实践吧。 先写到这,快下班了,其他公司的回头更新,留屁股我踢~ 5 个帖子 - 5 位参与者 阅读完整话题
最近搬砖遇到的一些问题,抛砖引玉,欢迎大家讨论 困境 分布式异步系统在用 vibe coding 下最大的困境主要是两个,第一个就是环境搭建,需要多个相互隔离的 linux/windows 环境,每个环境甚至需要有自己的网络栈和 docker socket 。第二个就是测试断言非常困难,如果靠轮询数据库状态/接口状态,很多时候不及时,无法断言一些中间状态转移,轮询 gap 可能错过一些异常状态。 vibe coding 非常依赖测试作为基线,如果没有完备的测试兜底,很容易陷入打地鼠的困境,修了一个 bug 引出另一个 bug ,并且还不知道为什么出 bug 。 systemd-nspawn 它可以模拟一个几乎完全隔离的 linux 环境,特别适合 需要 systemd 作为 PID 1 需要比较真实的 Linux 主机语义 需要 独立网络栈 需要在容器里跑多服务,而不只是一个 app 进程 需要细粒度控制 mount / namespace / network bridge / user namespace 特别是每个节点本身也需要做容器编排的情况 这东西写起来非常复杂,不过难不倒 codex 把状态转移做成事件流 与其轮询状态,不如把状态转移做成事件流,由测试编排统一订阅,这样永远不会错过中间状态,永远会有一个状态 trace ,LLM 非常适合根据 trace 来判断是否有异常信号。尤其是对于容器/算力编排系统,断言中间的容器/算力回收状态远比轮询来的靠谱。
最近搬砖遇到的一些问题,抛砖引玉,欢迎大家讨论 困境 分布式异步系统在用 vibe coding 下最大的困境主要是两个,第一个就是环境搭建,需要多个相互隔离的 linux/windows 环境,每个环境甚至需要有自己的网络栈和 docker socket 。第二个就是测试断言非常困难,如果靠轮询数据库状态/接口状态,很多时候不及时,无法断言一些中间状态转移,轮询 gap 可能错过一些异常状态。 vibe coding 非常依赖测试作为基线,如果没有完备的测试兜底,很容易陷入打地鼠的困境,修了一个 bug 引出另一个 bug ,并且还不知道为什么出 bug 。 systemd-nspawn 它可以模拟一个几乎完全隔离的 linux 环境,特别适合 需要 systemd 作为 PID 1 需要比较真实的 Linux 主机语义 需要 独立网络栈 需要在容器里跑多服务,而不只是一个 app 进程 需要细粒度控制 mount / namespace / network bridge / user namespace 特别是每个节点本身也需要做容器编排的情况 这东西写起来非常复杂,不过难不倒 codex 把状态转移做成事件流 与其轮询状态,不如把状态转移做成事件流,由测试编排统一订阅,这样永远不会错过中间状态,永远会有一个状态 trace ,LLM 非常适合根据 trace 来判断是否有异常信号。尤其是对于容器/算力编排系统,断言中间的容器/算力回收状态远比轮询来的靠谱。
最近搬砖遇到的一些问题,抛砖引玉,欢迎大家讨论 困境 分布式异步系统在用 vibe coding 下最大的困境主要是两个,第一个就是环境搭建,需要多个相互隔离的 linux/windows 环境,每个环境甚至需要有自己的网络栈和 docker socket 。第二个就是测试断言非常困难,如果靠轮询数据库状态/接口状态,很多时候不及时,无法断言一些中间状态转移,轮询 gap 可能错过一些异常状态。 vibe coding 非常依赖测试作为基线,如果没有完备的测试兜底,很容易陷入打地鼠的困境,修了一个 bug 引出另一个 bug ,并且还不知道为什么出 bug 。 systemd-nspawn 它可以模拟一个几乎完全隔离的 linux 环境,特别适合 需要 systemd 作为 PID 1 需要比较真实的 Linux 主机语义 需要 独立网络栈 需要在容器里跑多服务,而不只是一个 app 进程 需要细粒度控制 mount / namespace / network bridge / user namespace 特别是每个节点本身也需要做容器编排的情况 这东西写起来非常复杂,不过难不倒 codex 把状态转移做成事件流 与其轮询状态,不如把状态转移做成事件流,由测试编排统一订阅,这样永远不会错过中间状态,永远会有一个状态 trace ,LLM 非常适合根据 trace 来判断是否有异常信号。尤其是对于容器/算力编排系统,断言中间的容器/算力回收状态远比轮询来的靠谱。