我又 Vibe Coding 了一个 Agent 项目 - V2EX
爱意满满的作品展示区。
vodmaker

我又 Vibe Coding 了一个 Agent 项目

  •  2
     
  •   vodmaker Jan 6 1544 views
    This topic created in 132 days ago, the information mentioned may be changed or developed.

    最近 Vibe coding 和 Agent 都比较火,最近还是比较有空,就用 Cursor 随手撸了一个命令行 agent 工具,取名 shex ( shell + execute )。

    起因

    每次用终端的时候,总有那么几个命令死活记不住。比如 tar 的参数到底是 -xvf 还是 -cvf ,find 命令的语法又是什么来着... 以前都是现查,现在有了大模型,干脆让它帮我生成命令算了。

    市面上类似的工具不少,但要么功能太重,要么配置太麻烦。我就想要一个最简单的:输入自然语言,执行命令,完事。

    效果

    安装:

    pip install shex 

    使用:

    shex 列出当前目录所有文件 shex 查看磁盘使用情况 shex 找出所有 python 文件 shex 压缩 logs 文件夹 

    首次运行会引导你选语言、选大模型、填 API Key ,之后就可以直接用了。

    特性

    • 支持十来个大模型:DeepSeek 、OpenAI 、Claude 、Gemini 、通义千问、Kimi 等等,也支持任何兼容 OpenAI 接口的 API
    • 失败自动重试:命令执行失败会自动分析错误,换个方法再试
    • 危险命令确认:涉及删除、格式化这类操作会先问你
    • 实时输出:命令执行过程中的输出会实时显示
    • 跨平台:Windows 、macOS 、Linux 都能用

    实现

    核心思路是用 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

    2 replies    2026-01-08 09:52:18 +08:00
    codehz
        1
    codehz  
       Jan 8
    其实可以增加一些读取上下文的工具调用,例如拿到前一个用户执行的输出一类的(配合 shell 集成),再加点用户交互的工具调用,接入某个 TUI 库生成简单的界面(如要求用户选择某个选项,或者输入内容),就很实用了
    vodmaker
        2
    vodmaker  
    OP
       Jan 8
    @codehz 感谢建议,我研究一下
    About     Help     Advertise     Blog     API     FAQ     Solana     2833 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 14:23 PVG 22:23 LAX 07:23 JFK 10:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86