Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 解决工具调用,同一个工具调用多次,相同参数的值被后面覆盖的问题 #3372

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

CocoDuan2
Copy link

工作流:
image
插件配置:
image

问题:
当工具调用该插件多次时,前面的参数会被覆盖

查询10月和11月份的数据
但是执行的时候,month参数都是取的11月
17339035912729
image
image

使用 map 返回新数组而不是 forEach 修改原数组
创建新的节点对象 { ...node, isEntry: true }
复制 inputs 数组 [...node.inputs]
复制原始节点数组 [...workflowProps.runtimeNodes]
使用 initToolNodes 返回的新数组
将新数组传递给 dispatchWorkFlow
这样修改后,每次工具执行都会使用全新的节点对象,而不是共用同一个对象。这就能确保第一次和第二次执行时看到的是各自正确的参数值,而不是都显示第二次的参数。
Copy link

cla-assistant bot commented Dec 11, 2024

CLA assistant check
All committers have signed the CLA.

@c121914yu
Copy link
Collaborator

这会带来另外的问题,由于生成了新的对象,原本 runtimeNodes 就无法存储最终的结果了,导致后续节点会无法拿到工具的结果。

@c121914yu
Copy link
Collaborator

我观察了下,后续确实是没法用工具运行的结果(不过这个未来肯定会支持),之前改成同一个 runTimeNodes 对象,似乎是因为不再一个池子里,会遇到数据不同步问题,暂时想不起来的。
似乎最有效解法就是,不要并行执行,改成一串行~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants