Compare commits

..

No commits in common. "da1352550f980540f3921f7bce9c98c19d145d62" and "786e7c2a07314daccf14b15ee4fdfd4ed7444831" have entirely different histories.

6 changed files with 6 additions and 21 deletions

View File

@ -46,9 +46,6 @@ class AgentConfig:
memori_semantic_search_top_k: int = 20
_mem0_context: Optional[str] = None # Mem0 召回的记忆上下文,供中间件间传递使用
# 自定义 shell 环境变量
shell_env: Optional[Dict[str, str]] = field(default_factory=dict)
# Checkpointer 会话历史
_session_history: Optional[List] = field(default_factory=list) # 从 checkpointer 读取的历史聊天记录
@ -75,7 +72,6 @@ class AgentConfig:
'enable_memori': self.enable_memori,
'memori_semantic_search_top_k': self.memori_semantic_search_top_k,
'trace_id': self.trace_id,
'shell_env': self.shell_env,
}
def safe_print(self):
@ -134,7 +130,6 @@ class AgentConfig:
enable_memori=request.enable_memory,
memori_semantic_search_top_k=getattr(request, 'memori_semantic_search_top_k', None) or MEM0_SEMANTIC_SEARCH_TOP_K,
trace_id=trace_id,
shell_env=getattr(request, 'shell_env', None) or {},
)
# 在创建 config 时尽早准备 checkpoint 消息
@ -203,7 +198,6 @@ class AgentConfig:
enable_memori=enable_memori,
memori_semantic_search_top_k=bot_config.get("memori_semantic_search_top_k", MEM0_SEMANTIC_SEARCH_TOP_K),
trace_id=trace_id,
shell_env=bot_config.get("shell_env") or {},
)
# 在创建 config 时尽早准备 checkpoint 消息
@ -279,7 +273,6 @@ class AgentConfig:
enable_memori=enable_memori,
memori_semantic_search_top_k=bot_config.get("memori_semantic_search_top_k", MEM0_SEMANTIC_SEARCH_TOP_K),
trace_id=trace_id,
shell_env=bot_config.get("shell_env") or {},
)
# 在创建 config 时尽早准备 checkpoint 消息

View File

@ -289,8 +289,7 @@ async def init_agent(config: AgentConfig):
shell_env={
"ASSISTANT_ID": config.bot_id,
"USER_IDENTIFIER": config.user_identifier,
"TRACE_ID": config.trace_id,
**(config.shell_env or {}),
"TRACE_ID": config.trace_id
}
)

View File

