AgentScope:面向智能体编程的大语言模型应用构建框架

引言

随着大语言模型(LLM)应用的快速发展,构建复杂、可扩展的智能体应用成为开发者的共同挑战。传统的LLM应用开发模式往往隐藏了底层细节,导致开发者难以掌控和优化应用行为。AgentScope应运而生,作为一个面向智能体编程的框架,它提供了一种透明、灵活且强劲的方式来构建和管理大语言模型应用。

AgentScope:面向智能体编程的大语言模型应用构建框架

核心理念

AgentScope的设计遵循几个核心原则,使其区别于其他LLM应用框架:

1. 透明性(Transparent)

“透明是我们的首要原则”。AgentScope确保所有操作(提示工程、API调用、智能体构建、工作流编排)都对开发者可见且可控,没有任何深度封装或隐式魔法。

2. 实时干预(Realtime Steering)

原生支持实时中断和自定义处理,使智能体能够无缝地响应用户输入并继续对话。

3. 更加智能(More Agentic)

支持智能体工具管理、长期记忆控制和智能RAG等功能,使智能体更加”智能”。

4. 模型无关(Model Agnostic)

“编程一次,运行于所有模型”,AgentScope不绑定特定模型,可以轻松适配各种大语言模型。

5. 积木式智能体构建(LEGO-style)

所有组件模块化且独立,开发者可以像搭积木一样构建自己的智能体应用。

6. 多智能体导向(Multi-Agent Oriented)

专为多智能体设计,强调显式消息传递和工作流编排,避免深度封装。

7. 高度可定制(Highly Customizable)

在工具、提示、智能体、工作流、第三方库和可视化等方面,AgentScope鼓励无处不在的定制化。

AgentScope:面向智能体编程的大语言模型应用构建框架

架构设计

AgentScope采用模块化架构,主要包含以下核心组件:

1. 模型(Model)

支持异步调用、推理模型、流式/非流式返回,可与任何大语言模型集成。

2. 工具(Tool)

支持异步/同步工具函数、流式/非流式返回、用户中断支持、后处理等功能。

3. MCP(Model Communication Protocol)

支持流式HTTP/SSE/StdIO传输,提供有状态和无状态模式,支持客户端和函数级别的细粒度控制。

4. 智能体(Agent)

支持异步执行、并行工具调用、实时干预、自动状态管理、智能体控制的长期记忆和智能体钩子。

5. 追踪(Tracing)

基于OpenTelemetry的追踪,支持连接第三方追踪平台(如Arize-Phoenix、Langfuse)。

6. 记忆(Memory)

支持长期记忆功能,为智能体提供持续学习和上下文理解能力。

7. 会话(Session)

提供会话/应用级自动状态管理,简化应用开发。

8. 评估(Evaluation)

提供分布式和并行评估功能。

9. 格式化器(Formatter)

支持多智能体提示格式化,提供基于截断的格式化策略。

10. 计划(Plan)

支持ReAct式长期规划,允许手动规划指定。

AgentScope:面向智能体编程的大语言模型应用构建框架

使用示例

以下是一个简单的AgentScope使用示例,展示如何创建一个ReAct智能体:

from agentscope.agent import ReActAgent, UserAgent
from agentscope.model import DashScopeChatModel
from agentscope.formatter import DashScopeChatFormatter
from agentscope.memory import InMemoryMemory
from agentscope.tool import Toolkit, execute_python_code, execute_shell_command
import os, asyncio

async def main():
    # 创建工具集
    toolkit = Toolkit()
    toolkit.register_tool_function(execute_python_code)
    toolkit.register_tool_function(execute_shell_command)
    
    # 创建智能体
    agent = ReActAgent(
        name="Friday",
        sys_prompt="You're a helpful assistant named Friday.",
        model=DashScopeChatModel(
            model_name="qwen-max",
            api_key=os.environ["DASHSCOPE_API_KEY"],
            stream=True,
        ),
        memory=InMemoryMemory(),
        formatter=DashScopeChatFormatter(),
        toolkit=toolkit,
    )
    
    # 创建用户
    user = UserAgent(name="user")
    
    # 交互循环
    msg = None
    while True:
        msg = await agent(msg)
        msg = await user(msg)
        if msg.get_text_content() == "exit":
            break

asyncio.run(main())

这段代码创建了一个名为”Friday”的ReAct智能体,可以执行Python代码和Shell命令,并与用户进行交互,直到用户输入”exit”。

实时干预功能

AgentScope的一个关键特性是其原生支持的实时干预功能。开发者可以在智能体执行过程中中断其行为,并提供自定义处理逻辑:

from agentscope.mcp import HttpStatelessClient
from agentscope.tool import Toolkit
import os

async def fine_grained_mcp_control():
    # 初始化MCP客户端
    client = HttpStatelessClient(
        name="gaode_mcp",
        transport="streamable_http",
        url=f"https://mcp.amap.com/mcp?key={os.environ['GAODE_API_KEY']}",
    )
    
    # 获取MCP工具作为本地可调用函数
    func = await client.get_callable_function(func_name="maps_geo")
    
    # 选项1:直接调用
    await func(address="Tiananmen Square", city="Beijing")
    
    # 选项2:传递给智能体作为工具
    toolkit = Toolkit()
    toolkit.register_tool_function(func)
    # ...(后续使用工具)

多智能体对话

AgentScope提供MsgHub和管道来简化多智能体对话,实现高效的消息路由和信息共享:

from agentscope.pipeline import MsgHub, sequential_pipeline
from agentscope.message import Msg
import asyncio

async def multi_agent_conversation():
    # 创建智能体
    agent1 = ...
    agent2 = ...
    agent3 = ...
    agent4 = ...
    
    # 创建消息中心管理多智能体对话
    async with MsgHub(
        participants=[agent1, agent2, agent3],
        announcement=Msg("Host", "Introduce yourselves.", "assistant")
    ) as hub:
        # 顺序发言
        await sequential_pipeline([agent1, agent2, agent3])
        
        # 动态管理参与者
        hub.add(agent4)
        hub.delete(agent3)
        
        # 广播消息
        await hub.broadcast(Msg("Host", "Goodbye!", "assistant"))

asyncio.run(multi_agent_conversation())

AgentScope为大语言模型应用的开发提供了一个透明、灵活且强劲的框架。通过其积木式设计和多智能体导向,开发者可以轻松构建复杂的智能体应用,同时保持对应用行为的完全控制。随着AgentScope v1的发布和相关工具的开源,开发者目前可以更轻松地将智能体应用部署到自己的环境中。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
燕窝冲马桶的头像 - 鹿快
评论 共3条

请登录后发表评论

    暂无评论内容