外部 Agent Runtime 接入
使用独立执行 Token 发现并调用当前授权的 Runtime 方法。
外部 Agent 使用独立的 lc_agent_ 执行 Token,通过平台公网 /agent/v1/agent-api-service/api/**
访问 Runtime 能力。平台内部 Agent 使用 Session 授权;两个入口使用同一套 Runtime 授权目录和方法执行协议。
身份与授权
执行 Token 由 Access Credential Service 按已授权用户签发,绑定用户、工作区、有限的 accessGrantId 和到期时间。
Token 只在签发时返回明文。accessGrantId 是授权记录的标识,不能当作 Bearer Token。
执行凭证始终受签发用户的权限和凭证撤销状态约束。
每次发现或执行都检查 Token、Grant 和当前工作区 IAM。撤销 Token、撤销 Grant 或收回用户权限后,后续请求拒绝。
调用方不能通过提交 userId、accessGrantId、credentialId 或 context_map 改变执行身份。
workspaceId 只是与凭据绑定核对的业务选择器。
配置中的 all、selected、none 只控制候选方法范围,不能绕过授权。
all 形成授权时的方法快照,后来安装的方法不会自动进入已有 Grant。
发现服务与方法
向 POST /agent/v1/agent-api-service/api/runtime-services/query 发送 JSON,并在标准
Authorization: Bearer <执行 Token> 中携带凭据。公网地址从所属平台环境的 API 配置读取。
{
"contractVersion": "1.0.0",
"workspaceId": 42,
"applicationRuntimeId": "your-runtime-id"
}工作区和 Runtime ID 必须替换为实际授权目标。结果使用 CModel 信封,
data.services 只包含当前允许访问的方法。每个服务含 businessId、serviceName 和 methods;
方法含 methodName 与完整的 method_definition,调用前按其中的参数和返回类型准备数据。
需要查询指定服务或方法时,可增加 businessId,以及该服务下的 method。没有可用方法的服务不会出现在结果中。
空目录表示本次授权范围中没有可用方法,不能单凭空目录断言工作区未安装服务。
执行方法
向 POST /agent/v1/agent-api-service/api/runtime-methods/execute 发送:
{
"contractVersion": "1.0.0",
"workspaceId": 42,
"applicationRuntimeId": "your-runtime-id",
"businessId": "service-from-discovery",
"method": "method-from-discovery",
"params": {}
}params 必须是符合目标 method_definition 的对象。服务在执行前重新校验该准确方法的授权,
不会把上一次发现结果当作后续调用的授权证明。未知字段、未知合同版本和工作区冲突会拒绝。
成功和失败均使用 CModel 信封,消费方检查 errorCode;下游业务错误保留原 Owner 的错误码与错误内容。
调用不自动重试。连接超时可能发生在业务副作用已经完成之后,是否重试应遵循目标方法自身的幂等合同。
执行入口只提供 Runtime 发现和执行;管理、会话创建、员工/设备登记、健康探针及 /inner/** 不属于此入口。