@ -637,7 +637,6 @@ class BotSettingsUpdate(BaseModel):
tool_response: Optional[bool] = None
skills: Optional[str] = None
is_published: Optional[bool] = None # 是否发布到广场
shell_env: Optional[dict] = None # 自定义 shell 环境变量
class ModelInfo(BaseModel):
@ -675,7 +674,6 @@ class BotSettingsResponse(BaseModel):
enable_thinking: bool
tool_response: bool
skills: Optional[str]
shell_env: Optional[dict] = None # 自定义 shell 环境变量
is_published: bool = False # 是否发布到广场
is_owner: bool = True # 是否是所有者
copied_from: Optional[str] = None # 复制来源的bot id
@ -1818,7 +1816,6 @@ async def get_bot_settings(bot_uuid: str, authorization: Optional[str] = Header(
enable_thinking=settings.get('enable_thinking', False),
tool_response=settings.get('tool_response', False),
skills=settings.get('skills'),
shell_env=settings.get('shell_env'),
is_published=is_published if is_published else False,
is_owner=is_owner,
copied_from=str(copied_from) if copied_from else None,
@ -1894,8 +1891,6 @@ async def update_bot_settings(
update_json['tool_response'] = request.tool_response
if request.skills is not None:
update_json['skills'] = request.skills
if request.shell_env is not None:
update_json['shell_env'] = request.shell_env
# is_published 是表字段,不在 settings JSON 中
need_update_published = request.is_published is not None

View File

@ -482,7 +482,7 @@ async def chat_completions(request: ChatRequest, authorization: Optional[str] =
project_dir = create_project_directory(request.dataset_ids, bot_id, request.skills)
# 收集额外参数作为 generate_cfg
exclude_fields = {'messages', 'model', 'model_server', 'dataset_ids', 'language', 'tool_response', 'system_prompt', 'mcp_settings' ,'stream', 'robot_type', 'bot_id', 'user_identifier', 'session_id', 'enable_thinking', 'skills', 'enable_memory', 'n', 'shell_env'}
exclude_fields = {'messages', 'model', 'model_server', 'dataset_ids', 'language', 'tool_response', 'system_prompt', 'mcp_settings' ,'stream', 'robot_type', 'bot_id', 'user_identifier', 'session_id', 'enable_thinking', 'skills', 'enable_memory', 'n'}
generate_cfg = {k: v for k, v in request.model_dump().items() if k not in exclude_fields}
# 处理消息
messages = process_messages(request.messages, request.language)
@ -532,7 +532,7 @@ async def chat_warmup_v1(request: ChatRequest, authorization: Optional[str] = He
project_dir = create_project_directory(request.dataset_ids, bot_id, request.skills)
# 收集额外参数作为 generate_cfg
exclude_fields = {'messages', 'model', 'model_server', 'dataset_ids', 'language', 'tool_response', 'system_prompt', 'mcp_settings' ,'stream', 'robot_type', 'bot_id', 'user_identifier', 'session_id', 'enable_thinking', 'skills', 'enable_memory', 'n', 'shell_env'}
exclude_fields = {'messages', 'model', 'model_server', 'dataset_ids', 'language', 'tool_response', 'system_prompt', 'mcp_settings' ,'stream', 'robot_type', 'bot_id', 'user_identifier', 'session_id', 'enable_thinking', 'skills', 'enable_memory', 'n'}
generate_cfg = {k: v for k, v in request.model_dump().items() if k not in exclude_fields}
# 创建一个空的消息列表用于预热实际消息不会在warmup中处理
@ -636,7 +636,7 @@ async def chat_warmup_v2(request: ChatRequestV2, authorization: Optional[str] =
messages = process_messages(empty_messages, request.language or "ja")
# 收集额外参数作为 generate_cfg
exclude_fields = {'messages', 'stream', 'tool_response', 'bot_id', 'language', 'user_identifier', 'session_id', 'n', 'model', 'model_server', 'api_key', 'shell_env'}
exclude_fields = {'messages', 'stream', 'tool_response', 'bot_id', 'language', 'user_identifier', 'session_id', 'n', 'model', 'model_server', 'api_key'}
generate_cfg = {k: v for k, v in request.model_dump().items() if k not in exclude_fields}
# 从请求中提取 model/model_server/api_key优先级高于 bot_config排除 "whatever" 和空值)
req_data = request.model_dump()
@ -743,7 +743,7 @@ async def chat_completions_v2(request: ChatRequestV2, authorization: Optional[st
# 处理消息
messages = process_messages(request.messages, request.language)
# 收集额外参数作为 generate_cfg
exclude_fields = {'messages', 'dataset_ids', 'language', 'tool_response', 'system_prompt', 'mcp_settings', 'stream', 'robot_type', 'bot_id', 'user_identifier', 'session_id', 'enable_thinking', 'skills', 'enable_memory', 'n', 'model', 'model_server', 'api_key', 'shell_env'}
exclude_fields = {'messages', 'dataset_ids', 'language', 'tool_response', 'system_prompt', 'mcp_settings', 'stream', 'robot_type', 'bot_id', 'user_identifier', 'session_id', 'enable_thinking', 'skills', 'enable_memory', 'n', 'model', 'model_server', 'api_key'}
generate_cfg = {k: v for k, v in request.model_dump().items() if k not in exclude_fields}
# 从请求中提取 model/model_server/api_key优先级高于 bot_config排除 "whatever" 和空值)
req_data = request.model_dump()

View File

@ -55,7 +55,6 @@ class ChatRequest(BaseModel):
enable_thinking: Optional[bool] = DEFAULT_THINKING_ENABLE
skills: Optional[List[str]] = None
enable_memory: Optional[bool] = False
shell_env: Optional[Dict[str, str]] = None
model_config = ConfigDict(extra='allow')

View File

@ -530,8 +530,7 @@ async def fetch_bot_config_from_db(bot_user_id: str, user_identifier: Optional[s
"enable_thinking": settings_data.get("enable_thinking", False),
"skills": settings_data.get("skills", []),
"description": settings_data.get("description", ""),
"suggestions": settings_data.get("suggestions", []),
"shell_env": settings_data.get("shell_env") or {},
"suggestions": settings_data.get("suggestions", [])
}
# 处理 dataset_ids