AgentGrid Python SDK for JDCloud AgentGrid Runtime
Project description
AgentGrid Python SDK
AgentGrid Python SDK v1 提供面向 Runtime 的高层调用接口,主路径围绕以下 API:
from agentgrid import AgentGridProfileruntime.invoke()runtime.create_runtime()/update_runtime()/delete_runtime()/get_runtime()/list_runtimes()runtime_session()
Python 版本要求
- Python
>=3.10
安装
pip
pip install jdcloud-agentgrid
uv(下游项目)
uv add jdcloud-agentgrid
uv sync
SDK 默认配置文件(agentgrid.yaml)
get_sdk_default_config() 会自动尝试读取入口脚本同级的 agentgrid.yaml。
- 查找规则固定为:
Path(sys.argv[0]).resolve().parent / "agentgrid.yaml" - 文件不存在:忽略并回退到 SDK 内置默认配置
- 仅识别
basic节点,且字段必须是AgentGridConfig已定义字段
最小示例:
basic:
region: cn-north-1
endpoint: https://agentgrid.jdcloud-api.com
data_endpoint: https://agentgrid-cn-north-1.jdcloud.com
timeout: 30
connect_timeout: 5
read_timeout: 30
max_retries: 2
user_agent_extra: demo-app/1.0
例如入口脚本位于 ./examples/run.py,则配置文件应放在 ./examples/agentgrid.yaml。
最小示例(Quick Start)
显式 auth(兼容旧用法):
from agentgrid import AgentGridProfile, runtime_session
profile = AgentGridProfile(
region="cn-north-1",
data_endpoint="https://agentgrid-cn-north-1.jdcloud.com", # 可选:默认就是该地址
)
with runtime_session("cn-north-1", "your-runtime-id", profile=profile) as runtime:
resp = runtime.invoke(
{"text": "你好,AgentGrid"},
api_key="your-runtime-api-key",
)
print(resp.get("output_text"))
print(resp.get("request_id"), resp.get("trace_id"))
默认 AK/SK 凭证链(无需显式 auth):
from agentgrid import AgentGridProfile
profile = AgentGridProfile(region="cn-north-1")
当未显式传入 auth 时,AK/SK 优先级固定为:
access_key/secret_key构造参数JDCLOUD_ACCESS_KEY/JDCLOUD_SECRET_KEY~/.jdcloud/credentials的[default](access_key_id/secret_access_key)
任一来源出现半配置(仅 AK 或仅 SK)会立即报错并终止降级。
支持的认证方式(v1)
ApiKeyAuthProviderJdcloudAkskAuthProvider
v1 仅支持以上两种认证方式。
Runtime 与会话示例
统一调用(自动 JSON/SSE 分流):
with runtime_session("cn-north-1", "rt-template-001", profile=profile) as runtime:
result = runtime.invoke(
{"text": "请总结这段文本"},
api_key="your-runtime-api-key",
metadata={"scene": "demo"},
)
if isinstance(result, dict):
print(result.get("output_text"))
else:
for event in result:
if event.type == "text_delta" and event.text:
print(event.text, end="", flush=True)
使用 runtime_session():
from agentgrid import runtime_session
with runtime_session("cn-north-1", "chat-001", profile=profile) as runtime:
resp = runtime.invoke("会话内调用", api_key="your-runtime-api-key")
print(resp.get("session_id"))
# 退出上下文时仅记录 end_session 日志,不执行显式网络清理
类型模型(v1)
runtime.invoke()按响应Content-Type自动返回:- JSON:
dict - SSE:可同步迭代
StreamResponse
- JSON:
StreamEvent统一字段:type、text、data、raw
异常与排障
统一异常基类:AgentGridError。
主要子类:
AgentGridAuthenticationErrorAgentGridAuthorizationErrorAgentGridRateLimitErrorAgentGridTimeoutErrorAgentGridTransportErrorAgentGridStreamErrorAgentGridServerError
异常对象稳定暴露诊断字段:code、request_id、retryable。
控制口与数据口边界(务必注意):
- 控制口接口(
create/update/delete/get/list)仅支持 AK/SK,使用 API Key 会抛出AgentGridAuthenticationError(code="AUTHENTICATION_REQUIRED") - 数据口接口(
invoke)本期强制 API Key;优先级:请求级api_key>agentgrid.yaml的runtime.api_key
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jdcloud_agentgrid-0.1.5.tar.gz.
File metadata
- Download URL: jdcloud_agentgrid-0.1.5.tar.gz
- Upload date:
- Size: 36.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08a1ab452ec5a23e95fb7415a132d3e88bf9d8f7382b24faeaf109449ab0a2cd
|
|
| MD5 |
aa73525d54246bb33cd8572bbbee46af
|
|
| BLAKE2b-256 |
e276884017c6ff100015eaf461350b3d41690646fc3d52bc0329ed9cda8c35cb
|
File details
Details for the file jdcloud_agentgrid-0.1.5-py3-none-any.whl.
File metadata
- Download URL: jdcloud_agentgrid-0.1.5-py3-none-any.whl
- Upload date:
- Size: 50.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e41b18dd352bbb49a2f6ab48ebc6ad0b430882c0720f6af26b4c3499fcb1ed1e
|
|
| MD5 |
cbfce62b9b6c7ba4f24e161b068d5478
|
|
| BLAKE2b-256 |
0e8410761343edf4a1d82d33abe0066ef06157e6ed83e9acdc3e395a027c0800
|