feat(agent): 新增AI_AGENT_VERBOSE开关,控制工具调用过程回复及提示词输出

This commit is contained in:
jxxghp
2026-03-27 20:12:01 +08:00
parent c3e96ae73f
commit 8d7ff2bd1d
4 changed files with 18 additions and 4 deletions

View File

@@ -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":

View File

@@ -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

View File

@@ -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 文字合并为同一条流式消息

View File

@@ -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):