FastAPI-based backend for a travel planning application with AI agent capabilities for itinerary planning, expense tracking, and city recommendations
This server has severe definition quality issues. Tool descriptions are minimal (many under 50 chars, some in Chinese without English translation). Input schemas are present but sparse, most parameters lack detailed type constraints, enums, or validation guidance. No output schemas are documented. Error handling is absent, tools return raw results with no recovery guidance. Parameter descriptions are generic or missing entirely. The server appears to be a travel planning backend with utility tools, but the MCP tool definitions are underdeveloped for agent use.
Build a chat agent for casual conversation with high temperature natural dialogue
Build an operation agent for city management, expense tracking, and bill queries
Load CSV documents using CSVLoader
传递相对路径,返回绝对路径
获取文件的md5的十六进制字符串
Get or create a logger with console and file handlers
获取工程所在的根目录
Descriptions are minimal and often in Chinese without English translation. 'solve' is described as '跨城规划 or 同城推荐: 槽位填充 → 加载数据 → 引擎搜索 → 睡眠过滤 → 预算警告' (untranslated Chinese). LLMs cannot reason about tool selection without clear English descriptions. Baseline: A+ tools average 194 chars; these average ~60 chars and lack actionable context.
No output schemas documented for any tool. Agents cannot plan downstream calls or extract required fields. E.g., 'solve' returns a plan object with 'itinerary', 'warning', 'search_stats', none of this is documented in the tool definition. Baseline: 100% of A+ tools have documented return types.
Parameter descriptions are generic or missing. 'query' in solve is described as 'User query for travel planning', no guidance on format, length, or expected content. 'cons' in load_data is 'Constraints dictionary', what keys? What types? Agents must guess. Baseline: 100% of A+ tool params have descriptions; these lack specificity.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
返回文件夹内的文件列表(只允许返回指定类型的文件)
Load Chroma configuration from YAML file
加载规划所需数据(景点/餐厅/酒店/城际交通), 供规划引擎使用
Load model configuration from YAML file
Load prompts configuration from YAML file
Load PDF documents using PyPDFLoader
行程plan → 前端时间轴卡片要的精简JSON, 没有行程返回None
跨城规划 or 同城推荐: 槽位填充 → 加载数据 → 引擎搜索 → 睡眠过滤 → 预算警告
按 ### 标记切分攻略 txt,每个城市一个 Document。
No error handling or recovery guidance. Tools return raw results or fail silently. E.g., 'load_data' returns empty DataFrames if city is '?', no error message, no guidance to the agent on what went wrong or what to do next. Baseline: A+ tools categorize errors as retryable/user-fixable/fatal and provide recovery steps.
No input validation or constraints. Parameters like 'file_path' accept any string, no regex, no length limits, no path traversal guards. 'allowed_types' in listdir_with_allowed_type is an array but no enum of valid types. Agents can pass malicious or invalid inputs unchecked. Baseline: A+ tools declare enums, ranges, and format constraints.