AgentScope入门:实用指南

open-source入门13 分钟阅读2026/7/2

上个月,我撞到了南墙。当时我正在搭一条研究流水线:需要一个 Agent 负责抓取网页,另一个负责提取和总结关键数据,第三个负责把所有内容汇编成结构化的报告。我一开始选了个很火的 Agent 框架,但不到一周,我就被死板的编排模式、各种自定义回调钩子,还有仅仅为了在两个 Agent 之间传个消息而写的一大堆样板代码给淹没了。这个框架对我手下的 Agent 该怎么“思考”有一套强烈的预设,而这些预设跟我的实际问题根本对不上号。

就在这时候,一位同事向我推荐了 AgentScope 2.0。真正吸引我的是它的设计理念:它不靠死板的提示词和强预设的编排来限制模型,而是充分发挥模型自身的推理和工具使用能力。用几周时间基于它做开发后,我发现它在“结构化”和“灵活性”之间找到了一个真正实用的平衡点。下面是一份入门指南,全是我踩坑总结出来的经验,希望能让你少走弯路。

AgentScope 真正解决的问题

大多数 Agent 框架都掉进了两个极端:要么抽象过度,你花在搭基础设施上的时间比解决实际问题还多;要么预设太强,你处处都在跟框架作对。AgentScope 2.0 走了条不同的路——它提供开箱即用的基础组件(Agent、工具、记忆、事件、权限),然后就基本退居幕后,不碍你的事。

实际开发中最核心的几个特性:

  • 事件系统:用于 Agent 之间,以及 Agent 与前端/人机协作之间的通信
  • 权限系统:精细控制 Agent 能访问哪些工具和资源
  • 工作区/沙箱支持:让你的 Agent 可以在隔离的 Docker 或 E2B 环境中运行代码
  • 中间件系统:无需重写推理-行动循环,就能直接挂载自定义逻辑

第 1 步:安装与配置

首先,AgentScope 要求 Python 3.10+。本篇教程我使用的是 3.11。

# 安装核心包
pip install agentscope

# 你还需要安装 runtime 扩展,用于服务部署
pip install "agentscope[runtime]"

我遇到的第一个惊喜是:AgentScope 在模型配置上采用了配置驱动的方式。你需要把模型配置写在 JSON 或 Python 文件里,而不是在代码里到处传 API Key。一开始我觉得这挺别扭的,但后来发现,处理多模型配置时,这种方式简直干净太多了。

新建一个 model_config.json 文件:

{
  "model_configs": [
    {
      "config_name": "gpt-4o",
      "model_type": "openai_chat",
      "model_name": "gpt-4o",
      "api_key": "your-api-key-here",
      "generate_args": {
        "temperature": 0.7
      }
    },
    {
      "config_name": "gpt-4o-mini",
      "model_type": "openai_chat", 
      "model_name": "gpt-4o-mini",
      "api_key": "your-api-key-here",
      "generate_args": {
        "temperature": 0.3
      }
    }
  ]
}

然后在代码里,只需加载一次:

import agentscope

agentscope.init(model_configs="./model_config.json")

我一开始犯了个错,试图在 Agent 的构造函数里直接传 API Key。千万别这么干——一定要用配置文件。等以后你要扩展到多个使用不同模型的 Agent 时,这能帮你省去一堆处理环境变量的麻烦。

第 2 步:构建你的第一个 Agent

AgentScope 提供了可供扩展的 Agent 基类。最简单的是 DialogAgent,用于对话型 Agent;但干正事的话,你通常需要 ReActAgent,它实现了推理-行动循环。

我们来构建一个简单的研究 Agent,它能搜索网页并总结发现:

from agentscope.agents import ReActAgent
from agentscope.service import ServiceToolkit

# 创建一个带有网页搜索功能的工具包
toolkit = ServiceToolkit()
toolkit.add(
    agentscope.service.WebSearch,
    search_engine="bing",
    api_key="your-bing-api-key"
)

# 创建 Agent
research_agent = ReActAgent(
    name="researcher",
    model_config_name="gpt-4o",
    tool_list=toolkit,
    max_iters=5,
    prompt_template="""You are a research assistant. When given a topic:
1. Search for relevant information
2. Extract key facts and findings
3. Summarize your findings clearly

Always cite your sources from the search results."""
)

max_iters 这个参数非常关键——它控制 Agent 最多能进行几轮推理-行动循环。我一开始用的是默认值(10),结果眼睁睁看着我的 Agent 遇到模糊查询时原地打转,疯狂烧 API 额度。对大多数任务来说,5 次迭代是个不错的起点。

第 3 步:添加记忆

AgentScope 2.0 最近新增了 Agent 记忆功能。这不只是聊天记录,而是 Agent 可以主动管理的结构化记忆。设置方法如下:

from agentscope.memory import TemporaryMemory

# 创建记忆实例
memory = TemporaryMemory()

# 将其挂载到你的 Agent 上
research_agent = ReActAgent(
    name="researcher",
    model_config_name="gpt-4o",
    tool_list=toolkit,
    max_iters=5,
    memory=memory
)

如果是生产环境,你需要持久化记忆。AgentScope 支持基于 RAG 的记忆,最近还集成了 Mem0 来实现更复杂的记忆管理:

