Observed since 20 Oct, 23:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentrun-inner-test
Alibaba Cloud Agent Run SDK
AgentRun Python SDK 是阿里云 AgentRun 服务的 Python 客户端库,提供简洁易用的 API 来管理 AI Agent 运行时环境。
pip install agentrun-sdk
可选依赖项
server: 使用 AgentRunServer 集成 HTTP 服务playwright:使用 Browser Sandbox 并集成 playwrightmcp:使用 MCP ToolSetagentscope:集成 AgentScopelangchain:集成 LangChaingoogle-adk:集成 Google ADKcrewai:集成 CrewAIpydantic-ai:集成 PydanticAI假设您需要使用 agentscope,并且需要用到 Browser Sandbox,AgentRun 上的 MCP 服务,那么您应该通过如下方式安装
pip install agentrun-sdk[playwright,mcp,agentscope]
你可以使用任意您喜欢的框架进行 Agent 开发,这里以 langchain 为例
运行脚手架,您需要使用 Serverless Devs 工具,请参考对应 安装教程
如果您拥有 NodeJS 开发环境,可以使用
npm i -g @serverless-devs/s快速安装 Serverless Devs 您也可以直接下载 Serverless Devs 二进制程序 使用 Serverless Devs
使用快速创建脚手架创建您的 Agent
注意! 您需要确保您的 python 环境在 3.10 以上
# 初始化模板
s init agentrun-quick-start-langchain
# 按照实际情况进入代码目录
cd agentrun-quick-start-langchain/code
# 初始化虚拟环境并安装依赖
uv venv && uv pip install -r requirements.txt
设置环境变量(建议通过 .env 配置您的环境变量)
export AGENTRUN_ACCESS_KEY_ID="your-access-key-id"
export AGENTRUN_ACCESS_KEY_SECRET="your-access-key-secret"
export AGENTRUN_ACCOUNT_ID="your-account-id"
export AGENTRUN_REGION="cn-hangzhou"
使用 from agentrun.integration.langchain import model, sandbox_toolset 导入 langchain 的集成能力,这里默认提供了 model、sandbox_toolset、toolset,可以快速创建 langchain 可识别的大模型、工具
同时,通过 AgentRunServer 可以快速开放 HTTP Server 供其他业务集成
from agentrun.integration.langchain import model, sandbox_toolset
from agentrun.sandbox import TemplateType
from agentrun.server import AgentRequest, AgentRunServer
from agentrun.utils.log import logger
# 请替换为您已经创建的 模型 和 沙箱 名称
MODEL_NAME = "<your-model-name>"
SANDBOX_NAME = "<your-sandbox-name>"
if MODEL_NAME.startswith("<"):
raise ValueError("请将 MODEL_NAME 替换为您已经创建的模型名称")
code_interpreter_tools = []
if SANDBOX_NAME and not SANDBOX_NAME.startswith("<"):
code_interpreter_tools = sandbox_toolset(
template_name=SANDBOX_NAME,
template_type=TemplateType.CODE_INTERPRETER,
sandbox_idle_timeout_seconds=300,
)
else:
logger.warning("SANDBOX_NAME 未设置或未替换,跳过加载沙箱工具。")
# ...
# 自动启动 http server,提供 OpenAI 协议
AgentRunServer(invoke_agent=invoke_agent).start()
curl 127.0.0.1:9000/openai/v1/chat/completions \
-XPOST \
-H "content-type: application/json" \
-d '{"messages": [{"role": "user", "content": "通过代码查询现在是几点?"}], "stream":true}'
项目中已经存在 s.yaml 文件,这是 Serverless Devs 的部署配置文件,通过这个文件,您可以配置当前 Agent 在 Agent Run 上的名称、CPU/内存规格、日志投递信息
在示例情况下,您只需要简单修改该文件即可。修改 role 字段为授信给阿里云函数计算(FC)服务,需要拥有AliyunAgentRunFullAccess权限的角色(如果您拥有精细化权限控制的需求,可以根据实际使用的 API 收敛权限)
您可以点击此快速授权链接,创建一个符合相关权限的角色agentRunRole。
此快速创建角色的RoleArn为:acs:ram::{您的阿里云主账号 ID}:role/agentRunRole
role: acs:ram::{您的阿里云主账号 ID}:role/{您的阿里云角色名称}
如果在未来的使用中遇到了任何 Serverless Devs 相关问题,都可以参考 Serverless Devs 相关文档
在部署前,您需要配置您的部署密钥,使用 s config add 进入交互式密钥管理,并按照引导录入您在阿里云的 Access Key ID 与 Access Key Secret。在录入过程中,您需要短期记忆一下您输入的密钥对名称(假设为 agentrun-deploy)
配置完成后,需要首先执行s build构建,该步骤依赖本地的docker服务,对代码目录下的requirements.txt进行构建,以便部署在云端。
随后即可执行s deploy进行部署操作。
s build
s deploy -a agentrun-deploy
# agentrun-deploy 是您使用的密钥对名称,也可以将该名称写入到 s.yaml 开头的 access: 字段中
部署完成后,您可以看到如下格式的输出
endpoints:
-
id: ...
arn: ...
name: ...
url: https://12345.agentrun-data.cn-hangzhou.aliyuncs.com/agent-runtimes/abcd/endpoints/prod/invocations
此处的 url 为您的 Agent 调用地址,将实际的请求 path 拼接到该 base url 后,即可调用云上的 Agent 资源
curl https://12345.agentrun-data.cn-hangzhou.aliyuncs.com/agent-runtimes/abcd/endpoints/prod/invocations/openai/v1/chat/completions \
-XPOST \
-H "content-type: application/json" \
-d '{"messages": [{"role": "user", "content": "通过代码查询现在是几点?"}], "stream":true}'
用于配置认证信息和客户端参数。
from agentrun.utils.config import Config
config = Config(
access_key_id="your-key-id", # Access Key ID
access_key_secret="your-secret", # Access Key Secret
security_token="your-sts-token", # 可选:STS Token
token="token", # 数据链路 token(可以在无 AK 情况下调用数据链路)
headers={}, # 附加的请求头
account_id="your-account-id", # 账号 ID
region_id="cn-hangzhou", # 区域
timeout=30, # 可选:请求超时(秒)
control_endpoint="", # 可选:自定义控制端点
data_endpoint="", # 可选:自定义数据端点
)
# 使用配置创建客户端
client = agent_runtime.AgentRuntimeClient()
agent = client.create(input_config, config=config)
SDK 会自动读取以下环境变量:
| 环境变量 | 说明 | 备用变量 |
|---|---|---|
AGENTRUN_ACCESS_KEY_ID | Access Key ID | ALIBABA_CLOUD_ACCESS_KEY_ID |
AGENTRUN_ACCESS_KEY_SECRET | Access Key Secret | ALIBABA_CLOUD_ACCESS_KEY_SECRET |
AGENTRUN_SECURITY_TOKEN | STS Token | ALIBABA_CLOUD_SECURITY_TOKEN |
AGENTRUN_ACCOUNT_ID | 账号 ID | FC_ACCOUNT_ID |
AGENTRUN_REGION | 区域 | FC_REGION |
AGENTRUN_CONTROL_ENDPOINT | 控制端点 | - |
AGENTRUN_DATA_ENDPOINT | 数据端点 | - |
AGENTRUN_SDK_DEBUG | 开启 DEBUG 日志 | - |
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
crcmodEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | crcmod>=1.7 | runtime |
pydanticEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pydantic>=2.12.4 | runtime |
httpxEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.23.0 | runtime |
python-dotenvEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | python-dotenv>=1.2.1 | runtime |
typing-extensionsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | typing-extensions>=4.15.0 | runtime |
litellmEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | litellm>=1.79.3 | runtime |
alibabacloud-devs20230714Environment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alibabacloud-devs20230714>=2.4.1 | runtime |
pydashEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pydash>=8.0.5 | runtime |
alibabacloud-agentrun20250910Environment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alibabacloud-agentrun20250910>=5.6.3 | runtime |
alibabacloud_tea_openapiEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alibabacloud_tea_openapi>=0.4.2 | runtime |
alibabacloud_bailian20231229Environment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alibabacloud_bailian20231229>=2.6.2 | runtime |
agentrun-mem0aiEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | agentrun-mem0ai>=0.0.10 | runtime |
alibabacloud_gpdb20160503Environment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alibabacloud_gpdb20160503>=5.0.1 | runtime |
tablestore-agent-storageEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | tablestore-agent-storage>=1.0.4 | runtime |
clickEnvironment{
"extras": "",
"marker": "extra == \"core\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | click>=8.0.0; extra == "core" | runtime |
richEnvironment{
"extras": "",
"marker": "extra == \"core\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | rich>=13.0.0; extra == "core" | runtime |
fastapiEnvironment{
"extras": "",
"marker": "extra == \"server\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | fastapi>=0.104.0; extra == "server" | runtime |
uvicornEnvironment{
"extras": "",
"marker": "extra == \"server\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | uvicorn>=0.24.0; extra == "server" | runtime |
ag-ui-protocolEnvironment{
"extras": "",
"marker": "extra == \"server\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | ag-ui-protocol>=0.1.10; extra == "server" | runtime |
tablestore-for-agent-memoryEnvironment{
"extras": "",
"marker": "extra == \"server\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | tablestore-for-agent-memory>=1.1.2; extra == "server" | runtime |
langchainEnvironment{
"extras": "",
"marker": "python_version >= \"3.10\" and extra == \"langchain\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | langchain>=1.0.0; python_version >= "3.10" and extra == "langchain" | runtime |
langchain-openaiEnvironment{
"extras": "",
"marker": "python_version >= \"3.10\" and extra == \"langchain\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | langchain-openai>=1.0.0; python_version >= "3.10" and extra == "langchain" | runtime |
langchain-deepseekEnvironment{
"extras": "",
"marker": "python_version >= \"3.10\" and extra == \"langchain\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | langchain-deepseek>=1.0.1; python_version >= "3.10" and extra == "langchain" | runtime |
google-adkEnvironment{
"extras": "",
"marker": "extra == \"google-adk\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | google-adk>=1.18.0; extra == "google-adk" | runtime |
agentscopeEnvironment{
"extras": "",
"marker": "extra == \"agentscope\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | agentscope>=0.1.6; extra == "agentscope" | runtime |
crewaiEnvironment{
"extras": "",
"marker": "extra == \"crewai\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | crewai>=1.6.0; extra == "crewai" | runtime |
onnxruntimeEnvironment{
"extras": "",
"marker": "python_version == \"3.10\" and extra == \"crewai\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | onnxruntime==1.23.2; python_version == "3.10" and extra == "crewai" | runtime |
pydantic-aiEnvironment{
"extras": "",
"marker": "python_version >= \"3.10\" and extra == \"pydantic-ai\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pydantic-ai>=1.22.0; python_version >= "3.10" and extra == "pydantic-ai" | runtime |
playwrightEnvironment{
"extras": "",
"marker": "extra == \"playwright\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | playwright>=1.40.0; extra == "playwright" | runtime |
mcpEnvironment{
"extras": "",
"marker": "python_version >= \"3.10\" and extra == \"mcp\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | mcp>=1.21.2; python_version >= "3.10" and extra == "mcp" | runtime |
tablestoreEnvironment{
"extras": "",
"marker": "extra == \"tablestore\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | tablestore>=6.1.0; extra == "tablestore" | runtime |
langgraphEnvironment{
"extras": "",
"marker": "python_version >= \"3.10\" and extra == \"langgraph\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | langgraph>=0.2.0; python_version >= "3.10" and extra == "langgraph" | runtime |
langchain-coreEnvironment{
"extras": "",
"marker": "python_version >= \"3.10\" and extra == \"langgraph\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | langchain-core>=0.3.0; python_version >= "3.10" and extra == "langgraph" | runtime |
langchain-openaiEnvironment{
"extras": "",
"marker": "python_version >= \"3.10\" and extra == \"langgraph\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | langchain-openai>=1.0.0; python_version >= "3.10" and extra == "langgraph" | runtime |
langchain-deepseekEnvironment{
"extras": "",
"marker": "python_version >= \"3.10\" and extra == \"langgraph\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | langchain-deepseek>=1.0.1; python_version >= "3.10" and extra == "langgraph" | runtime |
bdist_wheel · 494.7 KB · Python py3
sdist · 386.86 KB · Python source
Observed since 20 Oct, 23:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:c153d32e8a901e925705f57ffbf6129b45d7cc637f120076966372279cc4f84d