V2EX
53 subscribers
18.2K photos
257 files
80.6K links
V2EX新帖和热议
Download Telegram
[分享创造] dtool v0.3.0 发布:面向 AI 的数据工作流,从 Excel 起步,规矩立好了,不烧心

dtool v0.3.0:给 AI Agent 的本地 Excel 数据流水线 CLI

● 仓库: https://github.com/dezhishen/dtool
● 版本:v0.3.0 stable (单二进制,Linux / macOS / Windows )
● 协议:MIT ,零依赖、无云端、无遥测

----------------------

为什么做

现在拿 AI 处理表格的不少——把 Excel 丢给 ChatGPT 、Claude ,让它算个汇总、画张图。实际用下来有四个绕不开的坑:

1. AI 会编数字。 结果对不上时,你不知道它哪一步算错;同一个表问两遍,答案可能不一样。
2. 隐私风险。 客户名单、薪资、订单流水被直接粘进在线对话。AI 厂商的隐私条款再漂亮,数据也已经离开本地了。
3. 不可复核。 AI 的结论没有中间过程。过两周想确认口径,只能重新问,而它可能换一套算法。
4. 上下文有限。 超过一定行数 AI 就开始丢信息或瞎猜。十万行以上的表,纯对话基本没法处理。

dtool 的做法:数据留在本地,AI 负责写 SQL 和出图思路,dtool 负责执行和留痕。效率拿到了,数据没出去。

----------------------

设计

● 本地优先:默认工作区 ./.dtool,数据集、查询结果、图表、Action 记录都在里面,可整体搬走。没有云端,没有遥测。
● 单二进制、零依赖:自带 SQLite 和图表渲染。不装 Python 、Node 、数据库。
● 默认强隐私:结果只写盘,stdout 只给交付清单(路径 + SHA256 ),不打印数据内容。隐私模式只有改配置文件能关,没有命令行开关绕过。
● Action 即台账:每条命令的输入、产物、预览、错误、血缘都记下来。想查"上次怎么算的"直接翻记录。
● Agent 友好:stdout 全是结构化 JSON ,退出码语义明确( 4 = 跑完但出错,5 = 被中断可重跑),带 SKILL.md 技能包,Agent 可以直接拿它当数据后端。

----------------------

安装
V=$(curl -sSL https://api.github.com/repos/dezhishen/dtool/releases/latest \
| sed -n 's/.*"tag_name": *"\([^"]*\)".*/\1/p')
base=https://github.com/dezhishen/dtool/releases/download/$V
curl -LO "$base/dtool_${V#v}_linux_amd64.tar.gz"
curl -LO "$base/checksums.txt"
sha256sum -c --ignore-missing checksums.txt
tar -xzf "dtool_${V#v}_linux_amd64.tar.gz"
install -m 0755 dtool ~/.local/bin/
dtool version

Windows 下载 dtool_<版本>_windows_amd64.zip,解压即用 dtool.exe。

----------------------

快速上手
# 1. Excel → 数据集(自动生成 Schema:列类型/可空/唯一/基数/角色)
dtool convert --input sales.xlsx --name sales

# 2. SQL 查询,数据集名直接当表名
dtool query --sql 'SELECT region, SUM(amount) AS total FROM sales GROUP BY region ORDER BY total DESC'

# 3. 出图,直接引用上一次查询结果,不用重跑
dtool visualize --input latest:query --type bar --x region --y total --title "区域销量" --output out/sales.png

# 4. 导出 Excel / CSV / Markdown
dtool query --sql 'SELECT * FROM sales WHERE amount > 60' --format xlsx --output out/filtered.xlsx

# 5. 一条龙
dtool pipeline --excel sales.xlsx \
--sql 'SELECT region, SUM(amount) AS total FROM data GROUP BY region' \
--chart bar --x region --y total --output out/summary.png

每步的 stdout 都是结构化 JSON ,含 action_id、产物路径和 SHA256 ;失败时 stdout 仍是 JSON (含 code/detail/hint ),退出码非 0 。

----------------------

进阶示例

