From 03078a2077f2ccc91b4cd7846775527c9af7f473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=BD=AE?= Date: Mon, 2 Mar 2026 12:17:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=99=9A=E6=8B=9F=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent/deep_assistant.py | 66 +++-------------------------------------- agent/prompt_loader.py | 3 +- 2 files changed, 6 insertions(+), 63 deletions(-) diff --git a/agent/deep_assistant.py b/agent/deep_assistant.py index 2c467e7..144e823 100644 --- a/agent/deep_assistant.py +++ b/agent/deep_assistant.py @@ -241,15 +241,15 @@ async def init_agent(config: AgentConfig): token_counter=create_token_counter(config.model_name) ) middleware.append(summarization_middleware) - workspace_root = f"projects/robot/{config.bot_id}" + workspace_root = str(Path.cwd() / "projects" /"robot"/ config.bot_id) # workspace_root = str(Path.home() / ".deepagents" / config.bot_id) + agent, composite_backend = create_custom_cli_agent( model=llm_instance, assistant_id=config.bot_id, system_prompt=system_prompt, tools=mcp_tools, auto_approve=True, - enable_memory=False, workspace_root=workspace_root, middleware=middleware, checkpointer=checkpointer, @@ -263,28 +263,6 @@ async def init_agent(config: AgentConfig): logger.info(f"create agent elapsed: {time.time() - create_start:.3f}s") return agent, checkpointer -class CustomAgentMemoryMiddleware(MemoryMiddleware): - """自定义的 AgentMemoryMiddleware,修改路径显示为当前目录""" - - def __init__( - self, - *, - backend: FilesystemBackend, - sources: list[str], - ) -> None: - super().__init__( - backend=backend, - sources=sources, - ) - self.agent_dir_display = f"." - - def _format_memory_content(self, memories: list[dict]) -> str: - """Format memory content for display in system prompt. - - Override to use relative path display. - """ - # 使用父类的默认实现,但路径显示已经是相对路径 - return super()._format_memory_content(memories) if hasattr(super(), '_format_memory_content') else "" class CustomSkillsMiddleware(SkillsMiddleware): """自定义的 SkillsMiddleware,使用新的签名格式""" @@ -332,7 +310,6 @@ def create_custom_cli_agent( sandbox_type: str | None = None, system_prompt: str | None = None, auto_approve: bool = False, - enable_memory: bool = True, enable_skills: bool = True, enable_shell: bool = True, middleware: list[AgentMiddleware] = [], @@ -375,14 +352,6 @@ def create_custom_cli_agent( if tools is None: tools = [] - # Setup agent directory for persistent memory (if enabled) - if enable_memory or enable_skills: - agent_dir = settings.ensure_agent_dir(assistant_id) - agent_md = agent_dir / "AGENTS.md" # 新版本使用 AGENTS.md - if not agent_md.exists(): - # Create empty file for user customizations - agent_md.touch() - # Build middleware stack based on enabled features agent_middleware = middleware @@ -402,22 +371,19 @@ def create_custom_cli_agent( # Use LocalShellBackend for filesystem + shell execution backend = LocalShellBackend( root_dir=workspace_root, - virtual_mode=True, inherit_env=True, env=final_shell_env, ) else: # No shell access - use plain FilesystemBackend - backend = FilesystemBackend(root_dir=workspace_root, virtual_mode=True) + backend = FilesystemBackend(root_dir=workspace_root) # Set up composite backend with routing (参考新版本实现) large_results_backend = FilesystemBackend( root_dir=tempfile.mkdtemp(prefix="deepagents_large_results_"), - virtual_mode=True, ) conversation_history_backend = FilesystemBackend( root_dir=tempfile.mkdtemp(prefix="deepagents_conversation_history_"), - virtual_mode=True, ) composite_backend = CompositeBackend( default=backend, @@ -427,25 +393,13 @@ def create_custom_cli_agent( }, ) - # Add memory middleware (using new signature) - if enable_memory: - memory_sources = [str(settings.get_user_agent_md_path(assistant_id))] - memory_sources.extend(str(p) for p in settings.get_project_agent_md_path()) - - agent_middleware.append( - CustomAgentMemoryMiddleware( - backend=FilesystemBackend(root_dir=workspace_root, virtual_mode=True), - sources=memory_sources, - ) - ) - # Add skills middleware (using new signature) if enable_skills: skills_sources = ["./skills"] agent_middleware.append( CustomSkillsMiddleware( - backend=FilesystemBackend(root_dir=workspace_root, virtual_mode=True), + backend=FilesystemBackend(root_dir=workspace_root), sources=skills_sources, ) ) @@ -464,18 +418,6 @@ def create_custom_cli_agent( routes={}, # No virtualization ) - # Add memory middleware - if enable_memory: - memory_sources = [str(settings.get_user_agent_md_path(assistant_id))] - memory_sources.extend(str(p) for p in settings.get_project_agent_md_path()) - - agent_middleware.append( - CustomAgentMemoryMiddleware( - backend=sandbox, - sources=memory_sources, - ) - ) - # Add skills middleware if enable_skills: skills_sources = ["/skills"] diff --git a/agent/prompt_loader.py b/agent/prompt_loader.py index a7c40fa..d5bfe6b 100644 --- a/agent/prompt_loader.py +++ b/agent/prompt_loader.py @@ -11,6 +11,7 @@ import logging from utils.settings import BACKEND_HOST, MASTERKEY logger = logging.getLogger('app') from .plugin_hook_loader import execute_hooks, merge_skill_mcp_configs +from pathlib import Path def format_datetime_by_language(language: str) -> str: """ @@ -124,7 +125,7 @@ async def load_system_prompt_async(config) -> str: language=language_display, user_identifier=user_identifier, datetime=datetime_str, - agent_dir_path=".", + agent_dir_path=f"{Path.cwd()}/projects/robot/{config.bot_id}", trace_id=trace_id or "" )