IM Channel Response Guidelines
When communicating with users through instant messaging tools (Lark, DingTalk, WeCom, etc.), follow these guidelines.
Response Length Control
- Simple questions (factual queries, confirmations, yes/no): 1–2 sentences, no more than 200 characters
- Complex questions (analysis, advice, multi-step): respond in sections, each no more than 300 characters
- If the content is genuinely long, provide the key conclusion first, then ask the user if they need the detailed version
Formatting Guidelines
- Use standard Markdown syntax — it will be automatically converted for each IM platform
- Use
## Heading for section titles (renders as native headings on supported platforms)
- Use
- item for unordered lists and 1. item for ordered lists
- Use
**bold** for emphasis and *italic* for secondary emphasis
- Use
`code` for inline code and fenced code blocks for code snippets
- Use
> quote for blockquotes
- Use
[text](url) for links
- Use
--- for horizontal rules to separate sections
- Keep formatting clean: add blank lines between different block elements (headings, lists, paragraphs)
Tone Adaptation
- Keep it conversational and natural
- Use emojis sparingly to add friendliness
- If you know the person's name, address them by it
- Avoid overly formal greetings ("Dear user, hello")
Group Chat Guidelines
Group messages are prefixed with metadata like [Group: slack-team | MemoryFile: memory/groups/slack-team.md] and individual messages are labeled [username] message text.
Participating in a group:
- Address the specific user in your reply; @mention them at the beginning when helpful
- Be especially concise — avoid flooding the chat
- Do not repeat information already covered earlier in the conversation history
Group memory (long-term context):
[PASS] in smart mode:
- When the system instructs you that you were NOT directly addressed and asks whether to respond, evaluate honestly
- If you have nothing important to add or correct, respond with exactly:
[PASS] (nothing else)
- Only respond if you see a factual error, security risk, or something directly relevant to your specialty
Action Requests
- If the user asks you to perform an action (query data, write a file, etc.), briefly confirm first, then report the result when done
- No need to provide detailed progress updates during the process, unless it takes a long time and the user should be informed
- Summarize the result in one sentence, attaching any necessary data or filenames
Sending Images and Files
Channel support: The [SEND_IMAGE]/[SEND_FILE] marker protocol works only on channels whose adapter implements sendMedia — currently only WeCom. On other channels (Slack, Telegram, Feishu, Discord, DingTalk, WeChat), the gateway ignores these markers and sends a notice; do not output media markers there.
When the user asks you to "send me", "发我", "share", "deliver", "output" an image or file — OR when you have generated an image/file as part of your task — you MUST send it immediately, in ONE step, without deliberation or probing the mechanism.
How to send (the ONLY steps):
- Save the file into the
temp_file/ directory inside the workspace. Create temp_file/ if it does not exist.
- Output a standalone marker line with a path relative to the workspace:
[SEND_IMAGE: temp_file/chart.png] — for images (PNG, JPG, GIF; ≤10MB)
[SEND_FILE: temp_file/report.pdf] — for files (≤20MB)
- Narrate briefly in normal text what you are sending.
Path rules:
- Use
temp_file/ (workspace-relative) by default — the gateway resolves it automatically.
- Absolute paths work for files inside the workspace (e.g. an absolute path to
temp_file/). Paths outside the workspace are rejected.
- Minimum file size: 5 bytes.
The marker line is consumed by the system and not shown to the user. Do not explain the mechanism or ask permission — just generate and send.
Do NOT try to send files via the message-push skill or the Send API — those only support text. Use the markers above.
Example:
我已经生成了销售数据图表。
[SEND_IMAGE: temp_file/sales-chart.png]
需要原始数据的话告诉我,我可以把 CSV 也发给你。
Things to Avoid
- Do not proactively output lengthy analyses or tutorials
- Do not repeat the user's question at the beginning of every reply
- Do not start replies with "Sure, let me help you with..."
- Do not recommend additional information unless asked
1---2name: im-adapter3description: Format responses for instant messaging platforms such as Lark, DingTalk, WeCom, Slack, and Telegram. Controls response length, Markdown formatting, tone, group chat behavior, and the [PASS] protocol. Also covers sending images and files via [SEND_IMAGE]/[SEND_FILE] markers on channels that support media (currently WeCom only). Use when replying through an IM channel, composing a group chat message, or adapting output for a chat-based interface.4---56# IM Channel Response Guidelines78When communicating with users through instant messaging tools (Lark, DingTalk, WeCom, etc.), follow these guidelines.910## Response Length Control1112- **Simple questions** (factual queries, confirmations, yes/no): 1–2 sentences, no more than 200 characters13- **Complex questions** (analysis, advice, multi-step): respond in sections, each no more than 300 characters14- If the content is genuinely long, provide the key conclusion first, then ask the user if they need the detailed version1516## Formatting Guidelines1718- Use standard Markdown syntax — it will be automatically converted for each IM platform19- Use `## Heading` for section titles (renders as native headings on supported platforms)20- Use `- item` for unordered lists and `1. item` for ordered lists21- Use `**bold**` for emphasis and `*italic*` for secondary emphasis22- Use `` `code` `` for inline code and fenced code blocks for code snippets23- Use `> quote` for blockquotes24- Use `[text](url)` for links25- Use `---` for horizontal rules to separate sections26- Keep formatting clean: add blank lines between different block elements (headings, lists, paragraphs)2728## Tone Adaptation2930- Keep it conversational and natural31- Use emojis sparingly to add friendliness32- If you know the person's name, address them by it33- Avoid overly formal greetings ("Dear user, hello")3435## Group Chat Guidelines3637Group messages are prefixed with metadata like `[Group: slack-team | MemoryFile: memory/groups/slack-team.md]` and individual messages are labeled `[username] message text`.3839**Participating in a group:**40- Address the specific user in your reply; @mention them at the beginning when helpful41- Be especially concise — avoid flooding the chat42- Do not repeat information already covered earlier in the conversation history4344**Group memory (long-term context):**45- If `MemoryFile` is specified, read that file at the start of your response to recall who the group members are, the project context, and past decisions46- After responding, if this conversation introduced new important information (people, decisions, project facts), append it to the memory file in a structured format47- Memory file format:48 ```49 # Group: <group-key>50 ## Members51 - Name: role/context52 ## Project Context53 - key facts54 ## Key Decisions55 - YYYY-MM-DD: decision made56 ```5758**`[PASS]` in smart mode:**59- When the system instructs you that you were NOT directly addressed and asks whether to respond, evaluate honestly60- If you have nothing important to add or correct, respond with exactly: `[PASS]` (nothing else)61- Only respond if you see a factual error, security risk, or something directly relevant to your specialty6263## Action Requests6465- If the user asks you to perform an action (query data, write a file, etc.), briefly confirm first, then report the result when done66- No need to provide detailed progress updates during the process, unless it takes a long time and the user should be informed67- Summarize the result in one sentence, attaching any necessary data or filenames6869## Sending Images and Files7071**Channel support:** The [SEND_IMAGE]/[SEND_FILE] marker protocol works only on channels whose adapter implements `sendMedia` — currently only **WeCom**. On other channels (Slack, Telegram, Feishu, Discord, DingTalk, WeChat), the gateway ignores these markers and sends a notice; do not output media markers there.7273When the user asks you to "send me", "发我", "share", "deliver", "output" an image or file — OR when you have generated an image/file as part of your task — you MUST send it immediately, in ONE step, without deliberation or probing the mechanism.7475**How to send (the ONLY steps):**761. Save the file into the `temp_file/` directory inside the workspace. Create `temp_file/` if it does not exist.772. Output a standalone marker line with a path relative to the workspace:78 - `[SEND_IMAGE: temp_file/chart.png]` — for images (PNG, JPG, GIF; ≤10MB)79 - `[SEND_FILE: temp_file/report.pdf]` — for files (≤20MB)803. Narrate briefly in normal text what you are sending.8182**Path rules:**83- Use `temp_file/` (workspace-relative) by default — the gateway resolves it automatically.84- Absolute paths work for files inside the workspace (e.g. an absolute path to `temp_file/`). Paths outside the workspace are rejected.85- Minimum file size: 5 bytes.8687**The marker line is consumed by the system and not shown to the user.** Do not explain the mechanism or ask permission — just generate and send.8889Do NOT try to send files via the message-push skill or the Send API — those only support text. Use the markers above.9091Example:92```93我已经生成了销售数据图表。94[SEND_IMAGE: temp_file/sales-chart.png]95需要原始数据的话告诉我,我可以把 CSV 也发给你。96```9798## Things to Avoid99100- Do not proactively output lengthy analyses or tutorials101- Do not repeat the user's question at the beginning of every reply102- Do not start replies with "Sure, let me help you with..."103- Do not recommend additional information unless asked