多表 JOIN
dtool convert --input sales.xlsx --sheet 订单 --name orders
dtool convert --input sales.xlsx --sheet 客户 --name customers
dtool query --sql 'SELECT c."客户名称", COUNT(*) AS 单数, SUM(o."金额") AS 总额
FROM orders o JOIN customers c ON o."客户 ID" = c."客户 ID"
GROUP BY 1 ORDER BY 总额 DESC LIMIT 5'

支持 INNER / LEFT / CROSS JOIN 、CTE ( WITH )、子查询、UNION ALL 、窗口函数( RANK / ROW_NUMBER / LAG )。

多系列图表
# 长表透视:region × quarter 拆多系列
dtool visualize --input latest:query --type bar --x region --y total --group-by quarter

# 宽表直取:多列 → 多折线
dtool visualize --input latest:query --type line --x month --y sales,profit


结果集管理
dtool actions results stat     # 统计查询/图表结果(数量/大小/缺失)
dtool actions results verify # 校验结果文件存在并核对 SHA256
dtool actions results gc # 清理过期结果(默认 dry-run ,--apply 才真删)


口径与血缘
dtool actions annotate &LTid> --text "口径:含税" --by ai-agent
dtool query --sql '...' --from action:<上次的 id>

----------------------

资源与性能(实测)

1 核 2GB 受限环境:

结论:

● 内存不足时自动降档( full → stream → disk ),峰值和数据量解耦。
● Excel 转换是流式的,边界是 Excel 单表 1,048,576 行的格式上限,不是内存。
● 内存超预算会快速失败并给数字(预计需 xx / 可用 xx ),不会静默被杀。
● 看门狗按预算中止进程。Windows 上进程级内存限制( 0x100 )生效; job 级( 0x2000 )在 Win10 19044 读回为 0 ,工具会告警并回退预算来源。

----------------------

已知限制

● SQL 引擎是 SQLite:不支持 ROLLUP / CUBE / GROUPING SETS ,多维小计用 UNION ALL 兜底;多系列展示由图表层 --group-by 实现。
● convert 只支持 .xlsx,不支持 .xls 和 CSV 直接导入。
● 图表单图上限 1000 个数据点。
● 默认沙箱只允许单条 SELECT / WITH ,PRAGMA / ATTACH / 多语句会被拒(--sandbox=false 可关)。
● 强隐私是契约不是沙箱:CLI 保证不打印数据内容,但拦不住调用方直接读落盘文件。

----------------------

适用场景

● AI Agent / 自动化(首要场景):stdout 全 JSON 、退出码语义明确、带 SKILL.md ,Agent 直接拿它当数据后端。
● 处理 Excel 但不想开在线表格的:本地汇总、出图、导出,数据不出门。
● 折腾本地数据的开发者:可复现的 SQL 流水线、Action 台账、SHA256 可校验。

----------------------

dtool v0.3.0 ,MIT ,单二进制零依赖。

via V2EX (author: THESDZ)
[分享创造] 做了个 threads 多账号切换的 app Strand 免费加开源,感兴趣的可以来试试

链接

https://istrand.vercel.app/

预览

via V2EX (author: iextrastu)

Invalid media: image
[分享发现] 美国 topcashback 返现周年庆活动推荐奖励$50(可平分纯白嫖)

目前截止到 10/31 之前通过 aff 链接注册并在 180 天内完成$10+的返现,一旦推荐奖励提现到账可平分$25(私下转账),注意被推荐人是没有推荐奖励的。如果不想消费纯白嫖,每天做 trivago 任务即可

aff 连接: https://www.topcashback.com/ref/topcashback1829
活动链接 https://www.topcashback.com/refer-a-friend/
频道 http://t.me/kxtao?direct 直接联系

via V2EX (author: n18255447846)
[华为] soui 全面支持移动端, windows, Linux , macos, ios, android,鸿蒙,一套 C++代码全搞定

0. 一个扎心的现实

你想把桌面软件搬到手机、搬到鸿蒙,于是去看了主流跨平台方案。然后发现:

● Qt:得学 QML / 信号槽那一套,Widget 和 QML 两套心智;
● Flutter:得学 Dart ,UI 层基本用 Dart 重写;
● Electron:包体 100MB+,跑个工具像开浏览器;
● wxWidgets:API 随平台变,"跨平台"很大程度是"换 api 重写"。

