PromptShark 是一个面向 AI 智能体的透明本地代理、循环检测器与调试工具,项目以 Go 与 C++ 构建,采用 MIT 许可证,仓库地址为 https://github.com/apvcode/PromptShark。它的定位是解决智能体在无限工具调用循环中持续消耗 token 的问题,口号为“Intercept every prompt. Catch every loop. Replay any step.”。
用途方面,PromptShark 位于 AI 智能体与 OpenAI API 之间,拦截每个 API 调用,记录并可视化每一对请求/响应,同时自动检测智能体是否卡在无限工具调用循环中。它强调“一行集成、零代码改动”:只需将智能体的 base_url 替换为 http://localhost:8080/v1 即可接入。
主要能力包括:
- 拦截与检查:每个 API 调用流经 PromptShark,可查看结构化请求/响应对,折叠原始 JSON 载荷,并按步骤跟踪 token 使用量,提供 Prompt / Completion 拆分。
- 循环检测:专用的 C++ 引擎通过 IPC 与 Go 代理并行运行,对每次工具调用进行哈希,并即时标记重复模式,在耗尽 API 余额之前发出警报。
- 时间旅行回放:点击任意历史步骤,在内置编辑器中编辑 JSON 载荷,通过交互式 diff 视图预览更改,并从该点重新运行智能体;较早步骤由 SQLite 缓存提供,不产生额外 API 成本。
- 实时仪表盘:暗色玻璃拟态 UI,由 WebSocket 驱动实时流式传输,支持自动切换会话、即时步骤搜索、Markdown 导出和会话管理,全部集成在一个嵌入式 HTML 页面中。
使用方式提供三种运行选项:
- 选项 A:Docker(推荐)。
- 选项 B:预编译二进制文件。从 GitHub Releases 页面下载适用于对应操作系统(Windows、macOS、Linux)的最新 .zip 或 .tar.gz,解压后运行 agent_supervisor(或 agent_supervisor.exe)。
- 选项 C:从源码构建。先构建 C++ 核心,再运行代理,然后打开 http://localhost:8080,仪表盘即准备就绪,最后将智能体指向该地址。
配置方面,可在项目根目录编辑 loop_config.txt 配置循环检测器;同时支持环境变量 PORT 和 DB_PATH(命令行标志优先)。服务器支持优雅关闭:按 Ctrl+C 后会完成进行中的请求、关闭数据库并干净退出(原文显示输出 ✅ Goodbye!)。
适用场景:需要对 AI 智能体的 API 调用进行调试、排查无限工具调用循环、分析 token 消耗、对失败步骤进行回放与编辑重跑,以及管理多个智能体会话的开发者。
限制与缺失事实:根据现有资料,未提供具体的收费方式、价格、运行环境最低要求、性能指标数据。项目提及的后续规划包括:通过 YAML 配置循环规则(正则模式、token 预算)、支持 Ollama / Anthropic Claude API、以及多智能体消息流可视化(网络图),这些在资料中标注为待实现能力。