app: description: 按群和日期提取群成员日画像,输出严格 JSON,供 member_context 插件直接消费 icon: 🧠 icon_background: '#E0F2FE' mode: workflow name: member_context use_icon_as_answer_icon: false dependencies: - current_identifier: null type: marketplace value: marketplace_plugin_unique_identifier: langgenius/volcengine_maas:0.0.13@d402dc32a505b1b4f27588f10e729209bf413ec263467635774d96c4345bd197 kind: app version: 0.3.0 workflow: conversation_variables: [] environment_variables: [] features: file_upload: allowed_file_extensions: - .TXT allowed_file_types: - document allowed_file_upload_methods: - local_file - remote_url enabled: false fileUploadConfig: audio_file_size_limit: 50 batch_count_limit: 5 file_size_limit: 15 image_file_size_limit: 10 video_file_size_limit: 100 workflow_file_upload_limit: 10 image: enabled: false number_limits: 3 transfer_methods: - local_file - remote_url number_limits: 3 opening_statement: '' retriever_resource: enabled: false sensitive_word_avoidance: enabled: false speech_to_text: enabled: false suggested_questions: [] suggested_questions_after_answer: enabled: false text_to_speech: enabled: false language: '' voice: '' graph: edges: - data: isInIteration: false isInLoop: false sourceType: start targetType: llm id: start-source-llm-target selected: false source: 'start_node' sourceHandle: source target: 'llm_node' targetHandle: target type: custom zIndex: 0 - data: isInIteration: false isInLoop: false sourceType: llm targetType: end id: llm-source-end-target selected: false source: 'llm_node' sourceHandle: source target: 'end_node' targetHandle: target type: custom zIndex: 0 nodes: - data: desc: '' selected: false title: 开始 type: start variables: - label: query max_length: 120000 options: [] required: false type: paragraph variable: query - label: chatroom_id max_length: 128 options: [] required: true type: text-input variable: chatroom_id - label: digest_date max_length: 32 options: [] required: true type: text-input variable: digest_date - label: member_labels max_length: 50000 options: [] required: true type: paragraph variable: member_labels - label: compressed_chat max_length: 200000 options: [] required: true type: paragraph variable: compressed_chat height: 194 id: 'start_node' position: x: -420 y: 120 positionAbsolute: x: -420 y: 120 selected: false sourcePosition: right targetPosition: left type: custom width: 244 - data: context: enabled: false variable_selector: [] default_value: - key: text type: string value: '{"members":[]}' desc: '' error_strategy: default-value model: completion_params: temperature: 0.2 mode: chat name: Doubao-1.5-pro-256k provider: langgenius/volcengine_maas/volcengine_maas prompt_template: - id: system_prompt_member_context role: system text: | 你是微信群后台的成员日行为证据提取器。 任务: 根据给定的一天群聊记录,只按 wxid 识别成员,输出每个成员当天的结构化行为观察。 关键规则: 1. wxid 是唯一标识。display_name 仅用于展示,不用于身份判定。 2. 每个 wxid 最终只能输出一条记录,严禁重复输出同一个 wxid。 3. 请先按 wxid 汇总该成员全天发言,再提取结果。 4. 即使成员发言以短句为主,只要样本量足够,也必须尽量提炼: - topics - skill_signals - value_preferences - habit_signals - engagement_traits - social_role - temperament_signal - summary_text 5. identity_clues、family_signals、life_stage_signals 没有明确公开证据时允许为空。 6. 不允许因为“短句较多”就统一输出空数组和通用摘要。 7. 不做心理诊断、不做隐私猜测、不把玩笑当事实。 8. 只能输出候选成员列表中的 wxid。 9. topics 更偏向反复出现的关注方向;skill_signals 更偏向能力表现;value_preferences 更偏向判断偏好;social_role 更偏向当天在群里的实际作用。 10. 输出前自行去重,同一个 wxid 只保留一条最完整结果。 输出要求: - 只输出严格 JSON,不要 markdown,不要解释,不要前后缀。 - 输出格式: { "members": [ { "wxid": "成员wxid", "display_name": "显示名", "topics": ["主题1"], "identity_clues": ["身份线索1"], "skill_signals": ["技能信号1"], "family_signals": ["家庭线索1"], "life_stage_signals": ["阶段线索1"], "value_preferences": ["价值偏好1"], "interaction_style": "一句中文", "message_pattern": "一句中文", "response_style_hint": "一句中文", "habit_signals": ["习惯1"], "engagement_traits": ["参与特征1"], "decision_style": "一句中文", "social_role": "一句中文", "reply_taboos": ["避坑1"], "temperament_signal": "一句中文", "summary_text": "不超过100字", "representative_messages": ["原话1", "原话2"], "confidence": 0.95 } ] } 字段约束: - topics、skill_signals、value_preferences、habit_signals、engagement_traits 最多 4 个 - identity_clues、family_signals、life_stage_signals 最多 3 个 - reply_taboos 最多 3 个 - representative_messages 最多 3 条 - 如果某成员样本明显不足,可以不输出该成员 - id: user_prompt_member_context role: user text: | 群ID: {{#start_node.chatroom_id#}} 日期: {{#start_node.digest_date#}} 候选成员: {{#start_node.member_labels#}} 压缩后的群聊记录: {{#start_node.compressed_chat#}} selected: false title: 成员画像提取 type: llm variables: [] vision: enabled: false height: 98 id: 'llm_node' position: x: 10 y: 140 positionAbsolute: x: 10 y: 140 selected: false sourcePosition: right targetPosition: left type: custom width: 244 - data: desc: '' outputs: - value_selector: - 'llm_node' - text variable: text selected: false title: 结束 type: end height: 90 id: 'end_node' position: x: 430 y: 140 positionAbsolute: x: 430 y: 140 selected: false sourcePosition: right targetPosition: left type: custom width: 244 viewport: x: 120 y: 180 zoom: 0.9