本文介绍了如何使用Agno进行设计和实现智能体, 结合仓库设计软件实现仓库的自动布局、优化等功能。
昨天介绍了 Agno轻量级智能体框架,今天结合之前的仓库可视化系统来实现一下自动设计布局。
内容分两部分,
• 先介绍系统功能设计
• 再看看智能体怎么实现
系统功能设计
首先我们添加常规的交互,右下角增加一个图标点击打开弹窗,让AI写一条欢迎消息。
比如:
你好!我是 Shuyi AI 助手,有什么可以帮助你的?
我可以帮你:
- 回答仓库设计问题
- 提供布局建议
- 计算仓储空间、面积和存储容量
- 解释功能使用方法
然后就可以给 AI 布置各种任务啦,比如仓库设计:
进行仓库设计布局设计,要求如下:
- 仓库面积 1400x800 ;
- 库区A散件区 3个货架,排列层:4*4*3
- 库区B整件区域 2个货架 4*8*2
- 库区C补货区域 6个货架,两个 2*8*2, 4个 6*6*2
- 库区4备货区与 2个火箭,8*6*2
我们服务端已经实现了仓库布局设计、布局优化、容积计算、使用助手等诸多工具。
消息提交给 AI 之后,如果服务端在调用工具,增加一个工具执行状态的标识。
如果没有工具调用,直接流式输出回答即可。
执行成功之后 更新该状态(当然也可能失败):
工具函数执行之后,前端页面会更新布局,
但是我们看到界面的布局并不完美,库区是有了,但是扩加的摆放并不是很好,间距比较大, 同时计算的空间也不对。
由于我的计算逻辑都交给 大模型了,他每次的计算也并不一样,比如下面这次运行, AI会先给出自然语言解释,然后再调用工具:
最终的结果也有些不同:
不同的模型效果也不太一样,大家自己做开发的时候多实验下,即使是同一个系列的模型,不同版本也会有不同,
终极优化?大模型擅长的是推理和自然语言的理解,如果我们有明确的布局算法, 可以在工具里面实现,这样出来的结果就会符合业务要求。
前面展示的都是根据需求创建布局。如果布局不满意怎么办?
手动调整当然是可以,不过我们既然展示智能体,那么优化的问题依然也可以让 AI 帮我们做。
对 助手 下命令:
帮我优化仓库布局,所有库区一字排开
智能体嗲用优化布局的工具帮我们做了如下优化:
4个库区确实是整整一行,一字排开了:
或者让智能体分析一下当前布局:
可以看到 智能体找到了合适的工具给出了答案。
应用场景解析
拿当今智能体落地情况来说,大部分场景是没有表现出跨越式的生产力的, 更多的是在探索,说是试探其实更加贴切,不仅是在试探大模型的能力, 也是在试探人们的工作方式,以及市场对于生产力的供需关系。
拿上面展示的场景来说,对于内行人来说,他们可能不需要你来布局,或者也有人说拖拖拽拽比AI智能体实现起来更便捷,大多时候这样说没错。
但是着眼未来,人工无论做起来多简单,都是无法自动化的,在大规模业务场景下, 自动化就能极大提升生产力。 有或者少量零星业务的罕见场景,准备环境的时间就远比做事的时间要长。 这时候没人希望花半小时时间准备,然后花1秒钟点一下。然而智能体就可以,省去你那半个小时的准备时间。
未来的工作场景和流程可能是,
• 多种渠道接收任务,比如收到邮件(或者其他的方式)
• 分析意图,调用不同的工具(比如把附件中的需求文档输入给智能体)
• 智能体返回结果(给出设计图)
• AI调用审核工具进行机器审核
• 结果通知给人类,让人类进行审核和调整
• 确认之后发送给客户
最后再说,其实智能体能插进去一脚的场景,智能体的速度基本都是略高于人的。 就比如拿上面生成仓库布局来说,把文档输入进去,快的话10秒钟,慢的话半分多钟就能出结果, 效率是绝对提升了。
大家其实可以把身边的任何事情都尝试用AI和智能体重新实现一下 (虽然初次实现的市场远超过你手动做一次的时间)。
如何用 Agno 实现
最后快速看一下怎么用 Agno 实现我演示的功能。
昨天介绍 Agno 的文章已经讲了怎么实现一个工具:写一个 Python 函数和注释即可。
我贴出来我的代码给大家参考,尽量把需求给描述清楚就行了,其他的都交给大模型, 也不用考虑太多的提示词技巧:
2025年任何人都不要再担心自己的提示词写得不好, 如果你讲清楚你的问题,大模型没理解,那不是你的问题, 是大模型水平不行, 换一个大模型厂商就行。
def design_warehouse_layout(requirements: str, total_area: str) -> str:
"""设计仓库布局
Args:
requirements (str): 设计需求说明
total_area (str): 总面积要求,格式:"100x80"(长x宽)
Returns:
str: JSON格式的设计方案
"""
length, width = map(int, total_area.split("x"))
design_prompt = dedent(
f"""\
请根据以下信息设计仓库布局:
1. 仓库总面积:长{length}米 x 宽{width}米
2. 设计需求:{requirements}
设计规范:
- 库位基础尺寸:20 x 20,库位间距 spacing=2
- 库区上方预留:80,下方预留 20,左右各预留20
- 确保所有尺寸符合规范
- 库区位置是相对仓库位置,货架位置是相对库区位置,均为整数
- 货架平面宽度:shelfWidth = cols * (slotWidth + spacing) + 20
- 货架平面高度:shelfHeight = rows * (slotDepth + spacing) + 70
- 确保所有尺寸符合规范
请提供:
1. 详细的设计方案说明
2. 符合以下结构的布局JSON:
{json.dumps(json_template, indent=4, ensure_ascii=False)}
"""
)
最后把所有工具都加入到 Agent 工具列表:
agent = Agent(
model=model,
markdown=True,
add_history_to_messages=True,
num_history_responses=3,
description=dedent("""
你是一个仓库布局设计助手,有限使用工具处理用户的问题,如果没有合适的工具,利用的的专业
"""),
tools=[
calculate_storage_space,
analyze_warehouse_layout,
optimize_warehouse_layout,
design_warehouse_layout,
],
)
然后提问即可:
agent.run('帮我设计一个布局,需求如下....")更多
只要大家敢想,其实很有很多很多的场景和功能可以被AI重构。
前面提到 Agno 是一个多模态智能体的框架,我们还可以给仓库拍一个照片、或者拿到仓库的设计图或者布局图, 丢给 AI 让 AI 把模型建到系统里面,如果没有设计说明书,还可以根据设计图直接 生成设计文档。
单从工作量来和难度来说,并没有很复杂和困难。但是实现一个原型只是万里长征第一步, 后面还有需要不停的现实进行磨合和优化才能发挥出智能体真正的价值。
领取专属 10元无门槛券
私享最新 技术干货