feat(hook): add tool.definition hook for plugins to modify tool description and parameters (#4956)

This commit is contained in:
Spoon
2026-02-13 05:52:17 +01:00
committed by GitHub
parent b06afd657d
commit 1608565c80
2 changed files with 13 additions and 1 deletions

View File

@@ -149,9 +149,17 @@ export namespace ToolRegistry {
})
.map(async (t) => {
using _ = log.time(t.id)
const tool = await t.init({ agent })
const output = {
description: tool.description,
parameters: tool.parameters,
}
await Plugin.trigger("tool.definition", { toolID: t.id }, output)
return {
id: t.id,
...(await t.init({ agent })),
...tool,
description: output.description,
parameters: output.parameters,
}
}),
)

View File

@@ -224,4 +224,8 @@ export interface Hooks {
input: { sessionID: string; messageID: string; partID: string },
output: { text: string },
) => Promise<void>
/**
* Modify tool definitions (description and parameters) sent to LLM
*/
"tool.definition"?: (input: { toolID: string }, output: { description: string; parameters: any }) => Promise<void>
}