phylecorp/gabo

GitHub: phylecorp/gabo

Gabo 是一款将 CIA 经典情报分析技术自动化的 AI 结构化分析平台,帮助用户在高风险决策中克服认知偏误并获得有理有据的评估。

Stars: 8 | Forks: 1

# Gabo — 针对任何问题的结构化分析 ## 这是做什么的? Gabo 帮助你更仔细地思考困难的问题。 当你面临一个具有重大后果的决策时——是否进入一个新市场、地缘政治局势可能如何发展、一笔交易是否可靠、对手可能会怎么做——你的直觉通常是先形成一个观点,然后去寻找支持它的信息。这是人的本性,但这也是聪明人最终自信地犯错的原因。 这些不是学术练习。CIA 的《*Tradecraft primer*》将这些技术编撰成了 12 种,因为情报失败总是可以追溯到同样这几个认知陷阱——锚定、确认偏误、镜像思维、群体思维。这些技术旨在让这些陷阱在评估报告发出前暴露出来。 Gabo 自动化了所有这 12 种技术。你给它一个问题,并(可选地)提供证据。它会选择合适的技术,按顺序运行它们(每一个都建立在前一个的基础上),(可选地)让第二个 AI 模型挑战每一个输出,然后将所有内容综合成一个带有支持分析的底线评估。最终结果是一个结构化、有理有据的分析产品——而不是聊天机器人的初步意见。 ### 12 种技术 Gabo 实现了《Tradecraft Primer》中的所有三个类别: **诊断技术**根据证据检验你的推理。*关键假设检查*揭示了你视为理所当然的信念。*竞争性假设分析*将证据与多种解释进行对照,以找出最能经受住审查的解释。*信息质量检查*评估你的信息源是否确实在告诉你你认为它们在告诉你的内容。*指标和标志*建立了一个监控框架,让你知道正在呈现哪种未来。 **逆向技术**挑战主流观点。*魔鬼代言人*针对主流评估构建最强有力的反对理由。*A 团队/B 团队*提出两个对立的论点并让它们正面交锋。*高影响/低概率分析*将所有人都认为不太可能发生的事件拿出来,规划出它们实际上可能如何发生。*如果发生?*假设某个事件已经发生,并反向推导解释是如何发生的。 **想象力技术**探索替代方案。*头脑风暴*通过发散思维产生广泛的假设。*由外而内思考*识别可能重塑该问题的外部力量(社会、技术、经济、环境、政治)。*红队分析*让你站在对手的角度思考。*替代未来*构建一个 2×2 场景矩阵,以开发多种合理的未来。 ### 这与直接询问 LLM 有什么不同? 当你向语言模型询问一个问题时,你会得到一个受模型所学到的任何模式影响的单一视角。Gabo 做的事情有着根本的不同: 它在同一个问题上运行**多个分析框架**,每个框架都旨在揭示不同的东西。假设检查可能会揭示你的整个问题都建立在一个不成立的前提上。ACH(竞争性假设分析)可能会表明,一个你未曾考虑的假设实际上更符合证据。红队可能会暴露你忽略的漏洞。 它使用**对抗性批判**——第二个 AI 模型充当同行评审,在每个技术的输出中挑毛病,而主模型必须为自己的工作辩护或进行修改。这可以捕捉到单个模型在其自身输出中永远不会标记的盲点和懒惰推理。 而且,它可以在分析开始之前,通过并行使用多个研究后端**收集自己的证据**。 ### 这类问题适合它吗? 结构化分析技术是为特定类别的问题设计的:那些风险很高、信息不完整或模棱两可、且理性的人可能会对答案产生分歧的问题。当你需要在不确定性下做出判断,并希望该判断尽可能严谨时,它们最能发挥作用。 **当你询问以下类似问题时,Gabo 是一个不错的选择:** - “这次停火会持续下去吗?”——地缘政治和安全评估,你需要权衡相互冲突的信号,考虑对手的意图,并随着时间的推移跟踪各项指标。 - “我们应该进入这个市场吗?”——战略性商业决策,其中确认偏误是一个真正的风险,你需要在投入资源之前对假设进行压力测试。 - “最可能出现哪些差错?”——针对项目、运营或投资的风险分析,你需要系统地探索失败模式,而不是仅仅抱着侥幸心理。 - “这个行为者接下来可能会做什么?”——竞争情报或对手分析,其中红队演练和替代视角比单一预测更有价值。 - “我们应该如何解释这些相互矛盾的证据?”——任何你有多个来源告诉你不同事情的情况,并且需要一个有原则的框架来权衡它们。 更一般地说,如果你发现自己处于这样一种情况:出错的代价很高,而且你怀疑自己的偏见可能会引导你得出一个让你舒服的答案,那么这些技术正是为这种时刻而构建的。 **Gabo 不适合以下情况:** - 你需要进行事实查询。如果答案是一个已知的量——一个日期、一个定义、一条法规——直接搜索即可。结构化分析对那些具有明确、可验证答案的问题没有任何帮助。 - 你在做常规的总结。如果你需要压缩或翻译文档,通用的 LLM 会做得更快、更便宜。 - 问题纯粹是技术性的。“我该如何配置 Nginx 进行反向代理?”不是一个分析性的判断——它是一个知识检索问题。 - 你需要实时监控。Gabo 生成的是时间点评估。它不是仪表板或警报系统(尽管它的指标技术可以帮助你设计监控框架)。 - 速度比严谨性更重要。包含对抗性批判的完整 12 种技术运行需要耗费时间和 API 调用。如果你在 30 秒内需要一个方向性的快速答案,去问聊天机器人。如果你需要一个可以汇报给决策者的、经得起检验的评估,请运行 Gabo。 ## 许可 Gabo **对个人使用免费**——学生、研究人员、独立分析师,以及任何处理自己问题的人。 如果你的公司或组织希望将 Gabo 用于商业用途,我们希望你能**先联系我们**,以便我们讨论条款并了解你想做什么。[联系我们](https://phyle.io)。 ## 桌面应用 使用 Gabo 的主要方式是通过桌面应用程序。它为你提供了一个可视化工作区,无需接触终端即可配置、运行和查看结构化分析。 ### 开始新的分析 从仪表板中,点击 **New Analysis**。表单将自上而下引导你完成所有操作: 1. **命名你的分析**(可选)——供你参考的简短标签。 2. **写下你的问题**——你希望分析情报问题。这是唯一必填的字段。 3. **提供证据**(可选)——将报告、原始材料或情报直接粘贴到文本区域中。你也可以附加源文档(PDF、DOCX、HTML、图像、URL),Gabo 会自动提取它们。 4. **选择技术**——从可用的 12 种技术中挑选特定技术,或者留空,Gabo 将根据你的问题自动选择。 5. **选择提供商**——选择要使用哪个 LLM 提供商(Anthropic、OpenAI 或 Gemini)。Gabo 会显示哪些提供商配置了有效的 API 密钥。 6. **设置高级选项**——切换网络研究(从外部来源自动收集证据)、对抗性审查(第二个模型批判每个技术输出)和报告生成。 你有两种启动方式: - **Run Analysis** 将你的问题直接送入完整流水线:证据预处理、技术执行、对抗性批判和综合。 - **Gather & Review Evidence** 首先从你的输入和研究提供商那里收集并构建证据,然后让你在运行分析之前整理要包含的内容。当你要在投入完整运行之前检查和过滤证据库时,这非常有用。 ### 观察运行进度 启动后,应用程序会导航到一个实时进度视图。你可以观察流水线每个阶段的执行情况——证据收集、各个技术、对抗性批判回合以及综合分析。实时事件日志显示了后台正在发生的事情。 ### 查看结果 运行完成后,结果视图会显示综合分析(带有核心判断和置信水平的底线评估)以及来自每种技术的可展开发现。每一个产出物——Markdown 报告、结构化 JSON、批判与反驳的交锋——都可以供你查看。 ### 阅读报告 点击进入 **Report View**,查看根据运行产出物渲染的格式化情报报告。你可以打印它、下载 HTML,或者将整个运行导出为包含每个产出物和清单的 ZIP 归档文件。 ### 管理过去的运行 仪表板显示了你最近的分析,以及状态指示器、时间戳和提供商信息。你可以重命名运行、删除它们,或者点击任何已完成的运行以查看其结果。 ## 入门指南 ### 环境要求 - Python 3.11+ - Node.js 18+(用于桌面应用) - 至少一个 LLM 提供商 API 密钥(推荐 Anthropic) **选项 A — 从源码构建(开发)** ``` cd desktop npm install bash dev.sh ``` dev.sh 会创建一个 Python venv,安装依赖项,启动 API 服务器, 并通过热重载启动 Electron。需要 Python 3.11+ 和 Node 18+。 **选项 B — 构建可分发的安装程序 # 1. 构建 Python sidecar(必须在目标平台上运行) python3 scripts/build-sidecar.py # 2. 构建安装程序 cd desktop npm install npm run dist:mac # → dist/Gabo-x.x.x.dmg # 或 npm run dist:win # → dist/Gabo-Setup-x.x.x.exe sidecar 是 FastAPI 后端的 PyInstaller 打包版本——Electron 应用 将其作为子进程启动,因此最终用户无需安装 Python。 ### 安装 Python 后端 ``` python3 -m venv venv source venv/bin/activate pip install -e ".[all]" # all LLM providers ``` 或使用 Makefile: ``` make install ``` ### 配置 API 密钥 你可以使用应用程序中的“设置”按钮来添加 API 密钥。或者,如果你愿意: ``` cp .env.example .env ``` 对于跨模型的对抗性批判,请设置两个或更多提供商的密钥。要进行深度研究,请添加 `PERPLEXITY_API_KEY` 或 `BRAVE_API_KEY`。 ### 运行桌面应用 ``` cd desktop npm install npm run dev ``` 这将以开发模式启动 Electron 应用。该应用会启动一个本地 API 服务器(`sat-api`),前端将通过 HTTP 和 WebSocket 与其进行通信。 ## 接下来计划 最近的版本发布了 Trident 对抗模式(三模型辩论)、LLM 生成的情报报告、通用证据持久化以及整个技术栈的安全强化。即将推出: - 打包好的桌面安装程序(macOS、Windows、Linux) - 跨所有流水线阶段的动态模型选择 ## 命令行 桌面应用所做的一切,也可以通过 `sat` CLI 在终端中完成。 ### 基础分析 ``` sat analyze "Will the ceasefire hold?" ``` Gabo 会自动选择技术,运行对抗性批判,并将结果写入 `sat-/` 目录。 ### 选择特定技术 ``` sat analyze "Will the ceasefire hold?" -t assumptions,ach,devils_advocacy ``` ### 提供证据 ``` # 内联 sat analyze "Will the ceasefire hold?" -e "Reports indicate both sides withdrew heavy weapons..." # 从文件 sat analyze "Will the ceasefire hold?" -f ./reports/ ``` ### 深度研究 ``` sat analyze "Will the ceasefire hold?" --research ``` ### 对抗性批判选项 ``` # 强制指定 challenger provider sat analyze "Question" --challenger-provider openai # 更多轮次的 critique-rebuttal(默认:2) sat analyze "Question" --rounds 4 # 为提高速度禁用 adversarial sat analyze "Question" --no-adversarial ``` ### 列出可用技术 ``` sat list-techniques ``` ### 所有 CLI 标志 | 标志 | 简写 | 描述 | |------|-------|-------------| | `--evidence` | `-e` | 证据文本 | | `--evidence-file` | `-f` | 证据的文件或目录 | | `--techniques` | `-t` | 以逗号分隔的技术 ID | | `--output-dir` | `-o` | 输出目录 | | `--provider` | `-p` | LLM 提供商(默认值:anthropic) | | `--model` | `-m` | 模型标识符 | | `--api-key` | | API 密钥(或设置环境变量) | | `--research` / `--no-research` | `-r` | 收集证据的深度研究 | | `--research-provider` | | `perplexity`、`brave`、`openai_deep`、`gemini_deep`、`llm`、`auto` | | `--research-api-key` | | 研究提供商的 API 密钥 | | `--research-mode` | | `single` 或 `multi`(默认值:multi) | | `--preprocess` / `--no-preprocess` | | 证据预处理(默认值:开启) | | `--evidence-budget` | | context window 的比例(0.0–1.0) | | `--adversarial` / `--no-adversarial` | | 对抗性批判(默认值:开启) | | `--challenger-provider` | | 挑战者 LLM 提供商 | | `--challenger-model` | | 挑战者模型 | | `--rounds` | | 批判-反驳回合数(默认值:2) | | `--config` | `-c` | TOML 配置文件 | | `--verbose` | `-v` | 详细输出 | ### 输出 每次运行都会将带编号的产出物写入 `sat-{run_id}/`: ``` sat-a1b2c3d4/ ├── 01-quality.md ├── 01-quality.json ├── 02-quality-critique.md ├── 02-quality-critique.json ├── 03-quality-rebuttal.md ├── ... ├── NN-synthesis.md ├── NN-synthesis.json └── manifest.json ``` `.md` 文件是易于人类阅读的报告。`.json` 文件经过了 Pydantic 验证,适合编程使用。`manifest.json` 记录了完整的运行配置,以实现可复现性。 ## MCP Server Gabo 内置了一个 MCP server,将其流水线作为工具提供给 LLM 代理和 Claude Desktop 使用。这使得 AI 助手可以作为大型工作流的一部分来进行结构化分析。我们目前还未对此进行过测试... ``` sat-mcp ``` ### 工具 | 工具 | 描述 | |------|-------------| |sat_list_techniques` | 列出所有 12 种技术及其元数据 | | `sat_new_session` | 创建分析会话 | | `sat_next_prompt` | 获取下一个技术的 prompt 和输出 schema | | `sat_submit_result` | 提交技术结果;运行对抗性批判 | | `sat_get_synthesis_prompt` | 在所有技术完成后获取综合 prompt | | `sat_submit_synthesis` | 提交综合结果;将产出物写入磁盘 | | `sat_research` | 运行深度研究以收集证据 | ### MCP 工作流 ``` sat_new_session → sat_next_prompt → [LLM runs prompt] → sat_submit_result ↑ | └───────────── loop until complete ─────────┘ sat_get_synthesis_prompt → [LLM runs synthesis] → sat_submit_synthesis ``` 用于 MCP 配置的环境变量记录在 `.env.example` 中。 ## 工作原理 1. **证据预处理**——检测传入证据的格式,并进行 token 预算调整,以适应模型的 context window。 2. **深度研究**(可选)——如果启用,Gabo 会在分析前查询研究提供商以收集证据。 3. **技术选择**——指定的技术按顺序运行;如果未指定,Gabo 将根据问题自动选择。 4. **顺序执行**——每项技术依次运行,接收问题、证据以及所有先前技术的输出作为 context。 5. **对抗性批判**——挑战者模型审查每个输出,提出结构性的反对意见,主模型进行反驳。此过程重复 N 个回合。 6. **综合**——所有技术结果被综合成一个包含关键判断和置信水平的底线评估。 7. **产出物**——Markdown 和 JSON 产出物将被写入输出目录。 ## 提供商 ### LLM 提供商 | 提供商 | API 密钥变量 | 默认模型 | |----------|-----------------|---------------| | `anthropic`(默认) | `ANTHROPIC_API_KEY` | `claude-opus-4-6` | | `openai` | `OPENAI_API_KEY` | `o3` | | `gemini` | `GEMINI_API_KEY` | `gemini-2.5-pro` | ### 研究提供商 | 提供商 | API 密钥变量 | 备注 | |----------|-----------------|-------| | `perplexity` | `PERPLEXITY_API_KEY` | 带引文的多步骤研究 | | `brave` | `BRAVE_API_KEY` | 网络搜索 | | `openai_deep` | `OPENAI_API_KEY` | OpenAI 深度研究 | | `gemini_deep` | `GEMINI_API_KEY` | Gemini 深度研究 | | `llm` | — | 使用主 LLM(无需额外密钥) | | `auto` | — | 自动选择:perplexity → brave → llm | 在 `multi` 模式(默认)下,所有可用的研究提供商将并行运行。 ## 开发 ``` pip install -e ".[dev]" make test # pytest make lint # ruff check make format # ruff format ``` *由 [Phyle](https://phyle.io) 构建。*
标签:MITM代理, 漏洞挖掘, 逆向工具