You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Agentset创建农场与Peer相似度列表的代码问题求助

问题分析与解决方案

核心问题:相似度列表长度与Peer数量不匹配

你的代码出现长度异常的核心原因有两点:

  1. myself上下文切换错误:外层ask farms中myself指向当前farm,但进入内层ask [peers] of myself后,myself的上下文会切换为被调用的peer智能体,而非发起计算的原farm。这导致你错误地使用了peer自身的rotation参与计算,甚至可能因部分peer的peers集合为空,无法生成对应得分项,最终造成similarity列表长度异常。
  2. 欧氏距离计算逻辑错误:你当前的代码是计算向量元素乘积之和的平方根,这是向量的L2范数(模长),并非欧氏距离。正确的欧氏距离应先计算每个维度的差值平方,求和后再开根号。

修复后的代码实现

推荐使用map遍历peers(无需嵌套ask),既避免上下文混淆,又保证计算效率:

解决得分与Peer顺序匹配的问题

NetLogo的Agentset是无序集合,每次ask的执行顺序随机。要保证得分与peer一一对应且顺序固定,可采用两种方案:

  • 将peers存储为列表:在setup阶段,直接把每个farm的peers存为列表(比如set peers sort link-neighbors),后续计算时直接遍历该列表,顺序完全固定。
  • 动态转为有序列表:每次计算前用sort指令对peers集合排序(基于智能体的who编号或自定义规则),确保生成的列表顺序一致,得分与peer的对应关系稳定。

内容的提问来源于stack exchange,提问作者Bartosz Bartkowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 14:23:13