内容
# 对抗
最好的想法是在挑战中锻造的。人们知道这一点:我们争论,我们反驳,留下的东西更加锋利。人工智能聊天跳过了这一步。它自己思考,往往同意你的观点。对抗把挑战带回来了。当你提示时,一个或多个人工智能辩论者站在另一边,与你的助手争论,这样你得到的答案已经经过测试。
它作为MCP服务器运行。你需要提供自己的API密钥。
## 工作原理
1. 你开启对抗模式并提出一个问题。
2. 你的助手写下自己的立场并将其发送给辩论者。
3. 每个辩论者以自己的立场回复,并表示“继续”或“已解决”。
4. 每轮结束后,你的助手总结双方的立场,回答挑战,并进行另一轮,直到辩论结束。
5. 你的助手回复一个简短、有结构的总结:立场及其最强的论点,辩论的结果,以及推荐。
辩论会进行多轮,直到结束。轮数限制可以防止它无限进行。
## 安装
### 最简单:一键安装(Claude Desktop)
无需Node,无需配置文件,无需终端。
1. 从[最新版本](https://github.com/a1ex-bb/kontra/releases/latest)下载`kontra.mcpb`。
2. 打开Claude Desktop,进入设置,然后进入扩展。
3. 将`kontra.mcpb`拖入窗口(或双击文件)。
4. 在提示时,将你的API密钥粘贴到框中,然后打开它。
Claude Desktop捆绑了所有内容,并将你的密钥存储在操作系统的安全存储中。
### 其他MCP客户端(Claude Code、Cursor等)
对抗是一个标准的MCP服务器,因此它适用于任何MCP客户端。你需要Node 18或更新版本。将以下服务器条目添加到客户端的MCP配置中,然后重启客户端:
```json
{
"mcpServers": {
"kontra": {
"command": "npx",
"args": ["-y", "mcp-kontra"],
"env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
}
}
}
```
每个客户端存储配置的位置:
| 客户端 | 配置 |
| --- | --- |
| Claude Code | 项目中的`.mcp.json`,或运行`claude mcp add` |
| Cursor | `.cursor/mcp.json` |
| Claude Desktop(手动) | 设置,然后是开发者,然后是编辑配置 |
| Windsurf、Cline等 | 该客户端的MCP设置文件 |
一些客户端(例如VS Code的内置MCP支持)使用`servers`键代替`mcpServers`。`command`、`args`和`env`保持不变。
你从一个辩论者开始:一个无情的反对者在Claude Opus 4.8上。
## 你的API密钥
对抗永远不会通过聊天获取密钥。它只从环境变量中读取密钥,可以通过两种方式设置:
- 一键安装:在安全表单中输入密钥。由操作系统存储,而不是存储在文件中。
- 其他客户端:在上面的服务器条目中的`env`块中输入密钥。
几点说明:
- 你只需要辩论者实际使用的提供商的密钥。默认情况下,只有Anthropic(Claude),所以你只会被要求提供一个密钥,而不是三个。
- 如果缺少密钥,对抗会告诉你的助手添加哪个单独的密钥,你的助手会在聊天中向你询问。
- 不要提交包含真实密钥的配置文件。
- 添加或更改密钥后,请重启客户端。
## 使用它
说“开启对抗模式”,然后提问。要改变辩论,只需用普通语言提问,你的设置将被保存,直到你更改它。你可以设置角色、辩论者数量(最多5个)、每个辩论者的提供商和模型,以及轮数限制(最多12个)。
## 示例
从快速检查到更大的调用,使用真实的提示。你可以使用默认的挑战者,也可以设置自己的小组。
### 产品和工程
> 开启对抗模式。计划通过60秒缓存修复缓慢的仪表板。在我构建之前,我会错过什么?
> 开启对抗模式。打算将这个容易出错的测试标记为跳过,以便CI停止阻塞团队。劝阻我。
### 商业
> 开启对抗模式。即将流失的客户要求20%的折扣来继续,我想同意。反驳另一方。
> 开启对抗模式。有一个持怀疑态度的CFO和一个有增长意识的销售主管,争论是否应该提供净60天的付款条件来获得一笔大订单。
### 个人
> 开启对抗模式。即将签署一份12个月的租赁,占用我收入的40%。在承诺之前请反驳。
> 开启对抗模式。这是给一直取消我的朋友的消息草稿。我希望在发送前更改什么?
## 提供商
选择任何辩论者的提供商。设置匹配的密钥(在“一键安装”表单中,或作为环境变量)。
| 提供商 | API密钥 | 示例模型 |
| --- | --- | --- |
| anthropic | `ANTHROPIC_API_KEY` | claude-opus-4-8(默认),claude-sonnet-4-6 |
| openai | `OPENAI_API_KEY` | gpt-5.5(默认),gpt-5.4-mini |
| google | `GEMINI_API_KEY` | gemini-3.5-flash(默认),gemini-2.5-pro |
提供商提供的任何模型都可以使用。如果你命名一个不存在的模型,对抗会告诉你,以便你进行修复。
## 工具
- `debate_status`:显示你保存的辩论者、模型、轮数限制和已设置的密钥。
- `configure_debate`:更改并保存设置。
- `challenge`:运行一轮辩论。
你的助手为你调用这些。你只需要和它聊天。
## 设置保存位置
对抗将你的设置保存到`~/.kontra/config.json`。使用`KONTRA_CONFIG`环境变量指向其他位置。
## 开发
```sh
git clone https://github.com/a1ex-bb/kontra.git
cd kontra
npm install
npm run build # 将TypeScript编译到dist/
npm run bundle # 为一键安装构建kontra.mcpb
```
在浏览器中使用MCP Inspector尝试这些工具。设置你想要使用的提供商的密钥。仅Anthropic就足以应对默认的辩论者;如果你在其他提供商上配置辩论者,只需添加它们:
```sh
ANTHROPIC_API_KEY=sk-ant-... npm run inspect
# 添加OPENAI_API_KEY=...和/或GEMINI_API_KEY=...如果你使用它们
```
## 许可证
MIT