返回市场
人机交互循环

人机交互循环

作者:KOBA789212 星标更新:2025-07-02

项目介绍

人工介入循环MCP服务器

这是一个允许AI助手通过Discord向人类提问的MCP(模型上下文协议)服务器。

<img width="845" alt="2025-06-23 18-25-43的屏幕截图" src="https://gips0.baidu.com/it/u=2936780064,2450954924&fm=3081&app=3381&f=PNG?w=1690&h=1116" />

概述

当AI助手在工作中需要人类输入或判断时,会使用此MCP服务器。例如:

  • 当生成文档时,AI设计结构而人类提供具体内容
  • 当AI需要确认不确定的决策时
  • 当需要专门知识或个人信息时

要求

  • Rust(1.70或更高版本)
  • Discord账户和机器人
  • 兼容MCP的AI客户端(如Claude Desktop、Copilot Edits等)

设置

1. 创建Discord机器人

  1. 访问Discord开发者门户
  2. 创建一个新的应用
  3. 在“机器人”部分创建一个机器人并获取令牌
  4. 设置所需权限:
    • 发送消息
    • 创建公共线程
    • 阅读消息历史
  5. 在“机器人”部分启用特权网关意图:
    • 消息内容意图

2. 安装

cargo install --git https://github.com/KOBA789/human-in-the-loop.git

连接至MCP客户端

Claude Desktop配置

claude_desktop_config.json中添加以下内容:

{
  "mcpServers": {
    "human-in-the-loop": {
      "command": "human-in-the-loop",
      "args": [
        "--discord-channel-id", "channel-id",
        "--discord-user-id", "user-id"
      ],
      "env": {
        "DISCORD_TOKEN": "your-discord-bot-token"
      }
    }
  }
}

Claude Code配置

对于Claude Code(claude.ai/code),在您的MCP设置中添加:

{
  "mcpServers": {
    "human-in-the-loop": {
      "command": "human-in-the-loop",
      "args": [
        "--discord-channel-id", "channel-id",
        "--discord-user-id", "user-id"
      ]
    }
  }
}

在运行Claude Code之前,将Discord令牌设置为环境变量:

export DISCORD_TOKEN="your-discord-bot-token"
claude

注意:服务器会自动从DISCORD_TOKEN环境变量中读取Discord令牌。如果需要,也可以通过--discord-token参数传递它。

使用方法

AI助手可以使用ask_human工具向人类提问:

Human: 请创建一份文档大纲。您可以根据需要向人类提问。
Assistant: 我将创建一份文档大纲。让我先问您一些问题。
[使用ask_human工具]

AI会在Discord中发布问题,并提及指定用户。当用户在Discord中回复时,回复内容会被返回给AI助手。

工作原理

  1. AI助手调用ask_human工具
  2. MCP服务器在指定的Discord频道中创建一个线程(或使用现有线程)
  3. 发布问题并提及指定用户
  4. 等待用户的回复
  5. 将回复内容返回给AI助手

查找Discord ID

获取频道ID

  1. 在Discord中启用开发者模式(设置 → 高级 → 开发者模式)
  2. 右键点击频道 → “复制ID”

获取用户ID

  1. 右键点击用户 → “复制ID”

发展路线图

  • 未来迁移到MCP引出功能:一旦MCP的引出功能实现变得更加普及和标准化,我们计划将UI从Discord迁移至原生的MCP引出功能。这将在兼容MCP的客户端内提供更集成的体验。