mirror of
https://github.com/langgenius/dify.git
synced 2026-05-10 22:28:55 +08:00
Introduce a new unified Agent V2 workflow node that combines LLM capabilities with agent tool-calling loops, along with a new AppMode.AGENT for standalone agent apps backed by single-node workflows. Phase 1 — Agent Patterns: - Add core/agent/patterns/ module (AgentPattern, FunctionCallStrategy, ReActStrategy, StrategyFactory) ported from feat/support-agent-sandbox - Add ExecutionContext, AgentLog, AgentResult entities - Add Tool.to_prompt_message_tool() for LLM-consumable tool conversion Phase 2 — Agent V2 Workflow Node: - Add core/workflow/nodes/agent_v2/ (AgentV2Node, AgentV2NodeData, AgentV2ToolManager, AgentV2EventAdapter) - Register agent-v2 node type in DifyNodeFactory - No-tools path: single LLM call (LLM Node equivalent) - Tools path: FC/ReAct loop via StrategyFactory Phase 3 — Agent App Type: - Add AppMode.AGENT to model enum - Add WorkflowGraphFactory for auto-generating start->agent_v2->answer graphs - AppService.create_app() creates workflow draft for AGENT mode - AppGenerateService.generate() routes AGENT to AdvancedChatAppGenerator - Console API and DSL import/export support AGENT mode - Default app template for AGENT mode Old agent/agent-chat/LLM node paths are fully preserved. 38 unit tests all passing. Made-with: Cursor
101 lines
2.6 KiB
Python
101 lines
2.6 KiB
Python
import json
|
|
from collections.abc import Mapping
|
|
|
|
from models.model import AppMode
|
|
|
|
default_app_templates: Mapping[AppMode, Mapping] = {
|
|
# workflow default mode
|
|
AppMode.WORKFLOW: {
|
|
"app": {
|
|
"mode": AppMode.WORKFLOW,
|
|
"enable_site": True,
|
|
"enable_api": True,
|
|
}
|
|
},
|
|
# completion default mode
|
|
AppMode.COMPLETION: {
|
|
"app": {
|
|
"mode": AppMode.COMPLETION,
|
|
"enable_site": True,
|
|
"enable_api": True,
|
|
},
|
|
"model_config": {
|
|
"model": {
|
|
"provider": "openai",
|
|
"name": "gpt-4o",
|
|
"mode": "chat",
|
|
"completion_params": {},
|
|
},
|
|
"user_input_form": json.dumps(
|
|
[
|
|
{
|
|
"paragraph": {
|
|
"label": "Query",
|
|
"variable": "query",
|
|
"required": True,
|
|
"default": "",
|
|
},
|
|
},
|
|
]
|
|
),
|
|
"pre_prompt": "{{query}}",
|
|
},
|
|
},
|
|
# chat default mode
|
|
AppMode.CHAT: {
|
|
"app": {
|
|
"mode": AppMode.CHAT,
|
|
"enable_site": True,
|
|
"enable_api": True,
|
|
},
|
|
"model_config": {
|
|
"model": {
|
|
"provider": "openai",
|
|
"name": "gpt-4o",
|
|
"mode": "chat",
|
|
"completion_params": {},
|
|
},
|
|
},
|
|
},
|
|
# advanced-chat default mode
|
|
AppMode.ADVANCED_CHAT: {
|
|
"app": {
|
|
"mode": AppMode.ADVANCED_CHAT,
|
|
"enable_site": True,
|
|
"enable_api": True,
|
|
},
|
|
},
|
|
# agent-chat default mode
|
|
AppMode.AGENT_CHAT: {
|
|
"app": {
|
|
"mode": AppMode.AGENT_CHAT,
|
|
"enable_site": True,
|
|
"enable_api": True,
|
|
},
|
|
"model_config": {
|
|
"model": {
|
|
"provider": "openai",
|
|
"name": "gpt-4o",
|
|
"mode": "chat",
|
|
"completion_params": {},
|
|
},
|
|
},
|
|
},
|
|
# agent default mode (new agent backed by single-node workflow)
|
|
AppMode.AGENT: {
|
|
"app": {
|
|
"mode": AppMode.AGENT,
|
|
"enable_site": True,
|
|
"enable_api": True,
|
|
},
|
|
"model_config": {
|
|
"model": {
|
|
"provider": "openai",
|
|
"name": "gpt-4o",
|
|
"mode": "chat",
|
|
"completion_params": {},
|
|
},
|
|
},
|
|
},
|
|
}
|