通过 OAuth 连接 AI Agent。无人值守自动化请使用机器客户端或服务账户,并将凭据保存在受保护的环境变量或密钥存储中。调用前先浏览注册表,并处理结构化的成功或失败响应。

Argus 自身不生成投资判断或执行订单,但不限制客户端 AI Agent 使用合法取得的数据独立推理和输出。

REST 与 API

  1. 使用权威 OpenAPI 文档获取当前 REST 请求结构。
  2. 发送 OAuth Bearer token;machine client 和 service account 可使用 X-Argus-API-Key。
  3. 根据 OpenAPI 契约验证结构化 HTTP 响应和状态码。
  4. 400/422 表示请求问题,401 表示认证问题,403 表示治理拒绝,500/503 表示服务故障。
  5. 保留 audit_id,仅对可重试故障进行有界重试。
# First run: argus auth login
import json
from urllib.request import Request, HTTPRedirectHandler, build_opener
from argus.cli.oauth import CliOAuthProfile

profile = CliOAuthProfile()
token = profile.client().access_token()
if token is None:
    raise RuntimeError("Run argus auth login first")

class NoRedirect(HTTPRedirectHandler):
    def redirect_request(self, *args, **kwargs):
        return None

request = Request(
    profile.api_base_url + "/v1/entity-resolve",
    data=json.dumps(json.loads(r'''{"identifier_type":"lei","identifier_value":"HWUPKR0MPOU8FGXBT394","purpose":"factual_lookup","requires_redistribution":false}''')).encode(),
    headers={"Authorization": f"Bearer {token}",
             "Content-Type": "application/json", "User-Agent": "Argus REST client"},
    method="POST",
)
with build_opener(NoRedirect()).open(request, timeout=30) as response:
    envelope = json.load(response)
    print(json.dumps(envelope, indent=2))

阅读 REST 端点清单和错误契约。