返回市场
视觉推理

视觉推理

作者:waldzellai70 星标更新:2025-09-30

项目介绍

视觉推理MCP服务器

动机

语言模型本质上基于文本操作,这限制了它们处理人类通常通过空间、图表或视觉思考来解决的问题的能力。当前模型在以下方面存在困难:

  1. 维护和操作复杂的空间关系
  2. 视觉化多步骤转换或过程
  3. 创建并更新抽象概念的可视化表示
  4. 推理具有许多相互连接组件的系统
  5. 识别在视觉形式中明显但在文本中晦涩的模式

视觉推理服务器提供了模型创建、操作和推理显式可视化表示的能力。通过外部化视觉思维,模型可以解决受益于图解推理的复杂问题,就像数学符号扩展了人类计算能力一样,超越了纯文本。

技术规范

工具接口

interface VisualElement {
  id: string;
  type: "node" | "edge" | "container" | "annotation";
  label?: string;
  properties: {
    [key: string]: any; // 位置、大小、颜色等
  };
  // 对于边
  source?: string; // 源元素ID
  target?: string; // 目标元素ID
  // 对于容器
  contains?: string[]; // 包含的元素ID
}

interface VisualOperationData {
  // 操作详情
  operation: "create" | "update" | "delete" | "transform" | "observe";
  elements?: VisualElement[];
  transformationType?: "rotate" | "move" | "resize" | "recolor" | "regroup";
  
  // 视觉图元数据
  diagramId: string;
  diagramType: "graph" | "flowchart" | "stateDiagram" | "conceptMap" | "treeDiagram" | "custom";
  iteration: number;
  
  // 关于图元的推理
  observation?: string;
  insight?: string;
  hypothesis?: string;
  
  // 下一步骤
  nextOperationNeeded: boolean;
}

过程流程

sequenceDiagram
    participant Model
    participant VisServer as Visual Reasoning Server
    participant State as Visual State
    
    Model->>VisServer: 创建初始节点(操作=create)
    VisServer->>State: 初始化视觉表示
    VisServer-->>Model: 返回视觉渲染+状态
    
    Model->>VisServer: 添加连接(操作=create,类型=edge)
    VisServer->>State: 使用新边更新
    VisServer-->>Model: 返回更新后的视觉+状态
    
    Model->>VisServer: 分组相关元素(操作=transform,类型=regroup)
    VisServer->>State: 使用新的分组更新
    VisServer-->>Model: 返回更新后的视觉+状态
    
    Model->>VisServer: 关于模式进行观察(操作=observe)
    VisServer->>State: 记录当前状态的观察
    VisServer-->>Model: 返回带有观察的视觉
    
    Model->>VisServer: 根据洞察进行更新(操作=update)
    VisServer->>State: 修改视觉元素
    VisServer-->>Model: 返回最终视觉+状态

主要特性

1. 多模态表示系统

服务器支持不同的视觉表示类型:

  • 图形:用于关系网络和连接模式
  • 流程图:用于过程和顺序操作
  • 状态图:用于系统状态和转换
  • 概念图:用于知识组织和关系
  • 树形图:用于层次结构

2. 抽象视觉元素操作

模型可以通过操作来操作视觉元素:

  • 创建:向视觉空间添加新元素
  • 更新:修改现有元素
  • 删除:移除元素
  • 变换:对多个元素应用操作(重新分组、重组)
  • 观察:关于视觉模式进行观察并记录

3. 迭代细化

服务器跟踪迭代历史,允许模型:

  • 查看其视觉表示如何演变
  • 如有需要,回退到先前的状态
  • 比较不同的可视化方法

4. 视觉-语言集成

服务器实现了双向翻译:

  • 语言描述与视觉表示之间
  • 视觉模式与语言洞察之间
  • 图解推理与文本结论之间

5. 视觉输出

服务器提供多种表示:

  • ASCII艺术用于终端可视化
  • SVG或DOT格式用于更复杂的图表
  • 文本描述视觉状态以提高可访问性

使用示例

系统架构设计

模型可以创建和操作显示数据流、依赖关系和系统组件间交互的组件图。

算法可视化

在设计或解释算法时,模型可以创建流程图、状态图或执行的视觉轨迹。

概念映射

对于组织复杂的知识领域,模型可以创建和优化展示想法间关系的概念图。

模式识别

在分析数据时,模型可以创建视觉表示来识别可能难以通过文本检测的模式。

实现

该服务器使用TypeScript实现:

  • 核心VisualReasoningServer类
  • 灵活的视觉元素表示系统
  • 多个渲染后端(ASCII、SVG、DOT)
  • 状态历史跟踪以进行迭代细化
  • 通过stdin/stdout的标准MCP服务器连接

实现利用现有的图形可视化库(如Graphviz用于DOT输出或自定义ASCII艺术生成)在文本界面的约束内提供丰富的视觉反馈。

此服务器显著增强了模型在视觉或空间思考提供天然优势领域的功能。

工具

visualReasoning

通过创建和操作图元来促进视觉思考。

配置

与Claude Desktop一起使用

在您的claude_desktop_config.json中添加以下内容:

npx

{
  "mcpServers": {
    "visual-reasoning": {
      "command": "npx",
      "args": [
        "-y",
        "@waldzellai/visual-reasoning"
      ]
    }
  }
}

docker

{
  "mcpServers": {
    "visual-reasoning": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "cognitive-enhancement-mcp/visual-reasoning"
      ]
    }
  }
}

构建

Docker:

docker build -t cognitive-enhancement-mcp/visual-reasoning -f packages/visual-reasoning/Dockerfile .

许可证

此MCP服务器根据MIT许可证授权。