【S1W2 交叉评测】对项目 CallItADay 的反馈 #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
【S1W2 交叉评测】对项目 CallItADay 的反馈
1. 项目理解
我理解该项目主要面向:需要日常记录与AI陪伴的个人用户,提供一个日记+AI聊天的融合应用。
项目想解决的问题是:让用户在写日记的同时,拥有一个能"记住"过去、理解情绪、提供个性化陪伴的AI伙伴。核心路径为:用户写日记 → 日记自动向量化存入ChromaDB → AI聊天时通过意图分类决定是否调用工具检索记忆 → 结合记忆生成个性化回复。
技术架构清晰:React前端 + FastAPI后端 + PostgreSQL(结构化数据) + ChromaDB(向量检索) + AWS Bedrock(LLM),采用两轮Agent架构(意图分类 → 工具执行/直接回复),并设计了独立的"Soul"模块实现AI人格可配置。
2. 项目亮点
3. 当前不足
3.1 工具参数硬编码,未由LLM动态生成
当前
_execute_tool方法中,工具参数是硬编码的:memory_search:直接用user_message整句作为 query,未让LLM提取关键搜索词memory_add:直接用user_message整句作为 content,未让LLM提炼需要记住的信息diary_retrieve:固定返回最近5条,忽略了tool spec中定义的date参数这意味着用户说"我上周跑步受伤了,帮我查查之前有没有类似情况",memory_search 会用整句话去搜索,而不是提取"跑步受伤"作为query,检索效果会大打折扣。核心工具调用逻辑未真正闭环。
3.2 意图分类仅支持单工具调用
classify_intent每次只返回一个tool_name,但实际场景可能需要组合调用:当前架构无法处理这类组合意图。
3.3 前端未传递 session_id
ChatSection.tsx 中 POST /api/chat 请求体只传了
message,未传session_id:而后端 ChatRequest 的 session_id 默认为 "default",导致所有用户共享同一个会话,无法区分不同聊天会话。
3.4 缺少用户认证与多用户支持
当前系统无任何认证机制,所有日记和聊天记录混在一起。如果部署为公开服务,用户A能看到用户B的数据。
3.5 diary_retrieve 工具实现与 spec 不一致
tool spec 定义了
date参数支持按日期检索,但workflow.py中_execute_tool的 diary_retrieve 分支只调用了get_recent_diaries(limit=5),完全忽略了日期参数,diary_tools.py中的get_diary_by_date函数从未被调用。4. 建议补充的内容
get_diary_by_date5. 综合评价
总体判断:原型方向正确,核心链路基本跑通,但功能闭环有缺口。建议优先完善工具调用的参数生成逻辑,使核心Skills真正完整、有效、可运行。
感谢 @yishan 的详细反馈。项目在 S1W3 完成了一轮重大架构重构,以下逐条回应:
已修复
3.1 工具参数硬编码 → 已修复 ✅
bedrock_client.py已删除,替换为model_client.py(OpenAI 兼容)。工具参数现在由 LLM 根据 skill schemas 动态生成,通过SkillRegistry.execute(tool_name, args)执行,不再硬编码。3.2 意图分类仅支持单工具调用 → 已修复 ✅
新的 LangGraph workflow 支持迭代式工具调用(
layer1_max_iterations),可以连续执行多个工具。3.5 diary_retrieve 与 spec 不一致 → 已修复 ✅
旧的硬编码 if/elif 链已被 SkillRegistry 替换,工具调用由 LLM 驱动的 StateGraph 路由。
架构升级
intent_and_tool_enrichment→execute_tool→persist_layer1_result→generate_response尚未修复
3.3 前端未传递 session_id → 待修复 ⏳
ChatSection.tsx仍只传message,session_id未传递。3.4 缺少用户认证与多用户 → 待修复 ⏳
核心的 Agent 工具调用、参数生成、向量检索问题均已修复。认证和 session_id 问题仍在 backlog 中。