我在 CrewAI 中创建了一个自定义工具来请求人类提供信息。我创建这个工具是因为我发现将人类纳入循环情况非常有用。
但我面临一个问题。每次调用该工具以引出人类的一些输入时,前几次我都能给出我的输入。但在那之后的时间里,回复会自动填充我之前给出的回复。这不允许我给出我想要给出的输入。
这就是我的自定义 CrewAI 工具的样子,我已将此工具提供给执行某些任务的代理,并且在需要人工输入或信息的任何情况下,它都会调用此工具。
class AskHumanInputTool(BaseTool):
name: str = "AskHumanInputTool"
description: str = ("""This tool is used for asking a human input.
This tool takes a question as an input and ask the input.
The tool return a the answer received.""")
def _run(self, question_for_human: str) -> str:
human_input = input(question_for_human)
return human_input
我还没有为工具实现任何缓存机制。我还在我的团队中设置了
cache=False
。我该如何解决这个问题?
我不确定是否是因为生成了
__pycache__
文件夹来缓存输入响应
如何解决这个问题?我正在尝试构建一个多代理系统。
您需要在您的工具中实现
cache_function
。 默认情况下,它是一个始终返回 True 的 lambda 函数。只需将以下内容添加到您的 AskHumanInputTool
中,缓存就会消失:
def cache_function(*args):
return False