Download backend/src/tools/builtins/present_file_tool.py from yonagush/deerflow: direct link, hf CLI and curl.
- Browser
- Download file 1.62 kB
-
https://huggingface.co/spaces/yonagush/deerflow/resolve/main/backend/src/tools/builtins/present_file_tool.py
- Command line
-
hf download hf://spaces/yonagush/deerflow/backend/src/tools/builtins/present_file_tool.py
-
curl -L -o present_file_tool.py https://huggingface.co/spaces/yonagush/deerflow/resolve/main/backend/src/tools/builtins/present_file_tool.py
1.62 kB
| from typing import Annotated | |
| from langchain.tools import InjectedToolCallId, ToolRuntime, tool | |
| from langchain_core.messages import ToolMessage | |
| from langgraph.types import Command | |
| from langgraph.typing import ContextT | |
| from src.agents.thread_state import ThreadState | |
| def present_file_tool( | |
| runtime: ToolRuntime[ContextT, ThreadState], | |
| filepaths: list[str], | |
| tool_call_id: Annotated[str, InjectedToolCallId], | |
| ) -> Command: | |
| """Make files visible to the user for viewing and rendering in the client interface. | |
| When to use the present_files tool: | |
| - Making any file available for the user to view, download, or interact with | |
| - Presenting multiple related files at once | |
| - After creating files that should be presented to the user | |
| When NOT to use the present_files tool: | |
| - When you only need to read file contents for your own processing | |
| - For temporary or intermediate files not meant for user viewing | |
| Notes: | |
| - You should call this tool after creating files and moving them to the `/mnt/user-data/outputs` directory. | |
| - This tool can be safely called in parallel with other tools. State updates are handled by a reducer to prevent conflicts. | |
| Args: | |
| filepaths: List of absolute file paths to present to the user. **Only** files in `/mnt/user-data/outputs` can be presented. | |
| """ | |
| # The merge_artifacts reducer will handle merging and deduplication | |
| return Command( | |
| update={"artifacts": filepaths, "messages": [ToolMessage("Successfully presented files", tool_call_id=tool_call_id)]}, | |
| ) | |