Description: The Agent Chat View node fails to call a tool that uses the Presidio nodes. This behaviour is not observed with the Agent Prompter node, which is able to call the tool with the Presidio Anonymizer without problems.
Why is this relevant? Because I want the agent to use a tool that looks into the data cells, and for that, anonymizing the data that the agent sees would be useful.
Steps to reproduce:
- Create a tool that anonymize some data (e.g., the name of a person) and pass the anonymized data to the Tool Message Output node.
- Give the tool to the Agent Chat View and ask the agent for the names of the people in the table.
Actual results:
The Agent Chat View tries to call the tool but the debug mode shows that the Presidio Anonymizer fails.
This is the error I get:
Execute failed: An error occurred while calling o9.create_filestore_file. : java.lang.IllegalStateException: File store on node Agent Chat View 13:2044 is read only/closed at org.knime.core.node.util.CheckUtils.checkState(CheckUtils.java:266) at org.knime.core.node.util.CheckUtils.checkState(CheckUtils.java:165) at org.knime.core.data.filestore.internal.WriteFileStoreHandler.addToDuplicateChecker(WriteFileStoreHandler.java:270) at org.knime.core.data.filestore.internal.WriteFileStoreHandler.createFileStore(WriteFileStoreHandler.java:262) at org.knime.core.data.filestore.internal.ReferenceWriteFileStoreHandler.createFileStore(ReferenceWriteFileStoreHandler.java:117) at org.knime.core.node.ExecutionContext.createFileStore(ExecutionContext.java:238) at org.knime.core.data.filestore.FileStoreFactory$WorkflowFileStoreFactory.createFileStore(FileStoreFactory.java:174) at org.knime.python3.nodes.CloseablePythonNodeProxy$3.create_filestore_file(CloseablePythonNodeProxy.java:374) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) at py4j.Gateway.invoke(Gateway.java:282) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.ClientServerConnection.sendCommand(ClientServerConnection.java:244) at py4j.CallbackClient.sendCommand(CallbackClient.java:384) at py4j.CallbackClient.sendCommand(CallbackClient.java:356) at py4j.reflection.PythonProxyHandler.invoke(PythonProxyHandler.java:106) at jdk.proxy7/jdk.proxy7.$Proxy84.execute(Unknown Source) at org.knime.python3.nodes.CloseablePythonNodeProxy.execute(CloseablePythonNodeProxy.java:547) at org.knime.python3.nodes.DelegatingNodeModel.lambda$4(DelegatingNodeModel.java:201) at org.knime.python3.nodes.DelegatingNodeModel.runWithProxy(DelegatingNodeModel.java:262) at org.knime.python3.nodes.DelegatingNodeModel.execute(DelegatingNodeModel.java:199) at org.knime.core.node.NodeModel.executeModel(NodeModel.java:605) at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1330) at org.knime.core.node.Node.execute(Node.java:1037) at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:617) at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:98) at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:201) at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:120) at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:369) at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:223) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:125) at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:252)
Expected results:
The Agent Chat View calls the tool correctly and displays the anonymized entities in the chat. This is what happens if the tool is called by the Agent Prompter node (see second screenshot).
Attachments:
OS:
Windows 11 Pro