Skip to main content
Glama

think_about_collected_information

Analyze collected information to assess its sufficiency and relevance. Use this tool after performing search operations like find_symbol, search_files_for_pattern, or read_file to ensure actionable insights.

Instructions

Think about the collected information and whether it is sufficient and relevant. This tool should ALWAYS be called after you have completed a non-trivial sequence of searching steps like find_symbol, find_referencing_symbols, search_files_for_pattern, read_file, etc.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The core handler implementation of the 'think_about_collected_information' tool. It is a subclass of Tool whose apply() method generates and returns a reflective prompt via the prompt factory.
    class ThinkAboutCollectedInformationTool(Tool): """ Thinking tool for pondering the completeness of collected information. """ def apply(self) -> str: """ Think about the collected information and whether it is sufficient and relevant. This tool should ALWAYS be called after you have completed a non-trivial sequence of searching steps like find_symbol, find_referencing_symbols, search_files_for_pattern, read_file, etc. """ return self.prompt_factory.create_think_about_collected_information()
  • Generated helper method in PromptFactory that renders the tool-specific prompt template 'think_about_collected_information'.
    def create_think_about_collected_information(self) -> str: return self._render_prompt("think_about_collected_information", locals())
  • ToolRegistry discovers and registers all Tool subclasses from serena.tools modules using their derived snake_case name (ThinkAboutCollectedInformationTool -> 'think_about_collected_information'). This is used by the agent to instantiate and expose the tool.
    for cls in iter_subclasses(Tool): if not cls.__module__.startswith("serena.tools"): continue is_optional = issubclass(cls, ToolMarkerOptional) name = cls.get_name_from_cls() if name in self._tool_dict: raise ValueError(f"Duplicate tool name found: {name}. Tool classes must have unique names.") self._tool_dict[name] = RegisteredTool(tool_class=cls, is_optional=is_optional, tool_name=name)
  • Class method deriving the tool name in snake_case from the class name, used during registration.
    def get_name_from_cls(cls) -> str: name = cls.__name__ if name.endswith("Tool"): name = name[:-4] # convert to snake_case name = "".join(["_" + c.lower() if c.isupper() else c for c in name]).lstrip("_") return name

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oraios/serena'

If you have feedback or need assistance with the MCP directory API, please join our Discord server