from agentscope.memory import Mem0Memory

persistent_memory = Mem0Memory(
    user_id="research_user_1",
    api_key="your-mem0-key"
)

我在这里踩过坑:默认情况下,TemporaryMemory 不会在 Agent 会话之间保留数据。如果你需要 Agent 在不同运行周期之间记住事情,必须使用持久化后端。我之前愣是花了一个小时调试“为什么我的 Agent 记不住昨天的研究结果”,后来才恍然大悟。

第 4 步:多 Agent 工作流

这才是 AgentScope 大显身手的地方。我们来搭建一个双 Agent 流水线——一个研究员和一个作者,作者接收研究员的输出并生成最终报告:

from agentscope.agents import DialogAgent
from agentscope.pipeline import SequentialPipeline

# 作者 Agent
writer_agent = DialogAgent(
    name="writer",
    model_config_name="gpt-4o",
    prompt_template="""You are a technical writer. Take the research 
findings provided and write a clear, well-structured report.
Use markdown formatting with headers, bullet points, and 
a summary section at the end."""
)

# 将它们连成流水线
pipeline = SequentialPipeline([research_agent, writer_agent])

# 运行
result = pipeline("Research the current state of WebAssembly 
for server-side computing")
print(result.content)

SequentialPipeline 会把上一个 Agent 的输出作为下一个 Agent 的输入。但 AgentScope 也支持更复杂的模式。比如我的研究项目需要一种“分叉-合并”模式,让多个研究员并行工作,再由一个综合员汇总他们的发现:

from agentscope.pipeline import ForkJoinPipeline

# 多个细分领域的研究员
security_researcher = ReActAgent(
    name="security_researcher",
    model_config_name="gpt-4o",
    tool_list=toolkit,
    max_iters=3,
    prompt_template="Research security aspects of the given topic."
)

performance_researcher = ReActAgent(
    name="performance_researcher", 
    model_config_name="gpt-4o",
    tool_list=toolkit,
    max_iters=3,
    prompt_template="Research performance benchmarks and metrics."
)

# 分叉给并行的研究员,在综合员处合并
pipeline = ForkJoinPipeline(
    fork_agents=[security_researcher, performance_researcher],
    join_agent=writer_agent
)

第 5 步:沙箱执行与权限

如果你的 Agent 需要运行代码(这是迟早的事),你就需要沙箱。AgentScope 内置了对 Docker 和 E2B 后端的支持:

from agentscope.service import PythonSandbox

sandbox = PythonSandbox(backend="docker")

toolkit.add(sandbox)

权限系统允许你控制每个 Agent 可以访问哪些工具。这对生产环境至关重要——你肯定不希望一个负责研究的 Agent 一不小心把文件给删了:

from agentscope.permission import PermissionConfig

research_agent = ReActAgent(
    name="researcher",
    model_config_name="gpt-4o",
    tool_list=toolkit,
    max_iters=5,
    permission=PermissionConfig(
        allowed_tools=["web_search", "python_sandbox"],
        denied_tools=["file_write", "shell_exec"]
    )
)

第 6 步:部署为服务

AgentScope Runtime 让你可以把 Agent 流水线部署为一个真正的服务,支持多租户和会话隔离:

from agentscope.runtime import AgentServer

server = AgentServer(
    pipeline=pipeline,
    host="0.0.0.0",
    port=8000,
    multi_tenant=True
)

server.start()

这会为你提供一个 REST API 端点,你可以从任何前端调用它。内置的事件系统负责处理流式响应和人机协作交互。

实用建议与坦诚的局限性

表现不错的方面:

  • 配置驱动的模型设置确实比在代码里散落 API Key 好太多
  • 中间件系统很优雅——你可以添加日志、限流或自定义行为,完全不用动 Agent 的核心逻辑
  • 开箱即用的沙箱支持,省去了你自己搭建隔离层的麻烦
  • 自从 2.0 以来,文档有了显著改善,提供了真正能跑起来的示例

仍有不足的地方:

  • 如果你之前没接触过事件驱动架构,事件系统的学习曲线会相当陡峭
  • 报错信息有时让人摸不着头脑——我曾因为模型配置里的 model_type 字段拼错,导致静默报错,调试了半天
  • RAG 服务还比较新,仍有粗糙之处;在复杂的检索场景下,你可能需要结合自己的向量数据库来补充
  • 多 Agent 循环的调试很困难。当 Agent 跑偏时,想要追踪是哪次迭代、哪个工具调用导致了偏离,需要去翻日志,而目前的日志结构化程度还有待提升

我最大的教训: 先从单个 Agent 开始,确保它稳定运行后再增加更多。多 Agent 系统的复杂性是呈指数级增长的。我第一天就搭了个三 Agent 流水线,结果花了三天时间调试消息传递的问题。后来我推倒重来,一次只加一个 Agent,每个都单独测试没问题后再串联,结果一个下午就搞定了。

AgentScope 2.0 并不完美,但它是第一个让我把更多时间花在解决实际业务问题上,而不是跟框架死磕的框架。虽然这门槛听起来不高,但它的重要性绝对超乎你的想象。

相关 Agent

O

OpenClaw

开源 AI Agent 框架,用于构建自主工作流

了解更多 →