当行政每天花几个小时复制粘贴发邮件时,AI直接生成一个exe工具,双击运行,几百封邮件11分钟发完。
那个被考勤邮件支配的下午
每个月25号,行政小雅都想请假。
因为这天要发全公司的考勤确认邮件。公司不大不小,200来号人,每个月考勤数据汇总在一张Excel表里,每个人有几行数据:姓名、工号、出勤天数、迟到次数、请假天数、加班时长……然后要求每个人都要收到一封个性化的考勤确认邮件。
听起来不难对吧?但实际操作起来是这样的:打开Excel → 复制张三的数据 → 新建邮件 → 粘贴收件人 → 粘贴正文 → 发送。然后李四、王五、赵六……200个人,复制粘贴200次。
每次发完,手指僵硬、眼睛发花,最可怕的是——万一贴错了收件人,把李四的数据发给了王五,那就是事故。
上个月她翻车了。把A的数据发给了B,B在群里@她:“这不是我的考勤数据啊?”社死瞬间。领导说:“下次核对仔细一点。”
可200封邮件,每封都要核对姓名、工号、邮箱、数据……再仔细的人也扛不住这种纯体力活。这根本不是“仔细”能解决的问题,这是流程本身的问题——让一个人手工复制粘贴200次,出错是必然的,不出错才是奇迹。
后来她在一个技术群里看到有人讨论AiPy,说能“一句话生成工具”。她半信半疑地试了一下。
一句话下去,exe自己“长”出来了
她打开AiPy的对话框,输入了这么一段话:
“帮我做一个基于Excel数据的员工考勤邮件自动发送程序。Windows上能双击运行,在界面上上传考勤文件和邮箱信息文件后,能读取员工考勤数据和邮箱地址,自动发送个性化的考勤邮件给每位员工,把发送情况在界面上显示。”
输入完,她去做别的事了。
等了几分钟,等她回来的时候,桌面上多了一个文件夹——里面躺着一个“员工考勤邮件发送系统.exe”。名字就是她说的“员工考勤邮件自动发送程序”,AiPy自动识别了核心功能并命了名。
双击打开,界面是这样的:
左上区域:三个上传按钮——上传邮箱配置文件、上传考勤数据表、上传员工花名册
中间区域:一个“开始发送”按钮
下方区域:进度条和日志区,实时显示发送状态
功能分区简单直观,不需要看说明书就能上手。她把三个文件上传好,点了“开始发送”。
进度条一步步往前走,日志区实时更新:
“正在发送第1封邮件……成功”
“正在发送第2封邮件……成功”
“正在发送第3封邮件……失败,原因:收件人邮箱格式错误,已跳过”
“正在发送第4封邮件……成功”
……
“正在发送第200封邮件……成功”
11分钟,200封邮件,全部处理完毕。有失败的也记录得清清楚楚,她只需要单独处理那几个失败的就行,不需要从头再来。
每封邮件的内容都是根据那个员工自己的考勤数据生成的,收件人对得上,数据对得上,正文也没错。
她坐在那儿愣了好一会儿——她花一个下午加一个晚上才能干完的活,它不到11分钟干完了,而且零差错(除了那几个邮箱格式有问题的,但那也不是程序的问题)。
领导路过问了一句:“考勤邮件发了吗?”她说:“发了,全部发完了。”领导有点意外:“这么快?”她说:“嗯,自动化了。”
技术拆解:从自然语言到exe的完整链路
这件事看起来“神奇”,但背后的技术链路其实很清晰。AiPy走完了“需求解析→代码生成→执行→打包exe→交付”的完整闭环。
1. 需求解析与任务拆解
用户输入是一段大白话:“帮我做一个基于Excel数据的员工考勤邮件自动发送程序……”。AiPy通过Prompt工程体系,让LLM将这段话解析为结构化任务:
UI层:Tkinter桌面界面,三个文件上传入口,进度条,日志区
数据处理层:读取Excel考勤数据,通过“工号”字段关联员工邮箱
邮件发送层:SMTP协议发送个性化邮件,内容包含该员工对应的考勤数据行
打包层:pyinstaller打包成exe,无需安装Python环境
每个任务都被分解成可执行的代码模块。这和传统软件开发的“需求分析→概要设计→详细设计”流程在逻辑上是一致的,只不过执行速度从“几天”变成了“几分钟”。
2. 代码生成:从语义到可执行Python
任务拆解完成后,AiPy调用大模型生成Python代码。整个程序的核心逻辑大致如下:
邮件内容生成部分,AiPy生成的逻辑是:读取“考勤数据.xlsx”中每个员工对应的行数据,把Excel表头作为字段名,把该员工的考勤记录作为内容,组合成邮件正文。这样每一封邮件都是个性化的,不是群发一样的模板。比如张三收到的邮件正文里会显示“张三,本月出勤22天,迟到1次,加班8小时”,而李四收到的是李四自己的数据。
SMTP配置部分,AiPy自动从上传的“email.txt”中读取发件人邮箱、SMTP服务器地址、端口号和授权码。用户不需要在代码里写死任何配置,每次运行从文件读取就行。这意味着同一个exe文件可以给不同部门、不同发件人使用,只要替换配置文件就行。
错误处理部分,代码里包含了完整的异常捕获和日志记录:如果某个字段缺失,日志会显示具体原因;如果发送失败,会记录失败原因并继续处理下一封,不会因为一封卡死整个流程。这就是为什么日志区能清晰显示“第3封失败,已跳过”,而不是整个程序崩溃。
3. AST自愈:代码报错也能自己修
LLM生成的代码第一次运行未必完美。如果代码报错——比如某个库没装、文件格式不匹配、编码解析失败——AiPy的AST自愈机制会自动介入。
具体流程是:
执行代码,捕获错误信息(错误类型、行号、堆栈)
将错误信息连同当前代码一起重新提交给LLM
LLM分析错误原因,生成修复后的代码
再次执行,直到任务完成
官方数据显示,这种自愈机制能把复杂任务的迭代轮次从平均8-10轮压缩到3-5轮。用户感知到的,可能只是一条“正在修复错误…”的提示,然后任务继续推进。小雅在使用过程中完全没有感知到任何报错和修复过程,因为AiPy在后台已经把这些问题处理完了。
4. 打包与交付:双击就能用的exe
代码生成并调试完成后,AiPy自动调用pyinstaller把所有代码和依赖打包成一个独立的exe文件。用户不需要装Python、不需要装任何库,双击就能用。
最关键的——所有数据都在本地处理,不上传任何服务器。员工的姓名、邮箱、考勤数据这些敏感信息,全程不出内网。对于很多企业来说,这一点是“能不能用”的前提。如果数据要上传到云端,光是合规审批这一关就过不去。
更深一层:为什么“代码即代理”比预设工具更灵活?
传统AI Agent的工作方式是:开发者预先写好一批工具(比如“读取Excel工具”“发送邮件工具”),然后让大模型按说明书调用。这种方式的局限在于:碰到没预设过的场景,或者需要组合多个工具完成复杂任务时,就卡住了。
AiPy的“Python-Use”范式走的是另一条路:让大模型直接生成Python代码,用代码本身作为“工具”。用官方的话说叫“No Agents,Code is Agent”——不需要预先注册工具,不需要编排工作流,代码本身就是代理。
在这个考勤邮件的场景里,区别很明显:
预设工具模式:需要提前写好“Excel读取工具”“邮件发送工具”“界面绘制工具”三个独立功能,并告诉大模型什么时候调用哪个。如果用户说“再加个附件功能”,就得重新写工具。
代码生成模式:大模型自己写一段Python代码,把读取Excel、发邮件、画界面串成一个完整的流程,一次执行完。用户说“加个附件”,它直接修改代码加上附件逻辑就行。
区别在于:预设工具模式依赖开发者提前预判所有可能的场景,而代码生成模式遇到新场景可以现场“造”一个新工具。
写在最后
从一句话到exe文件这件事,技术上并不复杂。但AiPy的价值在于,它把这个过程从“需要懂Python的人来写脚本”变成了“说句话就能搞定”。
小雅后来跟我说了一句话:“以前发考勤邮件,我到月底就焦虑。现在反而是最轻松的时候——上传文件,点一下按钮,等个十几分钟,全发完了。”
如果你也经常被“复制粘贴发邮件”这类重复劳动折磨,不妨试试AiPy——从一句话到双击就能用的工具,比你想象的要快。