恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
用 Swarms 框架构建“拍照识营养“多智能体群:9 月黑客松实战项目全解析
首页
资讯中心
/
用 Swarms 框架构建“拍照识营养“多智能体群:9 月黑客松实战项目全解析
用 Swarms 框架构建“拍照识营养“多智能体群:9 月黑客松实战项目全解析
发布时间:2026/9/17 1:28:44
用 Swarms 框架构建拍照识营养多智能体群9 月黑客松实战项目全解析【免费下载链接】swarmsThe Enterprise-Grade Multi-Agent Orchestration Framework. Website: https://swarms.ai项目地址: https://gitcode.com/GitHub_Trending/swar/swarms本文基于 Swarms 仓库中examples/guides/hackathons/目录下的真实黑客松项目完整拆解如何用 Swarms 的多智能体编排能力在短时间内从零构建一个食物图片 → 营养成分分析的流水线应用。读完本文你将掌握SequentialWorkflow的顺序编排、多模态图片输入、专业化 Agent 分工提示词设计以及同一套业务如何同时以本地 SDK 与云端 API含 curl两种方式交付。项目背景黑客松目录里有什么Swarms 仓库在 examples/guides/hackathons/README.md 中专门为黑客松实战项目留了目录用来沉淀真实赛事中产出的、可直接运行的领域解决方案。这些示例的共同特征是用框架的现成编排原语快速组装出面向垂直业务的系统。当前目录下收录的是 9 月 27 日黑客松的项目位于 hackathon_sep_27/包含 5 个文件文件作用api_client.pySwarms 云端 API 客户端用于健康检查与速率限制查询diet_coach_agent.py本地运行的营养教练三 Agent 顺序流水线核心示例nutritional_content_analysis_swarm.py云端 API 版将同一套群智能配置序列化为 JSON 提交nutritonal_content_analysis_swarm.sh纯 curl 方式调用云端群智能补全接口的 Shell 脚本pizza.jpg用于演示的披萨样例图片被多个示例引用这一整套项目演示了 Swarms 框架的两种使用形态本地直接实例化 Agent 与工作流以及通过托管 API 以 JSON 配置下发同一套工作流。下面的章节将按业务设计 → 本地实现 → 云端实现 → 运行细节的顺序逐层展开。业务设计一个三阶段看 → 认 → 算的营养分析流水线项目的核心业务是给定一张食物图片输出其营养成分热量、蛋白质、碳水、脂肪等。它不是让一个 Agent 硬扛全部任务而是把任务拆成三个专业角色按视觉描述 → 食物识别 → 营养计算的顺序串行执行Visual-Reasoner视觉推理员看图说话用计算机视觉式的描述框架输出食物的视觉细节Food-Analyzer食物分析师基于视觉描述做高精度食物识别、份量判断、烹饪方式识别Macro-Nutrient-Calculator宏量营养计算器基于食物描述计算热量与宏量营养、微量营养并给出健康评估。这种拆角色、串流水线的模式正是多智能体编排的核心价值每个 Agent 的提示词system prompt只需聚焦单一职责提示词可以写得更深、更专业最终输出质量远高于单个大而全的 Agent。同时阶段之间天然形成数据依赖——后一阶段消费前一阶段的输出因此用SequentialWorkflow顺序工作流来承载。本地实现用 SequentialWorkflow 编排三个专业化 Agent本地示例 diet_coach_agent.py 以AgentSequentialWorkflow为核心代码结构非常清晰可作为任何多阶段领域分析任务的模板。第一步实例化专业化 Agent三个 Agent 共享同一组运行参数仅在agent_name与agent_description内含完整 system prompt 语义上做领域区分。以视觉推理员为例from swarms import Agent, SequentialWorkflow visual_reasoner Agent( agent_nameVisual-Reasoner, agent_descriptionYou are an expert visual analysis specialist ..., model_nameclaude-sonnet-4-20250514, dynamic_temperature_enabledTrue, max_loops1, dynamic_context_windowTrue, streaming_onTrue, )从 swarms/structs/agent.py 的Agent.__init__签名第 330、343、394 行附近可以看到这些参数的含义model_name指定模型示例统一使用claude-sonnet-4-20250514dynamic_temperature_enabledTrue启用动态温度让模型在推理中自适应采样温度适合这类结构化描述 → 精确计算的混合任务max_loops1每个 Agent 只跑一轮即返回结果保证流水线单次通过、不无限循环这正是黑客松场景最看重的确定性 速度dynamic_context_windowTrue动态调整上下文窗口按需扩展降低长提示词场景下的截断风险streaming_onTrue开启流式输出在终端上以分栏面板形式实时展示每个 Agent 的产出便于现场演示与调试。每个 Agent 的agent_description都是一份精心设计的专业提示词内含三块结构CORE RESPONSIBILITIES核心职责明确该角色的所有分析维度ANALYSIS FRAMEWORK / PROTOCOL分析框架给出编号化的执行步骤保证输出稳定、可复现OUTPUT FORMAT / SPECIFICATIONS输出规范约束输出结构使下游 Agent 可以直接消费。例如Food-Analyzer的分析协议固定为 7 步食物识别 → 份量判定 → 烹饪方式 → 配料识别 → 新鲜度评估 → 营养密度 → 饮食分类Macro-Nutrient-Calculator的计算方法论则包含解析描述 → 按烹饪方式修正 → 基础营养计算 → 份量乘数 → 宏/微量营养汇总 → 健康洞察等 7 个环节。这种分步编号协议是让 LLM 输出保持工程可用性的关键技巧。第二步把三个 Agent 组装成顺序工作流swarm SequentialWorkflow( agents[visual_reasoner, food_analyzer, macro_calculator], max_loops1, output_typeall, ) result swarm.run( What is the nutritional content of the following image:, imgpizza.jpg, ) print(result)从 swarms/structs/sequential_workflow.py 的源码第 55–100 行、第 219–240 行可以看到底层机制SequentialWorkflow.__init__会调用reliability_check()做配置校验agents为空或max_loops0会直接抛ValueError随后sequential_flow()会把 Agent 列表按agent_name拼接成Visual-Reasoner - Food-Analyzer - Macro-Nutrient-Calculator这样的执行顺序串并交给内部的AgentRearrange引擎实际驱动执行output_typeall让工作流返回全部 Agent 的输出而非仅最后一个方便一次性拿到三段分析结果做比对与展示run(task, img...)run方法签名第 309–316 行原生支持img与imgs参数用于向 Agent 注入图片等多模态输入这正是拍照识营养功能的关键入口——任务文本描述 图片路径同时传入。第三步本地运行前置条件安装 Swarms 框架并保证已配置可用的大模型 API示例默认走 Anthropic 的 claude-sonnet 模型需对应的模型密钥与网络可达性确保pizza.jpg与脚本位于同一目录相对路径引用直接执行python examples/guides/hackathons/hackathon_sep_27/diet_coach_agent.py云端实现把同一套群智能序列化为 JSON 配置黑客松项目的第二个亮点是 nutritional_content_analysis_swarm.py 演示的云端 API 形态本地编排的Agent对象在这里被等价地序列化为 JSON 配置三个 Agent 的系统提示词原样保留在system_prompt字段中并额外增加了temperature控制项Visual-Reasoner 0.3、Food-Analyzer 0.4、Macro-Nutrient-Calculator 0.2通过识别阶段略高、计算阶段更低的温度梯度兼顾发散识别与严谨计算。其核心配置结构create_nutritional_analysis_swarm()返回的字典如下节选要点return { name: Food Nutritional Analysis Pipeline, description: Comprehensive food analysis workflow ..., swarm_type: SequentialWorkflow, task: Analyze the nutritional content of food items in the provided image, agents: [ { agent_name: Visual-Reasoner, system_prompt: ..., # 完整提示词 model_name: claude-sonnet-4-20250514, max_loops: 1, temperature: 0.3, }, # Food-Analyzer (temperature0.4) 与 Macro-Nutrient-Calculator (temperature0.2) 同理 ], max_loops: 1, image: pizza.jpg, }call_swarms_api()函数演示了标准调用姿势url https://swarms-api-285321057562.us-east1.run.app/v1/swarm/completions headers { x-api-key: api_key, # SWARMS_API_KEY Content-Type: application/json, } response requests.post(url, headersheaders, jsonswarm_config) response.raise_for_status() print(response.json())这种方式的价值在于业务工作流谁、按什么顺序、干什么被完全数据化一份 JSON 即可跨语言、跨平台复现非常适合把黑客松原型快速搬到服务端。纯 curl 版本无需任何 SDK 即可触发群智能nutritonal_content_analysis_swarm.sh 进一步展示了零依赖的调用路径——只靠curl就把同一个SequentialWorkflow群智能跑起来#!/bin/bash if [ -z $SWARMS_API_KEY ]; then echo Error: SWARMS_API_KEY environment variable is not set. exit 1 fi curl -X POST https://api.swarms.world/v1/swarm/completions \ -H x-api-key: $SWARMS_API_KEY \ -H Content-Type: application/json \ -d { name: Food Nutritional Analysis Pipeline, ... image: pizza.jpg }脚本本身自带密钥校验未设置SWARMS_API_KEY环境变量时立即报错退出exit 1。注意该脚本使用的云端地址与 Python 版本中的地址不同api.swarms.worldvsswarms-api-...run.app两者分别对应不同时期或不同环境的托管端点以你实际可访问的端点为准。使用时仅需export SWARMS_API_KEY你的密钥 bash examples/guides/hackathons/hackathon_sep_27/nutritonal_content_analysis_swarm.sh配套工具云端 API 客户端做健康检查api_client.py 演示了 Swarms 托管 API 的配套 SDK 用法——在真正发起分析任务前先用客户端确认服务健康与配额import os from dotenv import load_dotenv from swarms_client import SwarmsClient load_dotenv() client SwarmsClient(api_keyos.getenv(SWARMS_API_KEY)) print(client.health.check()) # 服务健康状态 print(client.client.rate.get_limits()) # 当前速率限制这段代码同时展示了密钥管理的两个好习惯通过.env文件 python-dotenv加载密钥、通过SWARMS_API_KEY环境变量传递密钥避免把密钥硬编码进脚本——这与上面的 curl 脚本的if [ -z $SWARMS_API_KEY ]检查形成呼应是黑客松现场多人协作时的安全基线。从本项目提炼的通用黑客松套路这套 9 月 27 日项目虽然聚焦营养分析但其方法论可以直接迁移到任何感知 → 理解 → 计算类应用如医疗影像初筛、电商商品图描述、质检报告生成按能力域拆 Agent而不是按模型拆每个 Agent 只回答一个专业问题提示词按职责 → 协议 → 输出规范三段式编写保证可复现用SequentialWorkflow承载阶段依赖后一阶段消费前一阶段输出output_typeall保留全过程结果参数面向黑客松节奏调优max_loops1控制确定性dynamic_temperature_enabled/dynamic_context_window提升自适应能力streaming_on方便现场演示一份业务配置多种交付形态本地Agent编排 → JSON 配置 → curl 脚本同一套三 Agent 流水线可以在本地、云端 SDK、纯 HTTP 三种形态间无缝切换密钥治理前置所有入口都从SWARMS_API_KEY环境变量读取密钥缺失即报错。如需继续探索相关能力可参考仓库中的 SequentialWorkflow 源码、Agent 源码 以及 sequential_workflow 目录下的更多示例。【免费下载链接】swarmsThe Enterprise-Grade Multi-Agent Orchestration Framework. Website: https://swarms.ai项目地址: https://gitcode.com/GitHub_Trending/swar/swarms创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考