Token导航 LogoToken导航TokenDH.com
agora (Lagameon) logo
AI代理未说明官方级别未说明来源级核验

agora (Lagameon)

MCP Server

Agora是一个多代理圆桌讨论工具,支持通过CLI和MCP服务器集成进行多模型AI代理的并行讨论与综合答案生成。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
多模型支持TypeScriptClaude命令行工具Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lagameon

提供方

lagameon

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

广场

多代理圆桌讨论工具。发布一个问题,多个AI代理从不同的角度进行讨论,合成器会产生最终答案。

作为一个 CLI工具 作为一个 MCP服务器 用于Claude Code集成。

特性

  • 多代理讨论 --具有不同角色和模型的可配置AI代理面板
  • 多供应商 --Anthropic、OpenAI、谷歌双子座、DeepSeek、xAI/Grok、Ollama(本地)
  • YAML预设 --使用定义自定义代理面板 {{topic}} 模板插值
  • 同期第一轮 --所有小组成员并行响应,快约50%
  • 快速缓存 --人类学 cache_control 缓存令牌的成本降低了约90%
  • 讨论历史 --SQLite持久化 bun:sqlite,可查询和可回放
  • MCP服务器 --与Claude Code集成,用于按需AI圆桌会议
  • 流输出 --实时流媒体彩色编码终端渲染

快速开始

先决条件

  • 包子 运行时(v1.0+)
  • 至少一个LLM API密钥

安装

git clone https://github.com/lagameon/agora.git
cd agora
bun install

配置API密钥

创建一个 .env 项目根目录中的文件:

cp .env.example .env
# Edit .env with your API keys
# At least one required
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=AI...

# Optional
DEEPSEEK_API_KEY=sk-...
XAI_API_KEY=xai-...
OLLAMA_BASE_URL=http://localhost:11434/v1
注: 默认预设使用 gpt-4.1-mini --set OPENAI_API_KEY 快速开始。这 research 预设使用Claude+GPT+Gemini,需要所有三个密钥。

# Quick single-model query
bun run src/cli.ts ask "What is quantitative trading?"

# Roundtable discussion (default preset: 3 agents)
bun run src/cli.ts discuss "React vs Vue in 2026?"

# Use a specific preset
bun run src/cli.ts discuss "Should AI replace most programming jobs?" --preset debate

CLI命令

agora ask  [--model ]     Quick single-model query
agora discuss  [options]             Run a roundtable discussion
agora presets                               List available presets
agora history [--id ]                   View discussion history
agora mcp                                   Start MCP server (stdio)

选项

标志描述默认值
--model 型号 ask 命令gpt-4.1-mini
--preset 预设为 discuss 命令default
--rounds 最多讨论轮次2

例子

# Ask with a specific model
bun run src/cli.ts ask "Explain transformers" --model claude-sonnet-4-5

# Research panel (Claude + GPT + Gemini)
bun run src/cli.ts discuss "Will the US dollar lose reserve currency status?" --preset research

# Adversarial debate with 3 rounds
bun run src/cli.ts discuss "Cryptocurrency is the future of money" --preset debate --rounds 3

# View discussion history
bun run src/cli.ts history
bun run src/cli.ts history --id 

内置预设

预设描述代理型号
默认平衡三代理面板分析师+评论家+合成器gpt-4.1-mini
研究深度研究小组领域专家+方法论专家+反向器+合成器克劳德十四行诗+GPT-4.1+双子座闪电侠
辩论对抗性辩论支持者+对手+裁判GPT-4.1+克劳德·索内特

自定义预设

预设从三个目录加载(最高优先级优先):

优先级目录范围
1./.agora/presets/项目本地(每个回购)
2~/.agora/presets/用户全局(共享)
3/presets/内置

相同名称的预设被更高的优先级遮挡。这允许每个项目覆盖全局默认值。

在中创建YAML文件 ~/.agora/presets/ (全球)或 .agora/presets/ 在项目根目录(项目本地)中:

name: "My Team"
description: "Custom panel for technical decisions"
maxRounds: 2

agents:
  - id: architect
    name: "The Architect"
    role: panelist
    model: claude-sonnet-4-5
    systemPrompt: |
      You are a software architect evaluating: {{topic}}.
      Focus on system design, scalability, and long-term maintainability.
    temperature: 0.6
    maxTokens: 1024

  - id: pragmatist
    name: "The Pragmatist"
    role: panelist
    model: gpt-4.1
    systemPrompt: |
      You are a pragmatic engineer evaluating: {{topic}}.
      Focus on implementation complexity, developer experience, and time-to-ship.
    temperature: 0.7
    maxTokens: 1024

  - id: synthesizer
    name: "Decision Maker"
    role: synthesizer
    model: claude-sonnet-4-5
    systemPrompt: |
      Synthesize the discussion about: {{topic}}.
      Weigh all perspectives and produce an actionable recommendation.
    temperature: 0.3
    maxTokens: 2048

另存为 ~/.agora/presets/my-team.yaml那么:

bun run src/cli.ts discuss "Should we migrate to microservices?" --preset my-team

预设架构

