Hạ tầng dữ kiện cho tác nhân
Dữ kiện tài chính có dẫn nguồn, được cấu trúc cho agent AI.
CLI + Skill và MCP là các giao diện chính cho agent; REST cung cấp truyền tải HTTPS và theo lô. Mỗi phản hồi bao gồm siêu dữ liệu trạng thái và quản trị; các dữ kiện được trả về được liên kết với bằng chứng nguồn và ngữ nghĩa thời gian.
Chọn giao diện phù hợp với AI agent của bạn
Cả ba đường dẫn truy cập đều đi vào cùng một CoreServiceBoundary. Các quy tắc về Tenant, quyền, giấy phép, bằng chứng, nguồn gốc và kiểm toán không thay đổi theo ứng dụng khách.
01CLI
argus auth login
argus --base-url https://api.argusfa.com entity-resolve \
--identifier-type lei \
--identifier-value HWUPKR0MPOU8FGXBT39402REST
# 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))03MCP
# Chỉ cài đặt một lần: use the official Argus installer.
# argus auth login --interface mcp
import asyncio
import json
from datetime import timedelta
from argus.cli.oauth import CliOAuthProfile
from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client
from mcp.shared._httpx_utils import create_mcp_http_client
def decode_tool_result(response):
if response.isError:
raise RuntimeError(response.content)
if response.structuredContent is not None:
return response.structuredContent
text = next(block.text for block in response.content if block.type == "text")
return json.loads(text)
async def main() -> None:
tool_name = "entity_resolve"
arguments = json.loads(r'''{"identifier_type":"lei","identifier_value":"HWUPKR0MPOU8FGXBT394","purpose":"factual_lookup","requires_redistribution":false}''')
profile = CliOAuthProfile.from_environment().for_interface("mcp")
token = profile.client().access_token()
if token is None:
raise RuntimeError("Run argus auth login --interface mcp first")
async with (
create_mcp_http_client(headers={"Authorization": f"Bearer {token}"}) as http,
streamable_http_client(profile.audience, http_client=http) as (read, write, _),
):
async with ClientSession(
read,
write,
read_timeout_seconds=timedelta(seconds=30),
) as session:
await session.initialize()
listed_tools = {tool.name for tool in (await session.list_tools()).tools}
registry = decode_tool_result(
await session.call_tool("agent_tool_registry")
)
registry_tools = {tool["tool_name"] for tool in registry["tools"]}
if tool_name not in listed_tools or tool_name not in registry_tools:
raise RuntimeError(f"Công cụ không có trong sổ đăng ký hiện tại: {tool_name}")
response = await session.call_tool(
tool_name,
arguments=arguments,
)
payload = decode_tool_result(response)
if payload.get("success") is not True:
error = payload.get("error")
audit_id = payload.get("audit_id")
if audit_id is None and isinstance(error, dict):
audit_id = error.get("audit_id")
raise RuntimeError(f"Yêu cầu Argus thất bại (audit_id={audit_id}): {error}")
print(json.dumps(payload, indent=2, ensure_ascii=False))
asyncio.run(main())Một lộ trình được quản trị từ đầu đến cuối
Khám phá đi trước thực thi. Mọi lượt gọi thành công hoặc bị từ chối đều có cấu trúc, giới hạn rõ ràng và có thể kiểm toán.
- 01
identityOAuth subject · scopes · purpose · as_of - 02
registryagent_tool_registry · scopes · allowed_purposes - 03
boundarytenant · permission · license · provenance · audit - 04
DataPackagefacts · source_evidence · known_time · quality · audit_id
Yêu cầu tham chiếu có thể tái sử dụng
Đăng nhập bằng OAuth trước khi gọi công cụ. Các yêu cầu này sử dụng một pháp nhân GLEIF có thật; hãy kiểm tra phạm vi bao phủ và bằng chứng được trả về trước khi sử dụng kết quả. Lưu thông tin xác thực của máy chạy không cần giám sát trong môi trường bí mật của bạn.
- Kết nối AI agent bằng OAuth tương tác; với tự động hóa không người giám sát, dùng machine client hoặc service account.
- Đọc sổ đăng ký công cụ trước và chọn công cụ có phạm vi cùng mục đích phù hợp với danh tính.
- Dùng CLI + Skill hoặc MCP làm giao diện chính cho agent; dùng REST để truyền tải HTTPS và theo lô.
- Gọi công cụ với thời điểm as_of rõ ràng.
- Xác thực bằng chứng, chất lượng, giấy phép, hạn chế và audit_id trước khi sử dụng dữ kiện.
Xác thực toàn bộ gói, không chỉ mã trạng thái
Truyền tải thành công không chứng minh dữ kiện có thể sử dụng. Hãy kiểm tra envelope được quản trị và DataPackage lồng bên trong trước khi tự động hóa.
Ở đây chỉ trình bày cú pháp yêu cầu. Hãy sử dụng mã định danh thật, bằng chứng được trả về từ các lần gọi trước và khoảng thời gian có phạm vi bao phủ đã được xác nhận. Ví dụ này không thể hiện một kết quả kinh doanh trên môi trường production đã hoàn tất.
{
"success": true,
"tool_name": "company_fact_snapshot",
"output_format": "json",
"audit_id": "audit_01JYEXAMPLE0000000000000000",
"data_package_version": "company-fact-snapshot-cli-v1",
"source_evidence": [
{
"evidence_id": "evidence:filing:1",
"source_type": "regulatory_filing",
"source_file_id": "filing:example-inc:2025-10k",
"document_url": "https://regulator.example.test/filings/example-inc-2025-10k",
"fragment_position": "char:1024-1080",
"page_number": 42,
"paragraph_position": null,
"field_path": "filing.financials.revenue",
"filing_time": "2026-06-15T09:00:00Z",
"retrieved_at": "2026-06-16T09:30:00Z",
"parser_version": "filing-parser-v1",
"evidence_confidence": 0.99,
"credibility_level": "regulatory_original",
"pointer_type": "source_fragment",
"content_trust": "untrusted_source_text",
"mime_type": "text/plain",
"source_object_sha256": null,
"excerpt_boundary": "external_source_data",
"is_conflicting": false,
"conflict_group_id": null
}
],
"permission_result": {
"allowed": true,
"checked_at": "2026-06-16T10:00:00Z",
"missing_permissions": [],
"reason": "permission_allowed",
"safe_alternative_tools": [
"company_fact_snapshot",
"filing_search",
"source_evidence_lookup"
]
},
"license_status": "authorized",
"output_restrictions": [
"machine_readable_json",
"cite_source_evidence"
],
"result": {
"package_type": "company_fact_snapshot",
"package_version": "company-fact-snapshot-cli-v1",
"generated_at": "2026-06-16T10:00:00Z",
"request_subject": "company:example-inc",
"caller_id": "service:customer-agent",
"institution_id": "institution:customer",
"request_purpose": "factual_lookup",
"facts": [
{
"fact_id": "fact:revenue",
"fact_type": "financial_metric",
"field_name": "revenue",
"value": 125000000,
"evidence_ids": [
"evidence:filing:1"
],
"credibility_level": "regulatory_original",
"extraction_method": "structured_source",
"confidence": 0.99,
"review_status": null
}
],
"sections": [],
"source_evidence": [
{
"evidence_id": "evidence:filing:1",
"source_type": "regulatory_filing",
"source_file_id": "filing:example-inc:2025-10k",
"document_url": "https://regulator.example.test/filings/example-inc-2025-10k",
"fragment_position": "char:1024-1080",
"page_number": 42,
"paragraph_position": null,
"field_path": "filing.financials.revenue",
"filing_time": "2026-06-15T09:00:00Z",
"retrieved_at": "2026-06-16T09:30:00Z",
"parser_version": "filing-parser-v1",
"evidence_confidence": 0.99,
"credibility_level": "regulatory_original",
"pointer_type": "source_fragment",
"content_trust": "untrusted_source_text",
"mime_type": "text/plain",
"source_object_sha256": null,
"excerpt_boundary": "external_source_data",
"is_conflicting": false,
"conflict_group_id": null
}
],
"data_period": {
"start": "2025-01-01T00:00:00Z",
"end": "2025-12-31T23:59:59Z"
},
"filing_time": "2026-06-15T09:00:00Z",
"known_time": "2026-06-16T09:30:00Z",
"revision_time": null,
"invocation_time": "2026-06-16T10:00:00Z",
"data_quality": {
"quality_level": "high",
"issues": [],
"requires_human_review": false
},
"credibility_level": "regulatory_original",
"data_license": {
"license_id": "public-disclosure-v1",
"source": "regulatory_filing",
"status": "authorized",
"allowed_uses": [
"factual_lookup",
"audit_reproduction"
],
"prohibited_uses": [
"restricted_redistribution"
],
"redistribution": "restricted",
"authorized_institutions": [
"institution:customer"
],
"restricted_fields": []
},
"allowed_uses": [
"factual_lookup",
"audit_reproduction"
],
"prohibited_uses": [
"restricted_redistribution"
],
"output_restrictions": [
"machine_readable_json",
"cite_source_evidence"
],
"structured_output_flags": {},
"audit_id": "audit_01JYEXAMPLE0000000000000000",
"output_policy_version": "[email protected]"
}
}Công cụ
Sổ đăng ký công cụ công khai hiện định nghĩa 53 công cụ được quản trị. Các bản ghi đại diện này được tạo từ cùng dữ liệu có thẩm quyền với danh mục công cụ.
- 01
company_fact_snapshotẢnh chụp dữ kiện công ty
Trả về dữ kiện công ty đã công bố dưới dạng gói dữ liệu có cấu trúc.
- REST
/v1/company-fact-snapshot- MCP
company_fact_snapshot- Hợp đồng trả về
- CliToolEnvelope dạng JSON với kết quả DataPackage lồng nhau
- 02
- REST
/v1/point-in-time-snapshot- MCP
point_in_time_snapshot- Hợp đồng trả về
- CliToolEnvelope dạng JSON với kết quả DataPackage lồng nhau
- 03
evidence_gap_reportBáo cáo khoảng trống bằng chứng
Trả về phân loại có bằng chứng, thiếu, chất lượng thấp, xung đột và bị giấy phép chặn.
- REST
/v1/evidence-gap-report- MCP
evidence_gap_report- Hợp đồng trả về
- CliToolEnvelope dạng JSON với kết quả DataPackage lồng nhau
- 04
agent_data_preflightKiểm tra trước dữ liệu tác nhân
Trả về siêu dữ liệu kiểm tra trước về quyền, giấy phép, trường, khoảng thời gian và công cụ đích.
- REST
/v1/agent-data-preflight- MCP
agent_data_preflight- Hợp đồng trả về
- CliToolEnvelope dạng JSON với DataPackage agent_data_preflight_result lồng nhau
Độ tin cậy
Argus cung cấp hạ tầng dữ kiện với giới hạn hiển thị rõ. Trạng thái từ chối, hạn chế, độ mới, giấy phép và yêu cầu con người xem xét luôn nằm trong kết quả.
[POLICY]Argus không tạo quyết định đầu tư hoặc lệnh, nhưng không hạn chế agent phía khách hàng phân tích và xuất kết quả độc lập từ dữ liệu có được hợp pháp.
Tiếp tục với hướng dẫn có thẩm quyền
Bắt đầu bằng hướng dẫn yêu cầu đầu tiên, xem toàn bộ công cụ hoặc mở tài liệu giao diện mà AI agent của bạn sử dụng.