为什么需要@ToolMemoryId注解,当我在源代码中只看到@memoryid被设置为带有@ToolMemoryId注解的字段,而它实际上并没有在ToolExecutor#execute中使用?您能解释一下这个设计背后的理念吗?谢谢!
y1aodyip1#
你好,@Fj-ivy。我不确定我是否理解你的问题。@ToolMemoryId 注解用于 DefaultToolExecutor 和 ToolSpecifications。或者问题是:如果我们可以像这样重复使用相同的 @MemoryId 注解,为什么我们需要一个新的(@ToolMemoryId)注解?
@ToolMemoryId
DefaultToolExecutor
ToolSpecifications
@MemoryId
interface Assistant { String chat(@MemoryId int memoryId, @UserMessage String userMessage); } class Tools { @Tool void addTask(@MemoryId int memoryId, Task task) { ... } }
6jygbczu2#
你好,@Fj-ivy。我不确定我是否理解你的问题。@ToolMemoryId 注解用于 DefaultToolExecutor 和 ToolSpecifications。或者问题是:如果我们可以像这样重复使用相同的 @MemoryId 注解(@ToolMemoryId),为什么我们需要一个新的注解?
嗯,基本上,@ToolMemoryId 和 @memoryid 注解是相等的。如果你使用两个注解,可能会增加学习负担。
7nbnzgx93#
我同意,引入新的注解是不必要的,因为现有的注解可以被重用。我认为我们可以通过改变逻辑来允许 @ToolMemoryId 和 @MemoryId 在 @Tool 方法参数上使用,并弃用 @ToolMemoryId,WDYT?你愿意创建一个 PR 吗?
@Tool
uyto3xhc4#
我同意,引入新的注解是不必要的,因为现有的注解可以被重用。我认为我们可以通过改变逻辑来允许 @ToolMemoryId 和 @MemoryId 在 @Tool 方法参数上使用,并弃用 @ToolMemoryId,WDYT?你愿意创建一个PR吗?好的,我会创建一个PR!
4条答案
按热度按时间y1aodyip1#
你好,@Fj-ivy。我不确定我是否理解你的问题。
@ToolMemoryId
注解用于DefaultToolExecutor
和ToolSpecifications
。或者问题是:如果我们可以像这样重复使用相同的
@MemoryId
注解,为什么我们需要一个新的(@ToolMemoryId
)注解?6jygbczu2#
你好,@Fj-ivy。我不确定我是否理解你的问题。
@ToolMemoryId
注解用于DefaultToolExecutor
和ToolSpecifications
。或者问题是:如果我们可以像这样重复使用相同的
@MemoryId
注解(@ToolMemoryId
),为什么我们需要一个新的注解?嗯,基本上,@ToolMemoryId 和 @memoryid 注解是相等的。如果你使用两个注解,可能会增加学习负担。
7nbnzgx93#
我同意,引入新的注解是不必要的,因为现有的注解可以被重用。
我认为我们可以通过改变逻辑来允许
@ToolMemoryId
和@MemoryId
在@Tool
方法参数上使用,并弃用@ToolMemoryId
,WDYT?你愿意创建一个 PR 吗?
uyto3xhc4#
我同意,引入新的注解是不必要的,因为现有的注解可以被重用。我认为我们可以通过改变逻辑来允许
@ToolMemoryId
和@MemoryId
在@Tool
方法参数上使用,并弃用@ToolMemoryId
,WDYT?你愿意创建一个PR吗?好的,我会创建一个PR!