mac llama_index agent算术式子计算示例

本文通过简单数学计算,示例llama_index使用agent解决复杂任务过程。

假设mac本地llama_index环境已安装,过程参考

mac测试ollama llamaindex-CSDN博客

测试mac笔记本内存8G,所以使用较小LLM完成示例。

ollama pull qwen3:1.7b

qwen3:1.7b能力较弱,需要prompt明确要求使用agent工具,遵守计算前后顺序。

prompt示例如下

"使用agent工具计算,遵守计算的先后顺序, 20 + (2 x 3) * 4?"

程序示例如下

复制代码
from llama_index.core.agent import ReActAgent
from llama_index.core.tools import FunctionTool
from llama_index.core import Settings
from llama_index.llms.ollama import Ollama

Settings.embed_model = OllamaEmbedding(model_name="yxl/m3e:latest")  
Settings.llm = Ollama(model="qwen3:1.7b", request_timeout=360) 

# 定义数学计算工具
def multiply(a: float, b: float) -> float:
    """Multiply two numbers and returns the product"""
    return a * b

multiply_tool = FunctionTool.from_defaults(fn=multiply)

def add(a: float, b: float) -> float:
    """Add two numbers and returns the sum"""
    return a + b

add_tool = FunctionTool.from_defaults(fn=add)

# 实例化 ReActAgent
agent = ReActAgent.from_tools(
    [multiply_tool, add_tool], verbose=True
)

# 测试代理
response = agent.chat("使用agent工具计算,遵守计算的先后顺序, 20 + (2 x 3) * 4?")
print(response)

如下所示,llama_index将示例式子计算过程分解为agent工具的调用过程。

首先是红色部分,调用multiply完成2*3=6。

然后是棕色部分,调用multiply完成6*4=24。

最后是紫色部分,调用add完成20+24=44。

> Running step 91dcc552-f7b2-4cc3-9af1-cf07812cc8b8. Step input: 请使用agent工具计算,遵守计算的先后顺序, 20 + (2 x 3) * 4?

Thought: <think>

Okay, let's see. The user wants to calculate 20 + (2 x 3) * 4 using the agent tool. Hmm, first I need to break down the expression according to the order of operations. Parentheses come first, so I should calculate 2 x 3 first. That's 6. Then multiply by 4, which gives 24. Now add that to 20. So 20 + 24 equals 44. Wait, but the tools available are multiply and add. Let me check the tools again. The multiply tool takes two numbers, and the add tool adds two numbers. So I need to do the multiplication first. Let me do the steps: first multiply 2 and 3, then multiply the result by 4, then add 20. So the steps would be: multiply 2 and 3 to get 6, then multiply by 4 to get 24, then add 20. So the final answer should be 44. I need to use the tools in the correct order. Let me use the multiply tool first for 2 and 3, then multiply the result by 4, then add 20. Let's see how that works.

</think>

Thought: I need to calculate 20 + (2 x 3) * 4 using the available tools. First, multiply 2 and 3, then multiply the result by 4, and finally add 20.
Action: multiply
Action Input: {"a": 2, "b": 3}
Observation: 6

Thought: Now multiply the result (6) by 4.
Action: multiply
Action Input: {"a": 6, "b": 4}
Observation: 24

Thought: Add 24 to 20.
Action: add
Action Input: {'a': 24, 'b': 20}
Observation: 44

> Running step ab11a064-bdde-42df-9fcf-3aa409e18eab. Step input: None

Thought: I can answer without using any more tools. I'll use the user's language to answer

Answer: 44

44

对于更复杂任务和能力更强的LLM,处理过程是类似的。

更强的LLM能更有效的将复杂问题分解为多个agent调用过程,通过agent协同解决复杂问题。

reference


mac测试ollama llamaindex

https://blog.csdn.net/liliang199/article/details/149542926

相关推荐
AI科技星16 小时前
圓 全域数学·72分册·哈希原本卷(七册分卷 · 72分册 · 习题与猜想版)
人工智能·算法·数学建模·数据挖掘·哈希算法·量子计算
sali-tec16 小时前
C# 基于OpenCv的视觉工作流-章70-轮廓点距
图像处理·人工智能·opencv·算法·计算机视觉
TinTin Land16 小时前
独家专访硅谷风投教父大卫·安德森:AI 的下半场,是时候让它“走出屏幕”去干脏活了
人工智能
专注VB编程开发20年16 小时前
专业分析python底层调用与按键精灵,ah3等的对比,hookdll,内存加载,调用.net dll
开发语言·javascript·python·microsoft·php·.net
优联前端16 小时前
什么是 GEO?SEO对比GEO,如何做好 GEO?怎么验证 GEO 效果?
前端·人工智能·用户体验·geo·seo优化·优联前端
时间不早了sss16 小时前
Python处理文档
开发语言·前端·python
珂朵莉MM16 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第二赛季优化题--虚拟边算法
人工智能·算法
海兰16 小时前
【第39篇】spring-ai-alibaba-graph-example学习路径概览
人工智能·spring boot·学习·spring·spring ai
郑寿昌16 小时前
2026具身智能技术评估的新指标
人工智能
前端不太难16 小时前
为什么 OpenClaw 更像“AI 操作系统”?
人工智能·状态模式·openclaw