字段类型必填描述
namestring显示名称
descriptionstring描述
maxRoundsnumberNo最大讨论轮次(默认:2,最大:10)
agentsarray至少2个代理,其中一个必须是 synthesizer

代理架构

字段类型必填描述
idstring唯一标识符
namestring显示名称
rolestringpanelist, moderator,或 synthesizer
modelstring型号标识符(请参阅支持的型号)
systemPromptstring系统提示,支持 {{topic}}
temperaturenumber0-2(默认值:0.7)
maxTokensnumberNo最大响应令牌(默认值:1024)

支持的型号

前缀提供者示例
claude-*人类学claude-sonnet-4-5, claude-haiku-4-5
gpt-*OpenAIgpt-4.1, gpt-4.1-mini
o1-* / o3-* / o4-*OpenAIo3-mini, o4-mini
gemini-* 谷歌 gemini-2.5-flash, gemini-2.5-pro
deepseek-*DeepSeekdeepseek-chat, deepseek-reasoner
grok-*xAIgrok-3
ollama:*Ollama(当地)ollama:llama3, ollama:mistral

MCP服务器(克劳德代码集成)

Agora可以作为MCP服务器运行,允许Claude Code按需调用AI圆桌会议。

配置

添加到您的项目 .mcp.json (或 ~/.claude/mcp.json 全球访问):

{
  "mcpServers": {
    "agora": {
      "command": "bun",
      "args": ["run", "/path/to/agora/src/mcp.ts"]
    }
  }
}
API密钥应在shell环境中设置,或通过 env 现场。

MCP工具

工具说明
agora_discuss(topic, preset?, maxRounds?)进行圆桌讨论
agora_ask(question, model?)快速单模型查询

MCP资源

URI描述
agora://presets列出所有可用的预设
agora://history最近讨论列表
agora://discussions/{id}完整讨论记录

Claude代码中的用法

自然地问克劳德:

  • *“使用agora讨论React与Vue”*
  • *“举办一个关于量子计算未来的集市研究小组”*
  • *“请问agora:什么是MCP协议?”*

建筑

Question ──→ Round 1 (concurrent): All panelists respond in parallel
               │
               ▼
             Round 2+ (sequential): Each agent sees all prior responses
               │
               ▼
             Synthesizer: Produces final answer from full discussion
               │
               ▼
             SQLite: Discussion saved automatically

关键设计决策

  • 无郎链 --直接SDK调用,实现对提示缓存和流媒体的完全控制
  • 异步发电机发动机 --CLI、MCP服务器和历史存储都使用相同类型的事件流
  • 提供商前缀路由 --模型名称前缀决定使用哪个SDK
  • 拟人提示缓存cache_control 系统提示和累积上下文上的标题可降低约90%的成本
  • 第一轮同时进行Promise.allSettled 并行解雇所有小组成员(无需事先了解背景),速度提高约50%
  • 面包:sqlite --零依赖持久性(内置于Bun中),两个表: discussionsmessages

项目结构

agora/
├── src/
│   ├── cli.ts                    # CLI entry point
│   ├── index.ts                  # Library public API
│   ├── mcp.ts                    # MCP server (stdio transport)
│   ├── config/
│   │   ├── schema.ts             # Zod schemas for validation
│   │   ├── loader.ts             # YAML preset loader
│   │   └── defaults.ts           # Default settings
│   ├── providers/
│   │   ├── router.ts             # Model prefix → provider factory
│   │   ├── types.ts              # ChatProvider interface
│   │   └── retry.ts              # Exponential backoff
│   ├── agents/
│   │   ├── types.ts              # Agent types
│   │   └── presets.ts            # Built-in default preset
│   ├── roundtable/
│   │   ├── engine.ts             # Core discussion engine
│   │   ├── protocol.ts           # Round logic & concurrency
│   │   ├── context.ts            # Message building + prompt caching
│   │   └── types.ts              # Event types
│   ├── history/
│   │   └── store.ts              # bun:sqlite persistence
│   └── output/
│       └── terminal.ts           # Color-coded terminal renderer
└── presets/
    ├── default.yaml              # Balanced 3-agent panel
    ├── research.yaml             # Deep research panel
    └── debate.yaml               # Adversarial debate

程序化API

Agora可以用作图书馆:

import { runRoundtable, loadPreset, interpolateConfig } from 'agora';

const topic = "Should we use GraphQL or REST?";
const config = interpolateConfig(loadPreset('default'), topic);

for await (const event of runRoundtable(topic, config)) {
  if (event.type === 'agent_done') {
    console.log(`${event.agentName}: ${event.fullResponse}`);
  }
  if (event.type === 'synthesis_done') {
    console.log(`Final answer: ${event.answer}`);
  }
}

数据存储

讨论历史记录存储在 ~/.agora/agora.db (SQLite)。此目录在首次运行时自动创建。

  • 讨论可通过以下方式查询 agora history
  • 完整成绩单可通过 agora history --id
  • 数据库仅在本地,从不传输到任何地方

许可证

麻省理工学院

目录标签

目录标签

多模型支持TypeScriptClaude命令行工具多代理讨论本地部署AI协作CLI工具MCP服务器

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP