mcpField
A
agentscope-skill

agentscope-skill

github.com/agentscope-aiAgent 工作流133120 次安装7 周前更新
代码仓库

关于 agentscope-skill

这是一份面向 AgentScope 2.x 开发的技能指南,介绍如何使用开源框架构建 LLM Agent 应用,涵盖 SDK 组合与内置服务,并强调按已安装版本核对 API。

主要功能

  1. 01组合 Agent 与工具
  2. 02编排多 Agent
  3. 03支持状态、记忆与 RAG
  4. 04处理流式事件与交互
  5. 05介绍内置服务和工作区

适用场景

  1. 01构建可调用工具的 Agent
  2. 02协调多个 Agent
  3. 03处理 Agent 流式交互
  4. 04实现 AgentScope 服务

MCP 相关

AgentScope Toolkit 可接收 MCP 客户端以及工具和技能路径。指南介绍如何将它们组合进 Agent 应用。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/agentscope-ai/skills --skill agentscope-skill

安装后在 Claude Code 中输入/agentscope-skill确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
deployment_guide.md
multi_agent_orchestration.md
scripts/
view_module_signature.py
view_pypi_latest_version.sh

详细介绍

AgentScope 2.0

AgentScope 是一个开源框架,用于构建和提供由大模型驱动的 Agent 应用,涵盖从使用单个工具的 Agent 到协同多 Agent 系统。它提供应用编排和服务基础设施;模型推理由已配置的提供方负责,工具则通过已配置的本地或沙箱后端执行。它由两层组成:

  • Agent SDK: Agent 应用的构建模块,包括 Agent、模型、消息、工具、上下文和状态管理、中间件、记忆、RAG、多 Agent 编排和工作区。
  • 服务: 基于 SDK 构建的服务层,提供用于 Agent 和会话管理、持久化、团队、调度、通道及资源管理的 API,并提供 Web UI 示例。

此技能支持 AgentScope 2.x,基于 2.0.8。API 签名和行为应遵循用户环境中实际安装的 SDK 版本。agentscope-runtime 和 agentscope-studio 与 2.x 不兼容;请改用内置的服务和工作区功能。

安装

需要 Python 3.11 或更高版本。

pip install agentscope
# or
uv pip install agentscope

核心概念和基本示例

  • Agent 负责推理/行动循环。使用 reply() 获取最终的 Msg,或使用 reply_stream() 获取事件。launch_console() 负责终端交互、工具确认和中断处理。
  • 使用凭证对象和 model=... 构造提供方模型。格式化器仍然存在,但配置在模型上;提供方会选择默认格式化器。它们不会传递给 Agent。
  • Toolkit 接受工具对象、MCP 客户端和技能路径/加载器。使用 FunctionTool 封装 Python 函数;自定义工具类则使用 ToolBase。
  • Msg 包含类型化内容块。UserMsg、AssistantMsg 和 SystemMsg 是便捷工厂,也接受文本字符串。二进制媒体使用带有 URLSource 或 Base64Source 的 DataBlock,包括 media_type。
  • 事件: 类型化事件向应用暴露 Agent 执行过程:回复和模型调用生命周期、流式内容、工具调用/结果,以及确认请求或外部执行请求。通过 reply_stream() 消费这些事件;发送交互结果事件以恢复 Agent。Msg 表示对话内容,而事件描述执行和交互过程。
  • AgentState 保存对话和执行状态。Agent 配置使用 ContextConfig、InjectionConfig、ModelConfig 和 ReActConfig。中间件可添加记忆、RAG、跟踪和其他钩子。

以下示例展示如何组合 Agent、模型和 Python 函数工具:

import asyncio
import os

from agentscope.agent import Agent
from agentscope.console import launch_console
from agentscope.credential import DashScopeCredential
from agentscope.model import DashScopeChatModel
from agentscope.tool import FunctionTool, Toolkit


def add(a: int, b: int) -> str:
    """Add two integers.

    Args:
        a: First integer.
        b: Second integer.
    """
    return str(a + b)


async def main() -> None:
    agent = Agent(
        name="Friday",
        system_prompt="You are a helpful assistant named Friday.",
        model=DashScopeChatModel(
            credential=DashScopeCredential(
                api_key=os.environ["DASHSCOPE_API_KEY"],
            ),
            model=os.environ.get("DASHSCOPE_MODEL", "qwen3.6-plus"),
        ),
        toolkit=Toolkit(tools=[FunctionTool(add)]),
    )
    await launch_console(agent)


if __name__ == "__main__":
    asyncio.run(main())

如需以编程方式交互,请在包含现有 agent 的异步函数中使用以下代码:

from agentscope.message import UserMsg

result = await agent.reply(UserMsg(name="user", content="Hello!"))
print(result.get_text_content())

reply() 会消费流式事件。如果工具需要确认或外部执行,自定义 UI 应消费 reply_stream(),并将相应的 UserConfirmResultEvent 或 ExternalExecutionResultEvent 反馈回来以恢复执行。流可能会在等待该输入时结束;不要将每次流结束都视为成功完成。请参考控制台实现和事件架构,了解此生命周期。FunctionTool 默认会请求权限。

如需多模态输入,请使用支持所提供媒体类型的模型:

from agentscope.message import DataBlock, TextBlock, URLSource, UserMsg

message = UserMsg(
    name="user",
    content=[
        TextBlock(text="Describe this image."),
        DataBlock(
            source=URLSource(
                url="https://example.com/image.png",
                media_type="image/png",
            ),
        ),
    ],
)

使用仓库

编写应用代码前,请复用现有的 AgentScope 检出副本,或克隆仓库以检查其中的示例和实现:

git clone --branch main https://github.com/agentscope-ai/agentscope.git
# Inspect local changes before updating an existing checkout.
git -C agentscope status --short
git -C agentscope pull --ff-only origin main
仓库结构
agentscope/
├── src/agentscope/
│   ├── agent/          # Agents and their configuration
│   ├── model/          # Chat model providers
│   ├── credential/     # Provider credentials
│   ├── console/        # Terminal interaction and event rendering
│   ├── formatter/      # Provider-specific message formatting
│   ├── message/        # Messages and typed content blocks
│   ├── tool/           # Toolkit, adapters, and built-in tools
│   ├── mcp/            # MCP clients and configuration
│   ├── skill/          # Skill loading
│   ├── state/          # Agent conversation and execution state
│   ├── middleware/     # Hooks, memory, RAG, tracing, and budgets
│   ├── event/          # Streaming and interaction events
│   ├── permission/     # Tool permissions and human confirmation
│   ├── pipeline/       # Multi-agent workflow abstractions
│   ├── workspace/      # Local and sandboxed execution backends
│   ├── rag/            # Retrieval building blocks
│   ├── embedding/      # Embedding model providers
│   ├── realtime/       # Realtime model interfaces
│   ├── tts/            # Text-to-speech models
│   └── app/            # Service APIs, storage, teams, channels, and hubs
├── examples/
│   ├── console/        # Terminal agent composition
│   ├── agent_service/  # Service configuration
│   ├── web_ui/         # Service frontend
│   ├── pipeline/       # Executor/verifier workflow
│   ├── a2a/            # Remote agent communication
│   ├── long_term_memory/
│   ├── rag/
│   ├── realtime/
│   └── workspace/
├── docs/               # News, roadmap, and changelog
└── tests/              # SDK and service behavior tests

浏览检出副本时,请确认实际的目录布局。从与任务匹配的示例类别开始,阅读其 README 和代码,然后沿着导入路径查看 src/agentscope/。在这些目录中搜索所需的类或功能。优先使用现有框架功能,而不是重新实现;添加自定义行为前,请检查基类及继承的方法。

资源

官方文档
GitHub 资源
参考资料

需要了解更多细节时,请阅读以下本地参考资料:

  • 多 Agent 编排:直接消息传递、将工作者用作工具、GoalPipeline、Agent Team 和 A2A。
  • 部署指南:内置服务、存储、消息总线、工作区和沙箱后端。
脚本
  • view_module_signature.py:检查当前 Python 环境中的模块、类和方法,包括继承的 API 和源码位置。
  • view_pypi_latest_version.sh:查询最新发布的 AgentScope 版本。

示例查询:

python /path/to/agentscope-skill/scripts/view_module_signature.py --module agentscope
python /path/to/agentscope-skill/scripts/view_module_signature.py --module agentscope.agent.Agent
python /path/to/agentscope-skill/scripts/view_module_signature.py --module agentscope.agent.Agent.reply_stream
python /path/to/agentscope-skill/scripts/view_module_signature.py --module agentscope.app.storage
bash /path/to/agentscope-skill/scripts/view_pypi_latest_version.sh

模块发现不会导入所有可选集成。系统会报告缺失的可选导入;请使用目标 pyproject.toml,仅安装任务所需的额外依赖(例如 service、model-gemini 或 model-ollama)。 PyPI 助手仅报告发行版元数据,不报告已安装的版本。

交付代码前,请检查公开导出项、构造函数/方法签名、继承的方法以及清理要求。使用目标版本验证示例;离线行为检查请使用虚假模型,并将此类检查与实际的服务提供商、Redis、容器或部署运行区分开来。

评论

支持 Markdown