28 lines
1.2 KiB
Python
28 lines
1.2 KiB
Python
# Anthropic-specific constants for the Letta LLM API
|
|
|
|
# Allowlist of simple tools that work with Anthropic's structured outputs (strict mode).
|
|
# These tools have few parameters and no complex nesting, making them safe for strict mode.
|
|
# Tools with many optional params or deeply nested structures should use non-strict mode.
|
|
#
|
|
# Anthropic limitations for strict mode:
|
|
# - Max 15 tools can use strict mode per request
|
|
# - Max 24 optional parameters per tool (counted recursively in undocumented ways)
|
|
# - Schema complexity limits
|
|
#
|
|
# Rather than trying to count parameters correctly, we allowlist simple tools that we know work.
|
|
ANTHROPIC_STRICT_MODE_ALLOWLIST = {
|
|
"Write", # 2 required params, no optional
|
|
"Read", # 1 required, 2 simple optional
|
|
"Edit", # 3 required, 1 simple optional
|
|
"Glob", # 1 required, 1 simple optional
|
|
"KillBash", # 1 required, no optional
|
|
"fetch_webpage", # 1 required, no optional
|
|
"EnterPlanMode", # no params
|
|
"ExitPlanMode", # no params
|
|
"Skill", # 1 required, 1 optional array
|
|
"conversation_search", # 1 required, 4 simple optional
|
|
}
|
|
|
|
# Maximum number of tools that can use strict mode in a single request
|
|
ANTHROPIC_MAX_STRICT_TOOLS = 15
|