Skip to content

[Feature] Support Agent-mediated file delivery and message recall across users #620

@Clawiee

Description

@Clawiee

Tags: feature-request, ux, messaging
Quality Rating: ⭐ 9/10


Feature Request 1: Support Agent-mediated File Delivery to Any User

Problem Description

Currently, if Human A asks Agent B to send a file to Human C, Agent B cannot complete this task. The send_channel_file tool should allow an agent to send files on behalf of (or requested by) one user to another user.

Use Case

  • Human A (manager) asks: "帮我把这个报告发给张三"
  • Agent B should be able to deliver the file to Human C (张三) via Feishu/DingTalk/WeCom

Expected Behavior

Human A → Agent B: "发文件给张三"
Agent B → Human C (张三): receives the file

Current Limitation

The tool may require the sender (Agent B) to have direct channel access to Human C, or may lack proper recipient resolution when initiated by a third party.

Proposed Solution

  1. Ensure send_channel_file can resolve any user in the relationship network as recipient
  2. Support "on behalf of" file delivery where Human A is mentioned as the requester in the message

Feature Request 2: Support Message Recall/Retract by Agent

Problem Description

Agents can send messages, but there is no way for Human A to ask Agent B to recall/retract a message that was already sent.

Use Case

  • Human A asks: "撤回刚才那条消息"
  • Agent B should be able to recall its last sent message

Current Limitation

  • No recall_message or retract_message tool exists
  • Even if it did, Feishu/DingTalk/WeCom APIs have different support levels for message recall

Proposed Solution

Option 1: Platform-level Message Recall

  • Add a recall_message(message_id) tool that works across channels
  • The agent tracks sent messages internally with their message IDs
  • When recall is requested, the agent calls the corresponding channel API

Option 2: Context-aware Recall

  • Human A can say "撤回" and the agent recalls its most recent message in that conversation
  • Simple but effective for common use cases

Option 3: Timestamp-based Recall

  • Human A specifies which message to recall: "撤回今天下午3点那条"
  • Agent finds and recalls the matching message

Technical Considerations

  • Feishu: Supports message deletion via API (within 24 hours for group messages)
  • DingTalk: Supports message recall with limitations
  • WeCom: Supports message recall

Priority

Medium-High — Important for practical team workflows


Combined Benefit

These two features together would enable:

Human A → Agent B: "撤回之前发给李四的那个文件,换成新版本"
Agent B: recalls old file + sends new file to 李四

This creates a natural "assistant delegation" workflow where humans can trust agents to manage their communications.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions