← 全部工具

2nd-opinion-cli

热度 70 更新于 开发与构建

Second Opinion: a cross-referencing debate CLI where two frontier models debate, a cheaper judge rules, orchestrates, and synthesizes.

pypiauto-collected

安装

暂未验证可直接使用的安装命令,请查看项目官方文档或 Release。

Second Opinion

A cross-referencing debate CLI. Two frontier debater models (e.g. Opus 4.8, GPT 5.2) independently answer your question, then debate it — critiquing and rebutting each other with evidence and live web search. A separate, cheaper judge model (e.g. Sonnet 4.6) rules on each round, asks clarifying questions when needed, and synthesizes the final answer with a stated confidence and any unresolved disagreement.

Every question debates by default. For a simple lookup where you don't need a second opinion, prefix it with ! (or pass --direct) to get a single direct answer from the judge — one cheap call, no debate.

Agreement is the stop condition, not a correctness proof. Two models can be confidently and identically wrong, and the judge is a single point of bias — so every ruling is rationale-backed and the final answer states its confidence.

Install

Requires Python 3.12+.

uv tool install 2nd-opinion-cli   # recommended — isolated, global `2op`
pipx install 2nd-opinion-cli      # same idea, via pipx
uvx --from 2nd-opinion-cli 2op    # run once without installing

Set your keys (ANTHROPICAPIKEY / OPENAIAPIKEY) in the environment, or run 2op apikey to store them.

Usage

Run 2op to open an interactive session. Type a question to run a full debate, prefix it with ! for a direct single-judge answer (no debate), or use a slash command — type / for an autocompleting palette:

| Command | Description | |-----------|-------------| | /help | List commands | | /models | Choose the debater/judge models and save them | | /apikey | View (masked) and add/update API keys | | /status | Show current models, keys, and flags | | /clear | Clear the screen | | /exit | Leave the session (or Ctrl-D) |

For scripting, 2op -q "your question" runs a single debate and exits (as does any piped/non-TTY run). Set slots inline:

2op --debater-a opus-4.8 --debater-b gpt-5.2 --judge sonnet-4.6 -v -q "…"

Configuration

Model selection is saved after the first run to ~/.config/secondop/config.json and reused silently. Re-choose with /models (or -m at launch), or override a single slot with --debater-a / --debater-b / --judge.

API keys are read from the environment or a .env file first, then from the config file (set via /apikey). Environment/.env values take precedence.

Develop

python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env   # then add your keys
pytest