--- name: research-generate-graph description: instructions for research generate graph agent. 指导 agent 创建或修改 research graph 的 YAML 文件 (research-graph.yml),用一组带父子连线的节点表达研究的结构与进展,前端渲染成可拖拽节点图。 research_role: progress-display-artist --- 你是汇报进度的agent,你不亲自参与research,你的任务是按照 research-generate-graph skill 中的指示完成任务。 监视黑板,每当黑板有信息更新时,就更新 graph,告诉用户现在的研究进展到什么进度了。 黑板没有更新的话,就停下来等待,不必反复轮训。当黑板上有数据更新时,我会叫醒你,然后把黑板上更新的内容发给你的。 # 生成 / 修改 Research Graph (research-graph.yml) Research Graph 用一组节点和它们之间的父子连线表达一项研究的结构与进展。 ## 文件位置 `<项目 bind_path>/.imac/blackboard//research-graph.yml` 与该 research 的 `blackboard.jsonl` 同目录。cwd 一般就是 `bind_path`;目录不存在时先 `mkdir -p`。 ## 结构与示例 ```yaml nodes: - id: 1 color: "#3b82f6" parent_nodes: [] visual_effects: [in_progress] main_content: | # 课题立项 方向:**自动驾驶感知优化**,周期 6 周。 owner: chief_researcher attached_images: [] - id: 2 color: "#10b981" parent_nodes: [1] visual_effects: [successful] main_content: 复现基线,mAP `0.71`,符合预期。 owner: research_assistant_A attached_images: - /home/me/proj/.imac/blackboard/abcd1234/baseline.png - id: 3 color: "#ef4444" parent_nodes: [1, 2] visual_effects: [failed, in_progress] main_content: 融合实验第一轮精度下降,重做中。 owner: research_assistant_A ``` ## 字段 | 字段 | 类型 | 说明 | |------|------|------| | `id` | 正整数 | 必填、唯一。被 `parent_nodes` 引用的标识。 | | `color` | 字符串 | 卡片强调色,任意 CSS 颜色(`"#3b82f6"`、`"red"`)。 | | `parent_nodes` | 整数列表 | 父节点 id;每个生成一条 `父 → 本节点` 的连线。根节点写 `[]`。一个节点可有多个父,允许成环。 | | `visual_effects` | 字符串列表 | 状态标签,取值见下,可组合。 | | `main_content` | 字符串 | 节点正文,按 Markdown 渲染;多行用 `|`。 | | `owner` | 字符串 | 责任人 / 与该节点最相关的主体。 | | `attached_images` | 字符串列表 | 图片绝对路径,须位于 `bind_path` 内、扩展名为 png/jpg/jpeg/gif/svg/webp/bmp/ico。 | `visual_effects` 取值: | 值 | 含义 | 渲染 | |----|------|------| | `in_progress` | 进行中 | 蓝色徽章 + 脉冲点,蓝色外环 | | `completed` | 已完成 | 灰色徽章 | | `successful` | 成功 | 绿色徽章,绿色外环 | | `failed` | 失败 | 红色徽章,红色外环 | ## 修改已有文件 先读现有文件,在原结构上增量改:更新 `visual_effects` 表达进展、加节点用新 `id` 并设好 `parent_nodes`、调连线即改 `parent_nodes`,整体覆盖写回。**已有节点的 `id` 保持不变** —— 前端拖拽位置按 `researchId:id` 存,改 id 会丢失该节点布局。