Dossier public des interfaces
Des faits financiers cités, structurés pour les agents IA.
CLI + Skill et MCP sont les interfaces principales pour les agents ; REST fournit le transport HTTPS et par lots. Chaque réponse inclut des métadonnées d’état et de gouvernance ; les faits renvoyés sont associés à des preuves de source et à la sémantique temporelle.
Choisir l’interface adaptée à votre AI agent
Les trois chemins d’accès entrent dans la même CoreServiceBoundary. Les règles relatives au Tenant, aux permissions, aux licences, aux preuves, à la provenance et à l’audit ne changent pas selon le client.
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
# Installer une seule fois: 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"L’outil n’est pas disponible dans le registre actuel: {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"La requête Argus a échoué (audit_id={audit_id}): {error}")
print(json.dumps(payload, indent=2, ensure_ascii=False))
asyncio.run(main())Un parcours gouverné de bout en bout
La découverte précède l’exécution. Chaque appel, réussi ou refusé, reste structuré, limité et auditable.
- 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
Requêtes de référence réutilisables
Connectez-vous avec OAuth avant d’appeler un outil. Ces requêtes utilisent une entité juridique réelle de GLEIF ; vérifiez la couverture et les éléments de preuve renvoyés avant d’utiliser le résultat. Conservez les identifiants des machines fonctionnant sans supervision dans votre environnement de secrets.
- Connectez un AI agent par OAuth interactif ; pour l’automatisation sans intervention, utilisez un machine client ou service account.
- Lisez d’abord le registre et choisissez un outil dont les portées et la finalité correspondent à l’identité.
- Utilisez CLI + Skill ou MCP comme interfaces principales pour les agents ; utilisez REST pour le transport HTTPS et par lots.
- Appelez l’outil avec une heure as_of explicite.
- Validez preuves, qualité, licence, restrictions et audit_id avant d’utiliser les faits.
Valider le paquet, pas seulement le code d’état
Un transport réussi ne prouve pas qu’un fait est utilisable. Vérifiez l’enveloppe gouvernée et le DataPackage avant toute automatisation.
Seule la syntaxe de la requête est présentée ici. Utilisez des identifiants réels, les éléments de preuve renvoyés par des appels précédents et une période dont la couverture est confirmée. Cet exemple ne démontre pas qu’un résultat métier en production a été obtenu.
{
"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]"
}
}Outils
Le registre public des outils définit actuellement 53 outils gouvernés. Ces enregistrements proviennent des mêmes données d’autorité que l’annuaire des outils.
- 01
company_fact_snapshotSnapshot de Faits d'Entreprise
Renvoyer les faits d'entreprise divulgués sous forme de DataPackage structuré.
- REST
/v1/company-fact-snapshot- MCP
company_fact_snapshot- Contrat de retour
- CliToolEnvelope JSON with nested DataPackage result
- 02
- REST
/v1/point-in-time-snapshot- MCP
point_in_time_snapshot- Contrat de retour
- CliToolEnvelope JSON with nested DataPackage result
- 03
evidence_gap_reportRapport des lacunes de preuves
Renvoyer les classifications avec preuves, sans preuves, de faible qualité, conflictuelles et bloquées par licence.
- REST
/v1/evidence-gap-report- MCP
evidence_gap_report- Contrat de retour
- CliToolEnvelope JSON with nested DataPackage result
- 04
agent_data_preflightPré-vérification de Données d'Agent
Renvoyer les métadonnées de pré-vérification de autorisation, licence, champ, plage horaire et target_tool.
- REST
/v1/agent-data-preflight- MCP
agent_data_preflight- Contrat de retour
- CliToolEnvelope JSON with nested agent_data_preflight_result DataPackage
Confiance
Argus fournit une infrastructure factuelle aux limites visibles. Refus, restrictions, fraîcheur, licence et revue humaine restent dans le résultat.
[POLICY]Argus ne génère ni décisions d’investissement ni ordres, mais ne limite pas l’analyse et la sortie indépendantes de l’agent client à partir de données obtenues légalement.
Continuer avec un guide d’autorité
Commencez par le guide de première requête, consultez tous les outils ou ouvrez la documentation de l’interface de votre AI agent.