Skip to content

Commit 1fe2d77

Browse files
author
lihao
committed
refactor: Update server and protocol for task input handling
- Refactored the server to replace `ExecutionInput` with `TaskInput` for improved clarity in task management. - Updated import paths for `LangGraphAdapter` and related components to streamline the code structure. - Enhanced the `StreamMessage` protocol to include a `task_id` for better tracking of task execution. - Removed the `ToolStateManager` and related classes to simplify the memory management approach. - Adjusted comments and logging for better readability and consistency across the codebase.
1 parent ecb7475 commit 1fe2d77

File tree

12 files changed

+1377
-3619
lines changed

12 files changed

+1377
-3619
lines changed

examples/components/web/super_agent/src/super_agent/server.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626
from fastapi.middleware.cors import CORSMiddleware
2727
from fastapi.responses import StreamingResponse
2828
from super_agent.agent.crew import SuperAgentCrew
29-
from langcrew.web.langgraph_adapter import LangGraphAdapter
29+
from langcrew.web import LangGraphAdapter
3030
from langcrew.web.protocol import (
3131
ChatRequest,
3232
StreamMessage,
3333
StopRequest,
34-
ExecutionInput,
34+
TaskInput,
3535
MessageType,
3636
)
3737
from langcrew.web import generate_message_id
@@ -140,17 +140,18 @@ async def generate():
140140
timestamp=int(time.time() * 1000),
141141
session_id=session_id,
142142
)
143-
yield await adapter._format_sse_message(init_message)
143+
yield adapter._format_sse_message(init_message)
144144

145-
# Create execution input
146-
execution_input = ExecutionInput(
145+
# Create task input
146+
task_input = TaskInput(
147147
session_id=session_id,
148-
user_input=request.message,
149-
is_resume=request.interrupt_data is not None,
148+
message=request.message,
149+
language=request.language,
150+
interrupt_data=request.interrupt_data,
150151
)
151152

152153
# Stream execution results
153-
async for chunk in adapter.execute(execution_input):
154+
async for chunk in adapter.execute(task_input):
154155
yield chunk
155156

156157
except asyncio.CancelledError:
@@ -169,7 +170,7 @@ async def generate():
169170
timestamp=int(time.time() * 1000),
170171
session_id=session_id,
171172
)
172-
yield await adapter._format_sse_message(error_message)
173+
yield adapter._format_sse_message(error_message)
173174

174175
finally:
175176
logger.info(f"Session {session_id} completed")

libs/langcrew/langcrew/crew.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from .hitl import HITLConfig
2424
from .memory import EntityMemory, LongTermMemory, MemoryConfig, ShortTermMemory
2525
from .memory.storage import get_checkpointer, get_storage
26-
from .memory.tool_state import ToolStateManager
26+
2727
from .task import Task
2828
from .types import CrewState
2929

@@ -73,7 +73,7 @@ def __init__(
7373
self._short_term_memory = None
7474
self._long_term_memory = None
7575
self._entity_memory = None
76-
self._tool_state_manager = None
76+
7777
self._thread_id = None
7878

7979
# Async components for async methods
@@ -85,7 +85,7 @@ def __init__(
8585
self._async_short_term_memory = None
8686
self._async_long_term_memory = None
8787
self._async_entity_memory = None
88-
self._async_tool_state_manager = None
88+
8989
self._async_components_initialized = False
9090

9191
# Context managers for async components
@@ -122,7 +122,17 @@ def __init__(
122122
agent.store = self.store
123123

124124
def _prepare_tools(self, tools: list[BaseTool]) -> list[BaseTool]:
125-
"""Inject ToolStateManager into E2BBaseToolV2 and HITLBaseTool instances."""
125+
"""Prepare tools for execution.
126+
127+
This method can be extended to inject dependencies or modify tools
128+
before they are used by agents or tasks.
129+
130+
Args:
131+
tools: List of tools to prepare
132+
133+
Returns:
134+
List of prepared tools
135+
"""
126136
return tools
127137

128138
def _sync_subgraph_message_deletions(
@@ -922,9 +932,6 @@ def _setup_crew_memory(self):
922932
store=self.store, config=self.memory_config
923933
)
924934

925-
# Initialize tool state manager
926-
self._tool_state_manager = ToolStateManager(checkpointer=self.checkpointer)
927-
928935
if self.verbose:
929936
logger.info(
930937
f"Memory system initialized with provider: {self.memory_config.provider}"
@@ -1013,12 +1020,6 @@ async def _setup_async_components(self):
10131020
store=self._async_store, config=self.memory_config
10141021
)
10151022

1016-
# Create async tool state manager (only if not already created)
1017-
if not self._async_tool_state_manager:
1018-
self._async_tool_state_manager = ToolStateManager(
1019-
checkpointer=self._async_checkpointer
1020-
)
1021-
10221023
# Mark async components as initialized
10231024
self._async_components_initialized = True
10241025

libs/langcrew/langcrew/memory/tool_state.py

Lines changed: 0 additions & 187 deletions
This file was deleted.

0 commit comments

Comments
 (0)