最近 Vibe coding 和 Agent 都比较火,最近还是比较有空,就用 Cursor 随手撸了一个命令行 agent 工具,取名 shex ( shell + execute )。
每次用终端的时候,总有那么几个命令死活记不住。比如 tar 的参数到底是 -xvf 还是 -cvf ,find 命令的语法又是什么来着... 以前都是现查,现在有了大模型,干脆让它帮我生成命令算了。
市面上类似的工具不少,但要么功能太重,要么配置太麻烦。我就想要一个最简单的:输入自然语言,执行命令,完事。
安装:
pip install shex
使用:
shex 列出当前目录所有文件
shex 查看磁盘使用情况
shex 找出所有 python 文件
shex 压缩 logs 文件夹
首次运行会引导你选语言、选大模型、填 API Key ,之后就可以直接用了。
核心思路是用 OpenAI 的 Function Calling ( Tool Calling )机制,把命令执行封装成一个 tool 。用户输入自然语言后,大模型决定要执行什么命令,然后调用这个 tool 。
大概架构:
用户输入 -> LLM 分析 -> Tool Call (execute_command) -> 执行结果 -> LLM 判断是否需要重试
如果执行失败,LLM 会根据错误信息自动尝试其他方法,最多重试 3 次。
危险命令的判断也交给 LLM ,它会在调用 tool 时传一个 is_dangerous 参数,程序根据这个参数决定是否弹确认。
项目已经发到 PyPI 了,源码在 GitHub:
代码量不大,核心逻辑就几百行,感兴趣的可以看看。
整个项目从想法到发布大概花了一个下午,大部分代码都是 Cursor 帮忙写的,我主要就是提需求、调调 prompt 、修修 bug 。不得不说现在 vibe coding 的效率确实高,以前这种工具起码得写两三天。
欢迎试用,有问题可以提 Issue 。
另外再附上上一个 Agent 项目链接: https://fin-agent.chat
1
codehz 4 小时 8 分钟前
其实可以增加一些读取上下文的工具调用,例如拿到前一个用户执行的输出一类的(配合 shell 集成),再加点用户交互的工具调用,接入某个 TUI 库生成简单的界面(如要求用户选择某个选项,或者输入内容),就很实用了
|