如果你是个写了十几年 Win32 / WTL / MFC 的人,最理想的方案其实是:我那套 C++ 手感别动,界面逻辑一次写完,六端编译。

这正是 SOUI4 在做的事。

----------------------

1. 硬证据:一套 C++,业务代码零平台宏

空口无凭。SOUI4 自带一个跨平台样板项目 games/cnchess(中国象棋),它在 Windows / Linux / macOS / iOS / Android / 鸿蒙 六个平台共用同一份 C++ 业务代码。

我们逐文件统计了它的业务源码里平台宏的出现次数:

核心绘制与逻辑文件 ChessBoard.cpp、ChessPiece.cpp、algorithm/*( AI 引擎)完全没有平台宏。平台差异被 swinx 兼容层和移动端宿主库完全吸收,业务层只在薄薄的入口处用 __MOBILE__ 一个开关区分"移动触屏 vs 桌面弹窗"。

这意味着什么?意味着"一套 C++ 六端运行"不是 PPT 口号,是工程现实——一个中国象棋的完整对弈 + 联机 + 主题下载,六端复用同一份代码。

----------------------

2. 它是怎么做到的:用 Win32 当"世界语"

SOUI4 的核心设计哲学是:不造一套抽象层,而是重演 Win32 语义。

框架里有一层叫 swinx 的跨平台兼容层,它提供了 44 个与 Windows SDK 同名同结构的公共头文件(windows.h / gdi.h / unknwn.h / oleacc.h …)。于是 SOUI 内核直接 #include &LTwindows.h>,**零平台 #ifdef**。

非 Windows 平台不是"模拟一个长得像的 API",而是链接期解析:公共声明集中在头文件,各平台目录给出同名同签名的实现,构建时只把当前平台的源文件编进去。调用方写同一个函数名,正文里没有平台分支。

这套机制甚至能整块搬运重量级组件:

● RichEdit( Microsoft RichEdit 4.1 ,499 个文件)被整体搬到了非 Windows 平台,富文本能力六端一致;
● Scintilla 的 Win32 分支(语法着色编辑器)也是靠 swinx 把 CreateWindowEx / SendMessage / GDI 这套桌面子系统整体模拟出来,无需为每端另写后端。

----------------------

3. 鸿蒙是"一等公民",不是社区补丁

这一点对国内开发者尤其重要:在主流跨平台框架里,鸿蒙( OpenHarmony )要么是弱支持,要么根本没官方支持(评估报告对比表:Qt "OHOS 弱"、Flutter "官方无")。

SOUI4 通过 PlatformAPI 桥接,把 SApplication 托管进鸿蒙的 EntryAbility( ArkTS 侧经 HAR 包 @soui/ohos 导出)。鸿蒙是正式支持平台,和另外五个平台共用同一套语义。

而且,鸿蒙原生开发用的是 ArkTS (托管语言,有 GC 停顿),而 SOUI 整套 UI 树、事件路由、绘制调度、业务逻辑**全部是 AOT 编译的原生 C++**——没有虚拟机的 GC 抖动,这对游戏类、实时类应用价值最大。调系统能力时,你按原生习惯自己写 NAPI ,调用发生在 SOUI 的 UI 线程(即宿主原生线程)上,同一线程、无需线程切换,摩擦最接近原生开发。

----------------------

4. 它适合谁、不适合谁

适合:

● 熟悉 Win32/WTL/MFC ,想跨平台但不想学新语言/新范式;
● 需要上鸿蒙、又有 C++ 存量代码要复用;
● 独立开发者 / 小团队,想要体积小(核心约 2MB ,无 VM )、快速出界面;
● 桌面工具、游戏类软件,重视帧时序与低延迟。

不适合(诚实说):

● 想"把公司一套老 Win32 程序零成本迁移到六端"——这是 SOUI 的延伸目标,当前为"用 SOUI 编写的新应用"提供六端;旧 Win32 程序迁移所需的原生控件库 / 窗口菜单栏 / 资源对话框三块接口面尚未补齐(但地基已具备,差距是工作量不是架构问题)。
● 想要"开箱即用的丰富原生控件"——SOUI 是自绘 DirectUI ,控件面靠内置 40 个控件头 + 37 个扩展控件 + SRealWnd 挂原生窗口。

----------------------

5. 为什么我愿意把这个项目讲给你听

不是因为它"完美"。评估报告里也老实列了 11 项风险和 15 项优势——移动端还没自动构建门禁、核心维护者集中在一人、vendor 代码占了两仓库受控文件的 67%。

但这些短板性质高度一致:都是"工作量与流程"问题,不是"架构不确定性"问题。没有一项需要推翻现有设计。对一个开发者来说,这反而是最强的信任锚:坑在工程量里,不在架构里。

如果你也是那个"写了十几年 Win32 、又想让代码跑遍六端"的人,欢迎看看:

● 官网:soui.com.cn
● GitHub / Gitee 搜 soui4
● 知乎专栏「启程软件」(我会持续写 SOUI 的跨平台实战)

via V2EX (author: soui)
[分享创造] 做了一个血缘分析平台,解决 Agent 在开发过程中数据库变更造成的跨服务影响的问题

Agent 把交付速度抬上去之后,数据库变更的风险也增大了. 特别是数据流穿过多套数据库、N 个视图和多张仓库代码里从没出现过的报表时,改动本身会对哪些跨服务跨实例的语句造成影响,我觉得这个问题是需要解决的

所以我做了这个血缘分析平台,通过 MCP 提供检索功能给 Agent,让 Agent 可以感知数据库字段级的血缘,从而避免改炸了下游服务

这里有个简单的例子

完整文章在这https://metaxisdata.com/zh/blog/agent-era-schema-changes/

Github 地址在这 https://github.com/Ranxy/metaxisdata

欢迎大家来提 BUG 哈

via V2EX (author: ranxy)
[Windows] 实习生说他 token 太多了用不掉,于是我忽悠他重构了 windows 资源管理器的文件管理功能

背景信息

有一天实习生在这无所事事,我就问他:
你的 token 多不多?你的 Windows 资源管理器卡不卡?
于是他立即明白了我的意思,直接掏出 codex 就开始重构资源管理器!

重构产品

产品名称就叫 rust-explorer

目标

实现 Windows 资源管理器的文件管理功能,提供一个非常流畅而且保留原汁原味的文件管理功能,可以加入一些简单实用的调整,但是不会实现与原版资源管理器差异过大的功能。

兼容性

为了保持流畅,此项目不对原版 explorer 的拓展方式做过多兼容,例如预览,主页的自定义驱动器例如 WPS 网盘等内容。只对右键菜单和文件管理体验进行兼容。

技术栈

rust+gpui

缺点

● gpui 框架成也 gpu ,败也 gpu
在没有 gpu 的电脑上运行非常卡而且 CPU 使用率非常高。
在有 gpu 的电脑上运行非常流畅

以后打算使用 qt 再重构一版专门给没有 gpu 的电脑用

项目地址

https://github.com/Mingcodeingmiao/rust-explorer

via V2EX (author: evalfun)
[推广] Codex 纯 Pro 池|中转包月,共享重置,套餐多多

• 纯 Pro 池,纯 200 线路、纯 500 线路
• Codex 全模型可用
• 高 RPM / 高并发,适合长时间持续跑
• 多线路冗余,官方波动也有稳定线路可选
• 按量全场 0.2 ,充值立享 0.17 优惠,月度阶梯最低 0.15
• 包月订阅多档可选,综合最低不到 0.1
• 订阅套餐还可以共享官方重置

地址:codex.zhuanyedaili.com⁠
联系方式:QQ 群:1106944249 https://codex.zhuanyedaili.com/scripts/codex-qq-group.jpg

via V2EX (author: AI952995)
[程序员] 感觉自己的人生好失败

从高中开始就靠着兴趣学编程,也小有成果,自认为在同龄人中水平也算优秀了,当时搞了反汇编,读了各种设计的书,去开发游戏,靠自己去找人,找团体,还自学画画去做游戏,当时在这上面也挺自豪的
读了大学也享受着高中学到的技术带来的红利,开始搞 c++,什么东西都搞,而且很喜欢底层,越往底层越喜欢搞,也是找组织找社团,虽然好像没什么真正意义上很重大的成果,但起码自己内心是富足的,是认可自己的。
这时候我感觉自己有技术优越感,很鄙视开发仔,我感觉开发仔用的那些玩意在我高中的时候就摸透了,我觉得去做顶层的设计,去做前沿的东西才是有价值的,像开发仔天天盯着业务就跟螺丝钉没什么区别
但结果我自己还是做了开发仔,秋招关键节点,我拿了个大厂 offer 就开始摆烂了,没有再努努力,或者说,没有在大学期间搞更多有产出,跟紧时代前沿的东西。
身边同期的朋友一个一个都去搞 ai ,搞 gpu ,好羡慕啊,反观我自己的工作内容,天天盯着业务跑,被一些琐碎的事给填满,根本没精力想着怎么去搞一些工作外,能发展自己的东西,我感觉我天天都在浪费生命。我感觉我的同事也没有技术追求,也都是高级开发仔
感觉自己很失败,我自己都鄙视我自己,选择做错了感觉好痛苦,不想天天搞这些傻逼业务

写的有点豪,求大大们骂醒

via V2EX (author: 1300296933)
[酷工作] 紧急:高级 AI 全栈工程师(Agent 方向)高薪 50-75k

### 位名称

AI 全栈工程师( Agent 方向)/ 高级 AI 全栈工程师( Agent 方向)

### 公司一句话

大道云隐( DaoAscend / ********)——制造业主权 AI 基座。企业级私有 AI 产品线:密数天工(全离线 AI 智能体平台)、密数四库(数据治理)、密数点睛(图纸智能、物理仿真)、密数归藏(核心资产防护)。国家级高新技术企业、筑峰强链重点企业、AI 原生组织,本岗为产品核心研发。
### 地点与办公

- 常驻:常州新北区(沪宁一小时高铁圈)
- 高级候选人可申请以远程办公,具体面议

### 薪资与到岗
- **P6 ( 3-5 年):25-50k × 13 薪**
- **P7 ( 5-8 年):50-75k × 13 薪 ,核心模块 owner 权限
- **到岗时间灵活**:Q4 签 offer ,到岗时间可谈
- 学历:作品 > 学历。本科起步,QS100/硕士优先; AI Coding 重度使用者有放宽先例

### 岗位职责(按优先级排序,前 3 条为核心)
1. **大模型应用工程化**:Prompt 工程、上下文管理、结构化输出、流式交互、效果评测与调优——产品 AI 能力由你直接负责
2. **多智能体协同架构**:任务拆解、Agent 编排、工具调用( MCP 协议)、结果验证
3. **全栈端到端 owner**:Web 协同界面( TypeScript + React/Vue )+ 后端服务( Go/Node.js/Python 任一),独立完成需求→部署上线
4. RAG 双路召回(向量检索 + 全文检索)、文档解析、检索效果优化
5. 参与私有化交付与客户 POC (离线/Docker 部署、性能优化),把客户真实场景沉淀为产品能力
6. 桌面客户端( Tauri + TypeScript )研发——**非必须项**:有基础者优先,没接触过入职后学,团队有成熟框架和带教

### 硬性要求(一票否决)
1. 3 年以上软件开发经验,其中 1 年以上大模型应用/Agent 方向实战,**有已上线项目,Demo/课程作业不算**
2. 前端 TypeScript + React/Vue 至少精通一门;后端 Go/Node.js/Python 至少精通一门
3. 深度使用过至少一个主流大模型 API ( OpenAI/Anthropic 协议、DeepSeek 、GLM 等),实际写过 Function Calling / 结构化输出 / 流式处理
4. 做过向量检索 + 全文检索混合方案,用过至少一种向量库或全文检索引擎

### 加分项
- Rust / Tauri 桌面端经验(对应职责 6 )
- MCP 协议开发经验
- 私有化/离线部署、mTLS/网关等安全工程经验
- GitHub 开源作品或技术博客
- AI Coding 重度用户( Claude Code / Cursor 等日常主力工作流)
- 制造业/企业软件交付经验

### 高级版( P7 )附加要求
- 5 年以上经验,其中 2 年以上 Agent/RAG 方向
- 从 0 到 1 主导过 AI 产品核心模块的架构设计
- 带过 2 人以上小组,或主导过跨团队技术项目

### 我们提供(非现金筹码,显性化)

- 核心产品 owner 权限,产出直接进产品,不经过五层审批
- AI 原生组织:AI Coding 是日常工作方式,工具与 Token 预算全覆盖
- 混合办公 + 常州生活成本优势(同等薪资在常州的实际购买力远高于一线)
- 扁平组织,没有大厂螺丝钉问题
- Q4 签约、到岗时间灵活

via V2EX (author: wanghua1299)
[问与答] miao project 最近不好用,有人知道吗?

如题?

via V2EX (author: artii)
[分享创造] iOS V2EX 客户端 Röam,欢迎 TestFlight 体验。

在一位老哥的帮助下,终于上架了 TestFlight 。原生 iOS V2EX 客户端,Swift 写的。

主打简约,免费。为 V2EX 爱发电,后续稳定后还有 NodeSeek 发布。

哈哈 ,对于一个非程序员普通上班族来说第一次搞比较兴奋。

效果图:

体验链接:

https://testflight.apple.com/join/6PcpTn7p

谢谢~

via V2EX (author: dododook)
[AI Agent 智能体] grok bot 挺好用的,适合做一些自动化操作,就是主机内存才 15G, bot 多的时候不够用,额度用了也挺快的

via V2EX (author: androidCoder)
[macOS] MacOS27.0.1,第三方的截图工具,无法截取微信

有朋友发现了吗?这个怎么做到的啊?

via V2EX (author: codermali)
[生活] 你或者身边的人还看书吗,求推荐书籍

如题,我抛砖引玉吧。

如果小炒股票,推荐看:经济学人,订阅中,立场中立,文风冷幽默。各种二手财经博主的一手资料来源吧,其实不会文邹邹,很有趣。

喜欢深度游的人:孤独星球系列,有人文气息的旅行规划读物。

小白,真小白,真正的小白从 0 学编程,高中生,大学新生适合:Head first 系列。

via V2EX (author: guguphoenix707)
[投资] [大 A 专属幸福指数] 想知道从 7 月到现在,大家重仓科技的亏了多少钱

2w5 的本金,我都能亏 1w

想问下大家在大 A 里面从 7 月到现在赚了多少钱。

这个游戏到底是谁在赚啊

via V2EX (author: shilianmlxg)
换手机 IOS 迁移导致 Authenticator 中的 E3 登录掉了,网站也登录不上也没旧设备。大佬们有什么方法解决没,我的 E3 账号啊 呜呜呜 T_T

via V2EX (author: wantxp)
[问与答] 求推荐腾讯视频和 B 站会员优惠折扣

有没有大佬推荐一下

via V2EX (author: ChevalierLxc)
[推广] 🚀 **AigateGo · 实充 ChatGPT Pro 号池 0.20x**

全模型低倍率| Grok 0.05x 爽登
👉 https://api.aigatego.com

充值优惠码 BACK10 · 立减 10%

最近低价中转又开始集中翻车,用着真的心累:

第一章 · 天才陨落
Our servers are currently overloaded. Please try again later.

第二章 · 不翼而飞
unknown model gpt-6.1-sol

第三章 · 山穷水尽
Selected model is at capacity. Please try a different model.

第四章 · 封神提名
Your account has been deactivated because recent activity violated our Terms and Usage Policies.

第五章 · 穷途末路
exceeded retry limit, last status: 429 Too Many Requests

别家中转把对话当资产卖掉。代码、提示词、项目上下文,走一遭就不知道去哪了。
我们不记对话、不卖数据,后台只有消费日志。

AigateGo 只做一件事

● ✅ 自有号池,无上游、无中间商,实充 ChatGPT Pro 0.20x 直连,不是尾货、不是拼盘
● ✅ 全模型低倍率:Grok 0.05x 爽快登,GPT 等主流模型同样超低
● ✅ 不记数据,只留消费日志,安全放心
● ✅ 不限流、不掉号,速度丝滑,干净稳定优先

原生 OpenAI 兼容,换个 Base URL + Key 就能用。
多 Key 分项目,账单透明,不玩玄学倍率。
有问题直接砸群,秒修。

🎁 先测再决定,轻松领 $4

● 注册 + 回帖 → $2
● 进群再送 → $2
● 文档: https://api.aigatego.com/docs
● 计费: https://api.aigatego.com/pricing
● 交流群: https://t.me/AigateGo

via V2EX (author: ttokens)