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

我想问一下TOOL_REGISTRY是否可以有个命名空间隔离呢? #431

Closed
DAAworld opened this issue Jan 3, 2025 · 8 comments
Closed

Comments

@DAAworld
Copy link

DAAworld commented Jan 3, 2025

from qwen_agent.tools.base import TOOL_REGISTRY
比如我写了一个服务,注册了工具,如果其他人也有同名的工具传过来,那岂不是会冲突?有没有什么方法可以隔离不同用户的TOOL_REGISTRY?

@tuhahaha
Copy link
Collaborator

tuhahaha commented Jan 3, 2025

您好,这里tool_name是tool的唯一id。目前在agent的默认设定里,如果指定了重名的tool,会使用靠后给的(最新的)tool,因为llm也需要通过tool的name来选定用哪个工具,所以建议是不要有重名的工具。请问是在什么场景里会存在重名工具呢?

@tuhahaha
Copy link
Collaborator

tuhahaha commented Jan 3, 2025

如果一定要隔离的话,建议可以通过给tool name加一个uid prefix来实现,本质也是tool不重名。另外,如果是多用户,建议给每个用户初始化一个agent,就可以避免冲突了。

@DAAworld
Copy link
Author

DAAworld commented Jan 6, 2025

您好,这里tool_name是tool的唯一id。目前在agent的默认设定里,如果指定了重名的tool,会使用靠后给的(最新的)tool,因为llm也需要通过tool的name来选定用哪个工具,所以建议是不要有重名的工具。请问是在什么场景里会存在重名工具呢?

比如说服务化部署qwen-agent,别人传参过来的工具就有可能是重复的。

@DAAworld
Copy link
Author

DAAworld commented Jan 6, 2025

如果一定要隔离的话,建议可以通过给tool name加一个uid prefix来实现,本质也是tool不重名。另外,如果是多用户,建议给每个用户初始化一个agent,就可以避免冲突了。

加uid prefix会影响LLM对使用的tool的判断嘛?

@tuhahaha
Copy link
Collaborator

tuhahaha commented Jan 6, 2025

  1. 限制每个用户自己传的tools不重名,每个用户单独实例化一个agent,就不会存在重复
  2. 加uid_prefix没批量测试过效果,比较短的话应该不影响

@DAAworld
Copy link
Author

DAAworld commented Jan 6, 2025

TOOL_REGISTRY

实例化agent可以,但是执行时候获取工具类,TOOL_REGISTRY是个全局的呀。

@tuhahaha
Copy link
Collaborator

tuhahaha commented Jan 6, 2025

可以尝试下不注册进TOOL_REGISTRY,直接把name写到tool class,传tool的实例给agent

@DAAworld
Copy link
Author

DAAworld commented Jan 7, 2025

可以尝试下不注册进TOOL_REGISTRY,直接把name写到tool class,传tool的实例给agent

感谢,能够实现,谢谢。

@DAAworld DAAworld closed this as completed Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants