|
|
hai 1 mes | |
|---|---|---|
| .. | ||
| .env copy | hai 1 mes | |
| README.md | hai 1 mes | |
| basic_func_test.py | hai 1 mes | |
| diet_recommendation_final.py | hai 1 mes | |
| protocol_tools.py | hai 1 mes | |
| requirements.txt | hai 1 mes | |
基于
hello_agents框架的多智能体协作系统,自动搜索、筛选并生成完整菜谱
智能菜谱助手 是一个基于多 Agent 协作的菜谱搜索系统。用户只需输入饮食需求(如"我想吃小龙虾"、"适合降火的家常菜"),系统会自动:
所有生成的菜谱自动保存在 recipes/ 目录下,方便随时查看和使用。
| 组件 | 说明 |
|---|---|
hello_agents |
多智能体编排框架 |
MCPTool |
Model Context Protocol 工具接口 |
@mzxrai/mcp-webresearch |
网页搜索与研究工具 |
python-dotenv |
环境变量管理 |
json/datetime |
数据解析与文件管理 |
# 克隆项目
git clone https://github.com/AstrumPush/Smart-Recipe-Agent
cd Smart-Recipe-Agent
# 安装依赖
pip install -r requirements.txt
# 安装 Node.js 环境(用于 MCP 工具)
# 访问 https://nodejs.org 下载安装
# 替换hello-agents底层代码
将本项目下的protocol_tools.py文件,替换掉hello-agents中的文件,地址如下(根据本机环境自行调整即可):
D:\Anaconda3\envs\agents\Lib\site-packages\hello_agents\tools\builtin
创建 .env 文件:
# LLM API 配置(根据实际使用的模型提供商填写)
OPENAI_API_KEY=your_api_key_here
# 或其他模型配置...
python diet_recommendation_final.py
请输入菜谱需求(例如:我想吃小龙虾) >>> 适合夏天吃的清淡家常菜
正在搜索菜谱...
[TOOL_CALL:visit_page:url=https://www.xiangha.com/so/?q=caipu&s=清淡家常菜]
正在筛选菜谱...
{
"name": "清蒸鲈鱼",
"url": "https://www.xiangha.com/caipu/xxxxx.html",
"reason": "**推荐理由:**\n- 🐟 **清蒸烹饪** - 少油少盐...\n..."
}
正在生成菜谱...
正在保存菜谱...
✅ 菜谱已创建: recipes/recipes_20260428_153022.md
┌─────────────────────────────────────┐
│ 用户输入: "我想吃小龙虾" │
└─────────────┬───────────────────────┘
▼
┌─────────────────────────────────────┐
│ 🔍 caipu_search_agent │
│ • 角色:菜谱搜索专家 │
│ • 任务:调用 web_research 工具搜索 │
│ • 输出:菜谱列表(菜名+链接+特点) │
└─────────────┬───────────────────────┘
▼
┌─────────────────────────────────────┐
│ 🎯 caipu_select_agent │
│ • 角色:饮食专家 │
│ • 任务:根据用户需求筛选最佳菜谱 │
│ • 输出:JSON 格式推荐结果 │
└─────────────┬───────────────────────┘
▼
┌─────────────────────────────────────┐
│ 📄 output_agent │
│ • 角色:网页内容提取专家 │
│ • 任务:抓取完整菜谱内容 │
│ • 输出:Markdown 格式完整菜谱 │
└─────────────┬───────────────────────┘
▼
┌─────────────────────────────────────┐
│ 💾 自动保存至 recipes/ 目录 │
└─────────────────────────────────────┘
smart-recipe-agent/
├── main.py # 主程序入口
├── .env # 环境变量配置(需手动创建)
├── recipes/ # 生成的菜谱文件目录(自动创建)
│ └── recipes_20260428_153022.md
├── requirements.txt # Python 依赖(建议创建)
├── protocol_tools.py # 需要修改的hello-agents代码模块
├── basic_func_test.py # 用于验证是否可以使用web_search模块
└── README.md # 项目说明文档
搜索 Agent 和输出 Agent 使用统一的工具调用格式:
[TOOL_CALL:visit_page:url=https://www.xiangha.com/so/?q=caipu&s=关键词]
参数说明:
visit_page: 工具名称url: 目标网页地址,支持香哈网搜索页或具体菜谱页parse_response() 函数支持纯 JSON 字符串(含 {})解析
解析失败时会输出警告并返回 None,主流程会进行空值检查。
✅ "适合减肥期间吃的低卡菜谱"
✅ "快手早餐,10分钟能做完的"
✅ "川菜,微辣,有鸡肉的"
✅ "适合老人吃的软烂易消化菜品"
❌ "随便做个菜" # 需求过于模糊
❌ "生成一个不存在的菜" # 系统拒绝编造信息
❌ 直接要求"写一个红烧肉做法" # 应通过搜索获取真实菜谱
xiangha.com) 优化,更换数据源需调整 promptrecipes/ 目录的写入权限修改 Agent 的 system_prompt 中的 URL 模板:
# 示例:添加下厨房网站支持
[TOOL_CALL:visit_page:url=https://www.xiachufang.com/search/?keyword=关键词]
调整 caipu_select_agent 的 prompt,添加个性化推荐规则:
- 优先推荐烹饪时间 < 30分钟的菜谱
- 排除含用户过敏食材的菜品
- 根据季节推荐当季食材菜谱
修改 write_content_to_file() 支持更多格式:
# 支持导出 PDF/HTML 等
def write_content_to_file(content, format="md"):
...
欢迎提交 Issue 和 Pull Request!贡献前请:
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)本项目采用 MIT License 开源协议,可自由使用、修改和分发。
🍽️ 祝您烹饪愉快,享受美食!
感谢 Datawhale 社区和 Hello-Agents 项目!