Todos os produtos
Search
Central de documentação

Identidade do Agente (Agent Identity):Securely access DingTalk from an agent

Última atualização: Jul 10, 2026

Use o Agent Identity para permitir que um agente chame a DingTalk Open Platform e grave dados no DingTalk Docs com segurança.

Arquitetura

diagram_agentidentity_dingtalk

Pré-requisitos

Requisitos de ambiente

O ambiente de teste local deve ter o Python (versão 3.10 ou posterior) e o gerenciador de pacotes pip instalados.

Requisitos de usuário e permissão

  1. Requisitos de usuário:

    1. Administrador da DingTalk Open Platform: para gerenciar aplicativos na DingTalk Open Platform.

    2. Usuário de execução de script (usuário RAM): para executar o script de configuração e testar o aplicativo localmente.

  2. Requisitos de permissão RAM:

    O usuário de execução de script deve ter as seguintes permissões:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "agentidentity:*",
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": "agentidentitydata:*",
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": "ram:CreateServiceLinkedRole",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "ram:ServiceName": ["agentidentity.aliyuncs.com"]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "ram:CreateApplication",
            "ram:CreateRole", 
            "ram:CreatePolicy",
            "ram:AttachPolicyToRole", 
            "ram:CreateAppSecret",
            "ram:DeleteApplication"
          ],
          "Resource": "*"
        }
      ]
    }

Chave de API do DashScope

Obtenha uma chave de API do DashScope com permissão para chamar modelos do Model Studio. Se ainda não tiver criado uma, consulte Criar uma chave de API.

Etapa 1: Criar e configurar um aplicativo DingTalk

Criar um aplicativo DingTalk

Siga o Tutorial de configuração do provedor de credenciais OAuth do DingTalk para criar um aplicativo DingTalk e configurá-lo como provedor de credenciais OAuth2 para o Agent Identity.

Configurar permissões do aplicativo DingTalk

  1. Faça login na DingTalk Open Platform. Localize o aplicativo DingTalk criado e acesse a página de detalhes.

  2. No painel de navegação à esquerda da página de detalhes do aplicativo, clique em Permission Management. Na caixa de pesquisa de permissões, insira Document.Document.Write e clique em Enable na coluna Actions. Essa permissão permite que o aplicativo DingTalk sobrescreva documentos do usuário em nome dele.

Etapa 2: Instalar e testar o aplicativo localmente

Obter e preparar o código de exemplo

  1. Clone o repositório de código. Abra um terminal local e execute o comando abaixo para clonar o código de exemplo.

    git clone https://github.com/aliyun/agent-identity-dev-kit.git
    cd agent-identity-dev-kit/agent_identity_python_samples/end-to-end_sample
  2. Instale as dependências. Crie e ative um ambiente virtual Python e instale as dependências necessárias.

    pip install -r requirements.txt
  3. Configure as variáveis de ambiente.

    export AGENT_IDENTITY_REGION_ID=cn-beijing # Agent Identity is currently available only in the China (Beijing) region
    export DASHSCOPE_API_KEY=<your-api-key> # Your DashScope API key

Preparar credenciais de usuário RAM

Configure as credenciais localmente para o usuário de execução de script mencionado na seção Requisitos de usuário e permissão.

Alibaba Cloud CLI

  1. Instale a Alibaba Cloud CLI (ignore se já estiver instalada). Para mais detalhes, consulte Início rápido com a CLI.

  2. Faça login na Alibaba Cloud CLI. Para mais detalhes, consulte Configurar autenticação OAuth para a Alibaba Cloud CLI.

  3. Verifique a configuração de credenciais. Execute o comando aliyun configure list para validar a configuração. A saída deve ser semelhante à seguinte:

    Profile        | Credential          | Valid   | Region           | Language
    ---------      | ------------------  | ------- | ---------------- | --------
    OAuthProfile * | OAuth:xQcliVOdYA@CN | Valid   | cn-hangzhou      | zh

Access key (not recommended)

Crie uma access key para o usuário de execução de script e configure-a nas variáveis de ambiente locais.

export ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>

Executar o script de configuração

No diretório raiz do projeto local, execute o script de configuração prepare.py para criar automaticamente os recursos de cloud necessários:

python -m prepare

Esse script executa as seguintes ações:

  1. Cria um provedor de identidade.

  2. Cria um aplicativo de entrada OAuth 2.1 da Alibaba Cloud.

  3. Cria um aplicativo nativo OAuth 2.1 necessário para os services MCP da Alibaba Cloud (não utilizado neste tutorial).

  4. Cria uma identidade de carga de trabalho e uma função.

  5. Configura o provedor de credenciais.

