Desktop agent for the Follow workspace platform, monitoring file changes and providing document intelligence capabilities
Follow Desktop Agent provides 12 tools with mostly complete schemas and descriptions. Naming follows verb_noun conventions (search_files, read_file, create_file). Descriptions are present and reasonably detailed (avg ~150 chars), explaining WHAT and WHEN. However, several critical gaps: (1) No output schemas documented for any tool, LLMs cannot plan downstream calls or extract fields. (2) Parameter descriptions lack format/constraint details (e.g., 'fileId' is a UUID but not stated; 'limit' has no min/max bounds). (3) No error handling guidance, tools don't explain recovery paths. (4) Missing idempotency/destructiveness hints on write tools (create_file, annotate_document, propose_document_edit). (5) Some parameter relationships undocumented (e.g., sectionIndex vs sectionTitle in read_file_section are mutually exclusive but not stated). Strengths: clear action verbs, reasonable descriptions, proper enum constraints (fileType, annotation categories), and good composition (separate read/write tools). Baseline: avg tool description 194 chars (these ~150 chars is acceptable); 100% of A+ tools have output schemas (this server has 0%).
Annotate specific text passages in the user's document by marking them with explanatory underlines. Use this when the user asks you to underline, highlight, mark, or annotate important/key/notable parts of their document. Return an array of annotations, each containing the exact text snippet to underline and an explanation of why it is important. The text snippets MUST be exact substrings copied verbatim from the document content — do not paraphrase or summarize.
Create a new document or note file in the workspace.
Query real-time activity data captured every 15 seconds. Returns micro-summaries describing what the user has been doing (browsing, editing, idle) and optionally per-second heartbeat records showing document focus and idle state. Use when the user asks about recent activity or you need detailed context about their work patterns.
Get a summary of recent workspace activity based on thread events. Useful for understanding what users have been working on.
List files in a specific folder of the workspace.
No output schemas documented for any of 12 tools. LLMs cannot infer response structure, field names, or types, forcing them to guess what data is available for downstream calls. This violates the foundational pattern:tool requirement and blocks tool chaining.
Parameter constraints missing or vague. 'limit' appears in 4 tools with no min/max bounds (baseline: 1 - 100 or 1 - 50). 'fileId' described as UUID but format not stated. 'lookbackMinutes' has max 60 but no minimum. LLMs may pass invalid values (0, negative, >max) causing silent failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Propose an edit to the Google Document. The edit appears as an inline preview that the user can accept or reject. Always use this tool when the user asks you to modify, add, or change document content.
Read the objects on an infinite canvas. Returns object types, positions, and text content.
Read a file's content and structure. For documents/notes, returns extracted text with section outline (headings, word counts). For large documents, use read_file_section to drill into specific sections.
Read a specific section of a large document by index or title. Returns the full text of that section. Use after read_file to drill into a particular heading/section.
Read the content of the current Google Workspace document (Doc, Sheet, or Slides). Returns the latest content snapshot stored from the extension. Use this when you need to read/search the document text.
Search for files in the workspace by name or content. Returns matching files with their names, types, and IDs.
Search captured web pages and browsing context. Returns titles, URLs, excerpts, tags, and analysis results from previously captured web content.
Write tools (create_file, annotate_document, propose_document_edit) lack error handling guidance and destructiveness hints. No mention of rollback, confirmation, or recovery paths. Agents cannot distinguish retryable failures from permanent errors.
Mutually exclusive parameters not documented. read_file_section accepts both sectionIndex and sectionTitle but does not state which takes precedence or if both are required. LLMs may pass both or neither, causing ambiguous behavior.
No pagination or result-limiting guidance for list/search tools. search_files, search_web_captures, get_realtime_activity accept 'limit' but do not document whether results are sorted, truncated, or paginated. Large result sets risk context window exhaustion.