Prevent infinite recursion when agents delegate to each other as tools
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
@@ -39,6 +39,7 @@ type (
|
||||
handoffs []*Handoff
|
||||
mcpServers []*MCPServer
|
||||
maxTurns int
|
||||
maxToolDepth int
|
||||
client *llm.Client
|
||||
logger *log.Logger
|
||||
hooks []RunHooks
|
||||
@@ -60,6 +61,7 @@ func New(name string, client *llm.Client, opts ...Option) *Agent {
|
||||
name: name,
|
||||
client: client,
|
||||
maxTurns: DefaultMaxTurns,
|
||||
maxToolDepth: DefaultMaxToolDepth,
|
||||
toolUseBehavior: RunLLMAgain(),
|
||||
resetToolChoice: true,
|
||||
logger: log.NewLogger(log.WithOutput(io.Discard)),
|
||||
@@ -196,6 +198,15 @@ func WithMaxTurns(n int) Option {
|
||||
}
|
||||
}
|
||||
|
||||
func WithMaxToolDepth(n int) Option {
|
||||
return func(a *Agent) {
|
||||
if n < 1 {
|
||||
n = 1
|
||||
}
|
||||
a.maxToolDepth = n
|
||||
}
|
||||
}
|
||||
|
||||
func WithTemperature(t float64) Option {
|
||||
return func(a *Agent) {
|
||||
a.modelSettings.Temperature = &t
|
||||
|
||||
Reference in New Issue
Block a user