AgentScope ReAct 智能体教程:5分钟从零跑通会思考、会用工具的Agent
【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope
AgentScope 2.0 是一个多智能体开发框架,它的Agent类内置 ReAct(Reasoning and Acting,思考-行动)循环:模型自己决定调什么工具、看结果、再继续推理,直到给出结论。本文帮你把这样一个"会动手"的智能体跑起来,并讲清工具、记忆、模型三个组件怎么换。
- 看懂 ReAct 循环在每一轮里到底流转了哪些东西
- 用 10 行代码装配一个带文件工具、能终端交互的智能体
- 学会换模型后端、挂跨会话长期记忆这两个最常见的扩展点
从一个真实任务说起
假设你接到一句话需求:"看看这个仓库里为什么有 3 个失败的测试,给出结论"。
用纯聊天模型做这事,它只能靠猜——它看不到你的文件,跑不了命令。ReAct 智能体的做法不一样:
- 读题,决定先列出测试文件
- 调用
Glob工具拿到路径 - 调用
Read看代码、用Bash跑一下复现 - 把报错和源码对上号,输出结论
整个过程是模型在循环里自己推进的,你不用写任何 if/else 编排逻辑。
原理速览:思考-行动循环
每一轮循环做四件事:把问题和已有结果交给模型 → 模型产出"思考"或"工具调用" → 框架执行工具并回填结果 → 判断是否已有最终答案,没有就再转一轮。
max_iters(默认 50)是硬保险丝,防止模型陷入无限循环。所有中间过程(思考增量、工具调用、工具输出)都以事件流对外暴露,所以前端能实时渲染,你也能随时 Ctrl+C 打断。
装环境,跑通第一个ReAct智能体
先装好包(要求 Python 3.11+):
git clone https://gitcode.com/GitHub_Trending/ag/agentscope cd agentscope uv pip install -e .下面这段代码装配智能体并启动终端交互,保存为main.py即可运行:
import asyncio, os from agentscope.agent import Agent from agentscope.model import DashScopeChatModel from agentscope.credential import DashScopeCredential from agentscope.tool import Toolkit, Bash, Grep, Glob, Read, Write, Edit from agentscope.console import launch_console agent = Agent( name="Friday", system_prompt="You're a helpful assistant named Friday.", model=DashScopeChatModel( credential=DashScopeCredential(api_key=os.environ["DASHSCOPE_API_KEY"]), model="qwen3.6-plus", ), # 内置编码工具:跑命令、搜文件、读写代码 toolkit=Toolkit(tools=[Bash(), Grep(), Glob(), Read(), Write(), Edit()]), ) asyncio.run(launch_console(agent))逐段看:
Agent(...)把模型、工具集、系统提示词三样东西绑到一起。工具集(Toolkit)是模型"手"的来源——注册了什么,它就能干什么。Toolkit(tools=[...])里的Bash、Grep、Read等都是内置工具类,不需要你写实现。launch_console接管了交互细节:流式打印、工具调用确认、Ctrl+C 中断。想嵌进自己的程序,就直接调agent.reply_stream(msg)拿事件流。
运行前记得export DASHSCOPE_API_KEY=...,然后python main.py。
能力扩展:换组件
换一个模型后端
想让智能体用 OpenAI 而不是 DashScope?只改model=参数即可,其余逻辑不动:
# 凭证和模型名换成你 OpenAI 的,其余代码不变 model=OpenAIChatModel( credential=OpenAICredential(api_key="sk-..."), model="gpt-4o", )框架里 Anthropic、Gemini、DeepSeek、Ollama 等后端都是同一个接口,切后端不需要动循环代码。
给智能体装上跨会话记忆
单次对话的记忆存在上下文里,关掉就没了。挂一个中间件(middleware,不改源码、挂在循环上的钩子)就能沉淀长期事实:
from agentscope.middleware import AgenticMemoryMiddleware agent = Agent( # ... middlewares=[ AgenticMemoryMiddleware(workdir="./mem", backend=backend), ], )效果是双通道:智能体可以主动调用记忆工具检索"上次聊过什么",中间件也会在每轮结束后把值得留的事实写进工作目录,下次启动接着用。完整跑法见 examples/long_term_memory/mem0/,里面有 Mem0 后端的对照演示。
常见坑与调优
- 每次工具调用都弹确认,效率低:AgentScope 默认走权限(permission)检查,危险操作要人工点头。本地跑自己的环境时,调权限配置走放行模式;生产环境保持默认。这个交互长什么样,看 README.md 里的演示图。
- 跑了 50 轮还没结论就停了:这是
max_iters保险丝生效,不是 bug。任务确实大就调大它,任务写得模糊就先改问题本身。 - 聊久了"忘了"前文:上下文 token 占用到上限 80% 时框架会自动把旧消息压缩成摘要,细节可能丢。要保细节,调低
ContextConfig的trigger_ratio或给 Agent 传offloader,把压缩内容和超长工具输出挪出去存档。
收尾
一句话总结:AgentScope 的 ReAct 智能体把"思考-行动循环"做成了框架内置行为,你只负责注入工具、模型和记忆。
想继续往下走:
- 循环本体的实现:src/agentscope/agent/_agent.py
- 终端调试控制台:examples/console/
- 长期记忆接入:examples/long_term_memory/
【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考