返回首页
最新
我正在构建一个以终端为主的人工智能配对编程工具,旨在使每个工具调用都透明且可审计。这个应用是用Rust编写的,具有一个分为三个窗格的Ratatui用户界面(聊天、工具活动、输入)。代理循环流式传输大型语言模型(LLM)的输出,排队等待手动批准的可写Lua脚本,并将每次运行记录为JSONL日志,存储在.selenai/logs目录下。
关键点:
- 单一工具,真实的保护措施——LLM仅能访问一个沙箱化的Lua虚拟机,并提供明确的辅助功能(rust.read_file、rust.list_dir、rust.http_request、受限的rust.write_file等)。写入操作默认禁用,除非您选择启用并通过/tool run批准每个脚本。
- 透明的工作流程——聊天窗格显示对话,工具窗格显示每次调用及结果,流式处理保持一切响应迅速。提供CTRL快捷键用于滚动、清除日志、复制模式等,使其感觉像一个普通的TUI应用。
- 可插拔的LLM——有一个用于离线开发的存根客户端和一个基于特征的OpenAI流式客户端。添加更多提供者只需在src/llm/下创建另一个模块。
- 会话历史——每次退出时都会写入一个带有时间戳的日志目录,包含完整的记录、工具日志和关于Lua写入是否被允许的元数据。这使得演示、调试和共享重现变得更加容易。
- Lua易用性——提供简单的io.* API和一个小型的require("rust")模块,使得模型可以编写符合习惯的脚本而无需调用外部命令。如果您想手动运行代码片段,还有一个/lua命令可用。
代码库(MIT许可):[https://github.com/Almclean/selenai](https://github.com/Almclean/selenai)
希望获得以下方面的反馈:
- 您希望在LLM特征后看到的其他提供者或本地模型。
- 感觉安全但能解锁有用工作流程的其他沙箱辅助工具。
- 关于重放那些保存会话的想法(网页查看器?CLI差异?)。
如果您尝试使用,运行cargo run,输入内容,您将看到ASCII横幅和聊天窗格。如有问题或想提交PR,请随时联系我——正在制定CONTRIBUTING.md,并且有许多路线图项目(日志查看器、主题、Lua辅助包)如果您感兴趣的话。