chore(agent_node): refactor the code supported old version SDK

This commit is contained in:
Novice 2025-04-15 13:53:21 +08:00
parent 7704eea233
commit d2fdd77aee
2 changed files with 21 additions and 4 deletions

View File

@ -6,7 +6,7 @@ from core.agent.entities import AgentToolEntity
from core.agent.plugin_entities import AgentStrategyParameter from core.agent.plugin_entities import AgentStrategyParameter
from core.memory.token_buffer_memory import TokenBufferMemory from core.memory.token_buffer_memory import TokenBufferMemory
from core.model_manager import ModelInstance, ModelManager from core.model_manager import ModelInstance, ModelManager
from core.model_runtime.entities.model_entities import AIModelEntity, ModelFeature, ModelType from core.model_runtime.entities.model_entities import AIModelEntity, ModelType
from core.plugin.manager.exc import PluginDaemonClientSideError from core.plugin.manager.exc import PluginDaemonClientSideError
from core.plugin.manager.plugin import PluginInstallationManager from core.plugin.manager.plugin import PluginInstallationManager
from core.provider_manager import ProviderManager from core.provider_manager import ProviderManager
@ -16,7 +16,7 @@ from core.variables.segments import StringSegment
from core.workflow.entities.node_entities import NodeRunResult from core.workflow.entities.node_entities import NodeRunResult
from core.workflow.entities.variable_pool import VariablePool from core.workflow.entities.variable_pool import VariablePool
from core.workflow.enums import SystemVariableKey from core.workflow.enums import SystemVariableKey
from core.workflow.nodes.agent.entities import AgentNodeData, ParamsAutoGenerated from core.workflow.nodes.agent.entities import AgentNodeData, AgentOldVersionModelFeatures, ParamsAutoGenerated
from core.workflow.nodes.base.entities import BaseNodeData from core.workflow.nodes.base.entities import BaseNodeData
from core.workflow.nodes.enums import NodeType from core.workflow.nodes.enums import NodeType
from core.workflow.nodes.event.event import RunCompletedEvent from core.workflow.nodes.event.event import RunCompletedEvent
@ -253,8 +253,10 @@ class AgentNode(ToolNode):
value["history_prompt_messages"] = history_prompt_messages value["history_prompt_messages"] = history_prompt_messages
if model_schema: if model_schema:
# remove structured output feature to support old version agent plugin # remove structured output feature to support old version agent plugin
if model_schema.features and ModelFeature.STRUCTURED_OUTPUT in model_schema.features: if model_schema.features:
model_schema.features.remove(ModelFeature.STRUCTURED_OUTPUT) for feature in model_schema.features:
if feature.value not in AgentOldVersionModelFeatures:
model_schema.features.remove(feature)
value["entity"] = model_schema.model_dump(mode="json") value["entity"] = model_schema.model_dump(mode="json")
else: else:
value["entity"] = None value["entity"] = None

View File

@ -24,3 +24,18 @@ class AgentNodeData(BaseNodeData):
class ParamsAutoGenerated(Enum): class ParamsAutoGenerated(Enum):
CLOSE = 0 CLOSE = 0
OPEN = 1 OPEN = 1
class AgentOldVersionModelFeatures(Enum):
"""
Enum class for old SDK version llm feature.
"""
TOOL_CALL = "tool-call"
MULTI_TOOL_CALL = "multi-tool-call"
AGENT_THOUGHT = "agent-thought"
VISION = "vision"
STREAM_TOOL_CALL = "stream-tool-call"
DOCUMENT = "document"
VIDEO = "video"
AUDIO = "audio"