Imp登陆Hex:DSPy完整移植到BEAM,签名与优化器驱动Elixir模型程序

Imp登陆Hex:DSPy完整移植到BEAM,签名与优化器驱动Elixir模型程序

模型调用被声明为可测量、可改进的类型化函数

2026年9月27日登上黑客新闻首页的Imp,是开发者deepfates用Elixir编写的开源库,目标是把DSPy完整移植到BEAM虚拟机。其0.5版本是首次登陆Hex包管理器的版本,官方标注为实验性质,API仍可能变化。仓库创建于2026年7月10日,两个多月间积累约2100次提交、153颗星与9个复刻,采用MIT许可证,最新推送时间就在9月28日。

Imp的核心抽象是签名。开发者只需声明每个语言模型步骤接收什么、返回什么,比如用一行文字描述「工单进入,输出bug、feature、question三选一的类别与摘要」,再选择预测、思维链或ReAct方式执行,签名本身保持不变。Imp根据签名自动构造提示词、校验模型回复,类别字段必然落在三个枚举值之一,否则调用直接返回错误,开发者既不用手写提示词,也不用编写解析器。

GEPA读取失败轨迹改写指令,代理本身就是OTP进程

改进环节同样照搬DSPy思路。开发者提供训练集、验证集与测试集三份标注数据,先用指标给程序打分;GEPA优化器运行程序、读取失败位置并重写指令,最多进行300次指标调用,反思过程交给更强的模型完成。其余优化器包括挑选示例的LabeledFewShot与BootstrapFewShot、搜索指令与示例组合的MIPROv2、从程序自身好坏尝试中学习规则的SIMBA,以及微调与GRPO权重训练;优化得到的新指令和示例可读、可存为JSON、可按差异审查。

在BEAM上,一个代理就是一个进程。Imp的react接口构造反复调用工具直至作答的代理,工具本身只是普通Elixir函数;start_run接口则把程序放进受监督的独立进程运行,调用方可旁观、随时停止,并通过授权回调决定每次工具调用放行还是拒绝。进程随发起它的进程结束而终止,模型请求按设定的截止时间中断,已经生效但状态不明的工具调用会如实报告为未知,绝不静默重试。

黑客新闻的讨论没有停留在叫好。有用户直言社区早已从结构化解码转向工具调用与代理,结构化输出在模型语法不可靠的年代更有价值;也有数学博士背景的用户认为模型在细节注意力上已超过自己,真正的短板是创造力、规划与决策。评论区有人追问Rust移植版本,回应是社区已有名为DSRs的Rust项目,而DSPy式反馈技术在开环控制看起来足够好的今天依然不可替代。

Imp要求Elixir 1.19或更高版本,因依赖jaxon与erlexec两个含原生代码的库,首次编译还需要C与C++编译器及网络。模型请求经由ReqLLM发出,因此ReqLLM支持的供应商都可直接接入。项目同时提供从零搭建的入门文档、DSPy概念对照表、可离线运行的Livebook教程和单页速查表;在优化器经过更大规模基准测试之前,它更适合愿意跟进快速迭代的Elixir开发者尝鲜。