O script gera informações sobre os recursos criados no arquivo .config.json no diretório raiz.

Se o script falhar devido a uma exceção, como problema de rede ou cota de recursos excedida, limpe os recursos criados antes de executá-lo novamente:

python -m clear
Nota

Para evitar impactos em outros recursos RAM da conta, a lógica de limpeza não exclui a função nem políticas personalizadas. Exclua-os manualmente.

Configurar o provedor de credenciais do DingTalk no código

  1. Na página Agent Identity Credential Providers, localize o provedor de credenciais do DingTalk criado na Etapa 1 e copie o Credential Provider Name.

  2. No arquivo deploy_starter/tools/ding_talk_tool.py do projeto, localize o seguinte código:

    @requires_access_token(
        credential_provider_name="test-provider-for-dingtalk",
        scopes=["openid", "corpid"],
        auth_flow="USER_FEDERATION",
        on_auth_url= on_auth,
        # force_authentication=True,
        callback_url= f"{get_config_with_default('APP_REDIRECT_URI', 'http://localhost:8090')}/callback",
        inject_param_name="access_token",
    )

    Substitua o código existente pelo trecho abaixo e atualize o valor de credential_provider_name para o nome do seu provedor de credenciais do DingTalk.

    @requires_access_token(
        credential_provider_name="your-dingtalk-credential-provider-name",
        scopes=["openid", "corpid"],
        auth_flow="USER_FEDERATION",
        on_auth_url= on_auth,
        # force_authentication=True,
        callback_url= f"{get_config_with_default('APP_REDIRECT_URI', 'http://localhost:8090')}/callback",
        inject_param_name="access_token",
        custom_parameters={"prompt": "consent"},
    )

Etapa 3: Testar e verificar

  1. Inicie o service de proxy do agente. No diretório raiz, execute o seguinte comando:

    python -m deploy_starter.main
  2. Inicie os aplicativos front-end e back-end. No diretório raiz, execute o seguinte comando:

    python -m application.backend.app
  3. Acesse o aplicativo e interaja com o agente:

    1. Após a inicialização do agente e dos aplicativos front-end/back-end, abra um navegador e acesse http://localhost:8090.

    2. Conclua o processo de login na Alibaba Cloud e autorização do usuário. Na janela de chat do aplicativo, interaja com o modelo. Por exemplo, insira: "Escreva o seguinte conteúdo no meu DingTalk Doc: {link do DingTalk Doc} {conteúdo a ser escrito}".

      Após enviar o prompt, o agente invoca a ferramenta do DingTalk e exibe uma solicitação de autorização: "Please click the link to authorize writing to DingTalk Docs", juntamente com um link de autorização OAuth2 (agentidentitydata.cn-beijing.aliyuncs.com/oauth2/authorize?request_uri=urn:ietf:params:oauth:request_uri:xxx). Clique nesse link para autorizar a gravação no DingTalk Doc.

      Nota

      Obtenha previamente o link de um DingTalk Doc existente. Este aplicativo de exemplo não cria novos documentos no DingTalk Docs.

    3. Clique na URL de autorização OAuth na resposta e conclua o processo de login e autorização usando a conta do proprietário do DingTalk Doc.

    4. Após a conclusão da autorização, o agente confirma que o documento foi gravado com sucesso.

    5. Verifique se o conteúdo foi gravado corretamente no DingTalk Doc.

Nota

Combine o recurso de gravação no DingTalk com outros services MCP. Por exemplo, siga o tutorial Usar o Agent Identity no modo pro-code do Model Studio para gravar dados recuperados do MCP da Alibaba Cloud em um DingTalk Doc.

Observações importantes

  • Para executar novamente o script de preparação prepare.py, primeiro execute o script de limpeza no diretório raiz do projeto:

    python -m clear
  • Não altere as configurações constantes no script prepare.py. Caso contrário, o aplicativo pode não funcionar conforme o esperado.

  • Ao implantar os aplicativos front-end e back-end na Alibaba Cloud (por exemplo, em uma instância ECS), associe uma função RAM de instância (como uma função de instância ECS ou uma função de instância do Function Compute) ao ambiente de execução do aplicativo back-end. Conceda também a política de sistema AliyunAgentIdentityDataCompleteAuthAccess à função. Sem isso, o agente não consegue obter um token de acesso OAuth.