mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-03-31 17:32:30 +08:00
feat(agent): 新增AI_AGENT_VERBOSE开关,控制工具调用过程回复及提示词输出
This commit is contained in:
@@ -81,19 +81,21 @@ class MoviePilotAgent:
|
||||
"""
|
||||
if not content:
|
||||
return ""
|
||||
if isinstance(content, str):
|
||||
return content
|
||||
# 跳过思考/推理类型的内容块
|
||||
if isinstance(content, list):
|
||||
text_parts = []
|
||||
for block in content:
|
||||
if isinstance(block, str):
|
||||
text_parts.append(block)
|
||||
elif isinstance(block, dict):
|
||||
# 跳过思考/推理类型的内容块
|
||||
# 优先检查 thought 标志(LangChain Google GenAI 方案)
|
||||
if block.get("thought"):
|
||||
continue
|
||||
if block.get("type") in (
|
||||
"thinking",
|
||||
"reasoning_content",
|
||||
"reasoning",
|
||||
"thought",
|
||||
):
|
||||
continue
|
||||
if block.get("type") == "text":
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
from pathlib import Path
|
||||
from typing import Dict
|
||||
|
||||
from app.core.config import settings
|
||||
from app.log import logger
|
||||
from app.schemas import (
|
||||
ChannelCapability,
|
||||
@@ -73,6 +74,14 @@ class PromptManager:
|
||||
# 始终替换占位符,避免后续 .format() 时因残留花括号报 KeyError
|
||||
base_prompt = base_prompt.replace("{markdown_spec}", markdown_spec)
|
||||
|
||||
# 据 VERBOSE 开关动态调整提示词:关闭时要求避免工具调用前的废话
|
||||
if not settings.AI_AGENT_VERBOSE:
|
||||
base_prompt += (
|
||||
"\n\n[Important Instruction] If you need to call a tool, DO NOT output any conversational "
|
||||
"text or explanations before calling the tool. Call the tool directly without transitional "
|
||||
"phrases like 'Let me check', 'I will look this up', etc."
|
||||
)
|
||||
|
||||
return base_prompt
|
||||
|
||||
@staticmethod
|
||||
|
||||
@@ -7,6 +7,7 @@ from pydantic import PrivateAttr
|
||||
|
||||
from app.agent import StreamingHandler
|
||||
from app.chain import ChainBase
|
||||
from app.core.config import settings
|
||||
from app.log import logger
|
||||
from app.schemas import Notification
|
||||
|
||||
@@ -53,7 +54,7 @@ class MoviePilotTool(BaseTool, metaclass=ABCMeta):
|
||||
if explanation:
|
||||
tool_message = explanation
|
||||
|
||||
if not is_background:
|
||||
if not is_background and settings.AI_AGENT_VERBOSE:
|
||||
# 非后台模式:发送工具执行过程消息
|
||||
if self._stream_handler and self._stream_handler.is_streaming:
|
||||
# 流式渠道:工具消息直接追加到 buffer 中,与 Agent 文字合并为同一条流式消息
|
||||
|
||||
@@ -531,6 +531,8 @@ class ConfigModel(BaseModel):
|
||||
LLM_MAX_TOOLS: int = 0
|
||||
# AI智能体定时任务检查间隔(小时),0为不启用,默认24小时
|
||||
AI_AGENT_JOB_INTERVAL: int = 0
|
||||
# AI智能体啰嗦模式,开启后会回复工具调用过程
|
||||
AI_AGENT_VERBOSE: bool = False
|
||||
|
||||
|
||||
class Settings(BaseSettings, ConfigModel, LogConfigModel):
|
||||
|
||||
Reference in New Issue
Block a user