You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
Agent 进化配置
EnableAgentEvolution - 开启 Agent 自进化
复制全文
下载 pdf
EnableAgentEvolution - 开启 Agent 自进化

接口描述

开启指定 OpenViking 库、指定数据空间的 Agent 自进化能力。
该接口不需要传入 Enabled。调用 EnableAgentEvolution 即表示开启;如需关闭,请调用 DisableAgentEvolution。
开启 Account 开关不会修改各个 User 的 MemoryPolicy。只有当 Account 已开启 Agent 自进化,并且 User 的 MemoryTypes 包含 experiences 时,Cases、Trajectories 和 Experiences 才会参与后续处理。

前置条件

完成 "数据库管理使用说明" 页面的 AK/SK 获取后,可调用本接口。当前库版本需为企业版(enterprise),调用者需具备管理员权限。

请求接口

Action

EnableAgentEvolution

请求方法

POST

Content-Type

application/json

请求参数

参数

类型

是否必填

说明

ResourceID

String

是

OpenViking 库 ID。

AccountID

String

否

要开启 Agent 自进化的数据空间 ID,缺省为 default。

响应参数

参数

类型

说明

Enabled

Boolean

是否已开启 Agent 自进化。

请求示例

Python 请求示例

import os
import datetime
import hashlib
import hmac
from urllib.parse import quote

import requests, json

def norm_query(params):
    query = ""
    for key in sorted(params.keys()):
        if type(params[key]) == list:
            for k in params[key]:
                query = (
                        query + quote(key, safe="-_.~") + "=" + quote(k, safe="-_.~") + "&"
                )
        else:
            query = (query + quote(key, safe="-_.~") + "=" + quote(params[key], safe="-_.~") + "&")
    query = query[:-1]
    return query.replace("+", "%20")

def hmac_sha256(key: bytes, content: str):
    return hmac.new(key, content.encode("utf-8"), hashlib.sha256).digest()

def hash_sha256(content: str):
    return hashlib.sha256(content.encode("utf-8")).hexdigest()

class ClientForConsoleApi:
    def __init__(self, ak, sk, host, region):
        self.ak = ak
        self.sk = sk
        self.host = host
        self.region = region
        self.service_code = "vikingdb"
        self.version = "2025-06-09"

    def request(self, method, action, body, query=None, header=None):
        if query is None:
            query = {}
        if header is None:
            header = {}
        credential = {
            "access_key_id": self.ak,
            "secret_access_key": self.sk,
            "service": self.service_code,
            "region": self.region,
        }
        request_param = {
            "body": json.dumps(body),
            "host": self.host,
            "path": "/",
            "method": method,
            "content_type": 'application/json',
            "date": datetime.datetime.utcnow(),
            "query": {"Action": action, "Version": self.version, **query},
        }
        if body is None:
            request_param["body"] = ""
        x_date = request_param["date"].strftime("%Y%m%dT%H%M%SZ")
        short_x_date = x_date[:8]
        x_content_sha256 = hash_sha256(request_param["body"])
        sign_result = {
            "Host": request_param["host"],
            "X-Content-Sha256": x_content_sha256,
            "X-Date": x_date,
            "Content-Type": request_param["content_type"],
        }
        signed_headers_str = ";".join(
            ["content-type", "host", "x-content-sha256", "x-date"]
        )
        canonical_request_str = "\n".join(
            [request_param["method"].upper(),
             request_param["path"],
             norm_query(request_param["query"]),
             "\n".join(
                 [
                     "content-type:" + request_param["content_type"],
                     "host:" + request_param["host"],
                     "x-content-sha256:" + x_content_sha256,
                     "x-date:" + x_date,
                 ]
             ),
             "",
             signed_headers_str,
             x_content_sha256,
             ]
        )

        hashed_canonical_request = hash_sha256(canonical_request_str)
        credential_scope = "/".join([short_x_date, credential["region"], credential["service"], "request"])
        string_to_sign = "\n".join(["HMAC-SHA256", x_date, credential_scope, hashed_canonical_request])

        k_date = hmac_sha256(credential["secret_access_key"].encode("utf-8"), short_x_date)
        k_region = hmac_sha256(k_date, credential["region"])
        k_service = hmac_sha256(k_region, credential["service"])
        k_signing = hmac_sha256(k_service, "request")
        signature = hmac_sha256(k_signing, string_to_sign).hex()

        sign_result["Authorization"] = "HMAC-SHA256 Credential={}, SignedHeaders={}, Signature={}".format(
            credential["access_key_id"] + "/" + credential_scope,
            signed_headers_str,
            signature,
        )
        header = {**header, **sign_result}
        r = requests.request(method=method,
                             url="https://{}{}".format(request_param["host"], request_param["path"]),
                             headers=header,
                             params=request_param["query"],
                             data=request_param["body"],
                             )
        return r.status_code, r.headers, r.json()

if __name__ == '__main__':
    client = ClientForConsoleApi(
        ak = "*",#替换为您的 AK
        sk ="*" ,#替换为您的 SK
        host="vikingdb.cn-beijing.volcengineapi.com", #替换为您所在地区的域名
        region="cn-beijing"
    )
    http_code, _, result_json = client.request(
        method="POST",
        action="EnableAgentEvolution",#action替换为当前操作
        body={
          "ResourceID": "ov-xxxxxxxxxxxxxxxx",
          "AccountID": "default"
        }
    )
    print("req http status code: ", http_code)
    print("req result: \n", result_json)

响应示例
{
  "ResponseMetadata": {
    "RequestId": "20260904120000XXXXXXXXXXXXXXXX",
    "Action": "GetAgentEvolutionStatus",
    "Version": "2025-06-09",
    "Service": "vikingdb",
    "Region": "cn-beijing"
  },
  "Result": {
    "Enabled": true
  }
}

错误码

HTTP 状态码

错误码

说明

400

InvalidParameter

请求参数或 AccountID 非法。

403

AccessDenied

当前账号无权操作该 OpenViking 库。

404

ResourceNotExist

指定的库或数据空间不存在。

409

OperationConflict

当前存在冲突的状态更新操作。

412

FailedPrecondition

当前资源状态不允许开启 Agent 自进化。

500

InternalError

服务内部错误,或者写入后的状态校验未通过。

最近更新时间:2026.09.11 16:27:30
这个页面对您有帮助吗?
有用
有用
无用
无用