FastAPI-based agent framework with tool registry, MCP integration, LangGraph execution, and human-in-the-loop approval for sensitive tools
ForgeAgent exposes 2 file management tools with complete JSON schemas and detailed parameter descriptions in Chinese. Both tools have clear, action-verb names (read_file, write_file) and comprehensive descriptions (200+ chars each) explaining behavior, parameters, and constraints. Schemas include proper type definitions, descriptions, and validation rules (minimum line numbers, max_chars limits). However, output schemas are not documented, LLMs cannot predict return structure. Error handling is absent from tool definitions; no guidance on recovery paths. No tool annotations (readOnlyHint/destructiveHint) despite write_file being destructive. Parameter descriptions are thorough but lack enum constraints where applicable (e.g., no explicit enum for append boolean). Overall solid parameter quality but incomplete output documentation and missing error patterns.
读取工作区内的文本文件(UTF-8)。默认读全文。可选 start_line / end_line(从 1 计的包含区间):只给 end_line 时从第 1 行读到该行;只给 start_line 时从该行读到文件末尾;两者都给为闭区间。可选 max_chars 限制返回字符数,避免极大文件撑爆上下文。
写入工作区文本文件(UTF-8)。默认覆盖整文件;append=true 时为末尾追加。若同时提供 start_line 与 end_line(从 1 计的闭区间),则将文件中该段行替换为 text(要求文件已存在;text 可为多行)。
Output schemas not documented. LLMs cannot predict return structure (e.g., does read_file return {content: string} or {lines: string[]}?). Agents cannot plan downstream operations or extract fields reliably.
write_file is destructive (overwrites/modifies files) but lacks destructiveHint annotation and no confirmation/dry-run pattern. Agents can accidentally corrupt files without safeguards.
No error handling guidance in tool definitions. If file_path validation fails or file is not found, LLMs receive no recovery hints (e.g., 'Try list_directory() to find available files').
read_file lacks idempotentHint annotation despite being read-only and safe to retry. write_file lacks destructiveHint. Tool annotations enable agents to reason about retry safety and side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Parameter descriptions use natural language constraints ('从 1 计' = 1-indexed) but lack formal JSON Schema pattern/format declarations. LLMs may misinterpret line numbering or character encoding edge cases.