Intelligence dossier · 20

AI深度16 分钟阅读

程序员 Agent 与设计师 Agent:两种 Runtime Profile 的架构差异

程序员 Agent 与设计师 Agent 可以共享模型和平台,却需要不同的工作区、工具、制品与验证循环;角色不是一份 Prompt。

#AI Agent · #Coding Agent · #Design Agent · #Runtime Profile2026/LEARNING-AGENT-RUNTIME-PROFILES

可以。这里最重要的一个设计原则是:“程序员 Agent”和“设计师 Agent”不应该只是换一份 system prompt,而应该是两套不同的 Agent Runtime Profile。

它们可以共享同一个 Agent OS,但:

  • 程序员的核心工作对象是 代码、仓库、测试、运行环境
  • 设计师的核心工作对象是 视觉资产、设计系统、页面结构、交互状态、设计稿

所以我会设计成:

程序员 Agent 与设计师 Agent 的两种 Runtime Profile
原对话中的主架构图已重绘为 SVG;正文、代码与其余推导保持原貌。

下面分别展开。


一、共同底座:Shared Agent OS

我不会分别造两个完全不同的系统。

底层共用:

一、共同底座:Shared Agent OS的架构或流程图
一、共同底座:Shared Agent OS

核心实体:

AgentDefinition
AgentInstance
Task
Workspace
Artifact
Capability
Memory
Event
Approval
Run

区别只在:

一、共同底座:Shared Agent OS的分层或流程图
一、共同底座:Shared Agent OS

也就是说:

一、共同底座:Shared Agent OS的分层或流程图
一、共同底座:Shared Agent OS

设计师:

一、共同底座:Shared Agent OS的分层或流程图
一、共同底座:Shared Agent OS

这是最干净的设计。


二、程序员 Agent:理想架构

我会把它设计成一个:

Repository-centric Software Engineering Agent

而不是聊天机器人。

整个中心是:

Repository + Workspace + Task

1. 程序员 Agent 总架构

1. 程序员 Agent 总架构的架构或流程图
1. 程序员 Agent 总架构

这里最关键的一点:

程序员 Agent 操作的是 Workspace,而不是裸 filesystem。


2. Programmer Workspace

建议定义:

interface CodeWorkspace {
  id: string;

  repository: Repository;
  branch: string;

  filesystem: FileSystem;
  sandbox: Sandbox;

  languageServers: LSP[];

  git: GitClient;

  runtime: RuntimeEnvironment;

  dependencyGraph: DependencyGraph;
}

里面要包含:

2. Programmer Workspace的分层或流程图
2. Programmer Workspace

这意味着 Agent 看到的不只是:

文件

而是:

Software System

3. Context Engine:不要靠 grep + read 硬撑

程序员 Agent 的 Context Engine 应该是专用的。

输入:

“修复登录后偶尔出现 401 的问题”

Context Engine 应该构造:

3. Context Engine:不要靠 grep + read 硬撑的架构或流程图
3. Context Engine:不要靠 grep + read 硬撑

所以应该存在:

3. Context Engine:不要靠 grep + read 硬撑的架构或流程图
3. Context Engine:不要靠 grep + read 硬撑

这比单纯:

grep -R "login"

高一个层次。


4. 程序员 Agent 的模型角色

这里我非常建议 Multi-model。

不是:

一个最强模型干所有事情

而是:

4. 程序员 Agent 的模型角色的架构或流程图
4. 程序员 Agent 的模型角色

可以定义:

type ProgrammerModelRole =
  | "explorer"
  | "planner"
  | "coder"
  | "reviewer"
  | "debugger"
  | "summarizer";

这样成本会合理很多。


5. 不应该只有一个 Programmer Agent

真正理想状态:

5. 不应该只有一个 Programmer Agent的架构或流程图
5. 不应该只有一个 Programmer Agent

对于复杂任务:

5. 不应该只有一个 Programmer Agent的架构或流程图
5. 不应该只有一个 Programmer Agent

6. Programmer Artifact

千万不要让 Agent 之间只交换聊天。

核心 artifact:

interface CodePlanArtifact {
  hypothesis: string[];
  files: string[];
  changes: ChangeProposal[];
  validation: ValidationPlan[];
}
interface PatchArtifact {
  diff: string;
  filesChanged: string[];
  rationale: string;
}
interface TestArtifact {
  command: string;
  passed: number;
  failed: number;
  output: string;
}
interface ReviewArtifact {
  issues: ReviewIssue[];
  approved: boolean;
}

最终 task:

6. Programmer Artifact的架构或流程图
6. Programmer Artifact

7. Programmer 最重要的是 Verifier

程序员 Agent 的可靠性很大程度不是来自 Model。

而是:

Verifier

完整流水线:

7. Programmer 最重要的是 Verifier的架构或流程图
7. Programmer 最重要的是 Verifier

也就是说:

LLM proposes
Computer proves

尽量如此。


8. 程序员的工具体系

应该分层:

8. 程序员的工具体系的架构或流程图
8. 程序员的工具体系

通过 MCP 暴露。

但是不同 Agent capability 不同。

Explorer:

8. 程序员的工具体系的分层或流程图
8. 程序员的工具体系

Coder:

8. 程序员的工具体系的分层或流程图
8. 程序员的工具体系

Reviewer:

8. 程序员的工具体系的分层或流程图
8. 程序员的工具体系

Deploy Agent:

artifact read
CI
deployment

9. 程序员 Memory

程序员 Memory 不应该太“人格化”。

它应该偏:

Engineering Knowledge

我会拆:

9. 程序员 Memory的分层或流程图
9. 程序员 Memory

例如:

9. 程序员 Memory的分层或流程图
9. 程序员 Memory

其中:

9. 程序员 Memory的分层或流程图
9. 程序员 Memory

本身也是重要 memory source。


10. Programmer 的完整执行过程

用户:

给我们的支付模块增加退款功能。

应该变成:

10. Programmer 的完整执行过程的架构或流程图
10. Programmer 的完整执行过程

这才是“程序员”。


三、设计师 Agent:不能照搬 Programmer 架构

设计师的核心不是:

文件 → patch → test

而是:

三、设计师 Agent:不能照搬 Programmer 架构的架构或流程图
三、设计师 Agent:不能照搬 Programmer 架构

所以 Designer Agent 更适合:

Artifact-centric + Multimodal + Render-Verify Loop


11. Designer Agent 总架构

11. Designer Agent 总架构的架构或流程图
11. Designer Agent 总架构

核心循环完全不同:

11. Designer Agent 总架构的架构或流程图
11. Designer Agent 总架构

12. Designer Workspace

设计 Workspace 应该定义成:

interface DesignWorkspace {
  designDocument: DesignDocument;

  designSystem: DesignSystem;

  assets: AssetLibrary;

  references: ReferenceLibrary;

  browser: BrowserEnvironment;

  renderer: RenderEngine;

  viewportProfiles: ViewportProfile[];
}

核心不是:

filesystem

而是:

Design Graph

比如页面:

12. Designer Workspace的架构或流程图
12. Designer Workspace

Designer Agent 应该理解:

12. Designer Workspace的分层或流程图
12. Designer Workspace

13. 设计系统要成为 First-Class Context

程序员主要读取:

AGENTS.md
codebase

设计师主要应该读取:

13. 设计系统要成为 First-Class Context的分层或流程图
13. 设计系统要成为 First-Class Context

形成:

13. 设计系统要成为 First-Class Context的架构或流程图
13. 设计系统要成为 First-Class Context

例如:

13. 设计系统要成为 First-Class Context的分层或流程图
13. 设计系统要成为 First-Class Context

Agent生成的东西必须遵守这些约束。


14. Designer 的 Memory 更偏“审美与用户理解”

Designer Memory 应该包含:

14. Designer 的 Memory 更偏“审美与用户理解”的分层或流程图
14. Designer 的 Memory 更偏“审美与用户理解”

例如:

14. Designer 的 Memory 更偏“审美与用户理解”的分层或流程图
14. Designer 的 Memory 更偏“审美与用户理解”

这些对于设计师 Agent 比:

“用户喜欢 TypeScript”

重要得多。


15. Designer Agent 最重要的是 Multimodal Context

Programmer:

text → text/code

Designer:

15. Designer Agent 最重要的是 Multimodal Context的分层或流程图
15. Designer Agent 最重要的是 Multimodal Context

全部都可能成为输入。

因此:

15. Designer Agent 最重要的是 Multimodal Context的架构或流程图
15. Designer Agent 最重要的是 Multimodal Context

模型必须具备:

vision
layout reasoning
visual comparison

16. Designer 不应该只有一个“设计模型”

我会拆:

16. Designer 不应该只有一个“设计模型”的架构或流程图
16. Designer 不应该只有一个“设计模型”

还有:

Design System Agent

专门检查:

16. Designer 不应该只有一个“设计模型”的分层或流程图
16. Designer 不应该只有一个“设计模型”

17. Designer Artifact 比程序员更多样

核心 artifact:

DesignBriefArtifact
UserFlowArtifact
WireframeArtifact
VisualDirectionArtifact
DesignFrameArtifact
PrototypeArtifact
DesignReviewArtifact

例如完整 task:

17. Designer Artifact 比程序员更多样的架构或流程图
17. Designer Artifact 比程序员更多样

18. Designer 最重要的 Tool 不是 image generation

很多人做“AI Designer”的第一反应是:

image model

其实不对。

真正有用的 Designer Agent 应该拥有:

18. Designer 最重要的 Tool 不是 image generation的架构或流程图
18. Designer 最重要的 Tool 不是 image generation

Image Generation 只是其中一个能力。


19. Designer 的核心循环:Render → Critique

这是和程序员最大的差别之一。

程序员:

19. Designer 的核心循环:Render → Critique的架构或流程图
19. Designer 的核心循环:Render → Critique

设计师:

19. Designer 的核心循环:Render → Critique的架构或流程图
19. Designer 的核心循环:Render → Critique

也就是:

19. Designer 的核心循环:Render → Critique的架构或流程图
19. Designer 的核心循环:Render → Critique

没有 render loop 的 Designer Agent 很难真正成为设计师。


20. Designer Verifier 是什么?

没有:

npm test

但依然可以构建大量 verifier。

Deterministic

Deterministic的分层或流程图
Deterministic

Visual

Visual的分层或流程图
Visual

Interaction

Interaction的分层或流程图
Interaction

所以:

Interaction的架构或流程图
Interaction

21. Designer 的“Compiler”其实是 Renderer

可以做一个非常有意思的类比:

程序员 设计师
Source Code Design Model
Compiler Renderer
Runtime Browser / Device
Test Visual/UX Verification
AST Design Tree
LSP Design Graph
Dependency Graph Component Graph
Git Diff Visual Diff
Code Review Design Critique
Build Artifact Rendered Prototype

所以:

21. Designer 的“Compiler”其实是 Renderer的架构或流程图
21. Designer 的“Compiler”其实是 Renderer

对应:

21. Designer 的“Compiler”其实是 Renderer的架构或流程图
21. Designer 的“Compiler”其实是 Renderer

这个类比非常有价值。


22. Design Tree ≈ AST

例如:

22. Design Tree ≈ AST的架构或流程图
22. Design Tree ≈ AST

不要只让 Agent看到 screenshot。

它还应该看到:

{
  "type": "Grid",
  "columns": 3,
  "gap": 24,
  "children": [...]
}

这样 Agent 可以结构化修改:

change gap 24 → 32

而不是:

“重新生成整个图片”

这正好对应 coding:

AST edit
vs
rewrite whole file

23. Designer 也需要类似 Patch 的东西

比如:

23. Designer 也需要类似 Patch 的东西的架构或流程图
23. Designer 也需要类似 Patch 的东西

而不是:

重新生成整张页面

否则:

不可控
不稳定
难 review

所以我会定义:

interface DesignPatch {
  nodeId: string;
  property: string;
  oldValue: unknown;
  newValue: unknown;
}

24. 设计师最需要“双视角”

这是非常值得实现的。

Designer Agent应该同时看到:

Semantic Tree
      +
Rendered Screenshot

因为:

Tree

告诉它:

结构
组件
约束

Screenshot告诉它:

真实视觉结果

就像程序员同时需要:

source code
+
runtime behavior

结构:

24. 设计师最需要“双视角”的架构或流程图
24. 设计师最需要“双视角”

25. Programmer 和 Designer 还应该能够协作

这是整个系统真正有意思的地方。

比如用户说:

做一个新的 SaaS Dashboard。

理想情况不是 Designer 完后人工交给 Programmer。

而是:

25. Programmer 和 Designer 还应该能够协作的架构或流程图
25. Programmer 和 Designer 还应该能够协作

26. Designer → Programmer 不应该传截图

应该传:

Design Specification Artifact

例如:

interface UIComponentSpec {
  name: string;

  hierarchy: Node[];

  tokens: DesignToken[];

  responsiveRules: Rule[];

  interactions: Interaction[];

  states: State[];

  assets: AssetReference[];
}

Programmer 收到:

26. Designer → Programmer 不应该传截图的架构或流程图
26. Designer → Programmer 不应该传截图

而不是:

请照这个 PNG 写。

这是非常大的区别。


27. 两者共享 Design System / Component System

例如:

27. 两者共享 Design System / Component System的架构或流程图
27. 两者共享 Design System / Component System

定义一个 canonical component:

27. 两者共享 Design System / Component System的分层或流程图
27. 两者共享 Design System / Component System

这样 Designer 和 Programmer 操作的是:

同一个 Component Identity

28. 最理想的是建立“Design-Code Graph”

这我非常推荐。

28. 最理想的是建立“Design-Code Graph”的架构或流程图
28. 最理想的是建立“Design-Code Graph”

例如:

28. 最理想的是建立“Design-Code Graph”的架构或流程图
28. 最理想的是建立“Design-Code Graph”

这样:

Designer 修改:

Button radius 8 → 12

系统知道影响:

47 screens
1 React component
12 visual snapshots

然后可以创建:

Programming Task

这才是真正的 Agent-native 产品开发。


29. 两类 Agent 的差异可以总结成这张表

程序员 设计师
核心对象 Repository Design Document
Workspace Code Workspace Design Workspace
Structured Representation AST / LSP Design Tree
Output Patch Design Patch
Runtime Sandbox Renderer/Browser
Verification Compile/Test Render/Critique
History Git Design Versions
Knowledge Architecture Design System
Memory Engineering Decisions Brand/UX Decisions
Main Tools shell/git/LSP Figma/browser/render
Model Coding/Reasoning Vision/Design/Reasoning
Deterministic verifier 强 中等
Visual verifier 辅助 核心

30. 如果把两者放进同一个“AI 公司”

我最终会这么设计:

30. 如果把两者放进同一个“AI 公司”的架构或流程图
30. 如果把两者放进同一个“AI 公司”

这里其实就已经开始接近:

AI-native Software Company Runtime


31. 如果你是个人开发,我建议先这样实现

不要一开始做 20 个 Agent。

Programmer V1

只做:

Programmer V1的分层或流程图
Programmer V1

底层:

Programmer V1的分层或流程图
Programmer V1

Designer V1

只做:

Design Director
UI Designer
Critic

底层:

Designer V1的分层或流程图
Designer V1

再定义两个核心中间格式:

DesignArtifact
CodeArtifact

32. 然后最值得做的是统一 Artifact Protocol

比如:

interface Artifact {
  id: string;
  type: string;

  taskId: string;

  createdBy: AgentId;

  version: number;

  dependencies: ArtifactId[];

  content: unknown;
}

具体:

32. 然后最值得做的是统一 Artifact Protocol的分层或流程图
32. 然后最值得做的是统一 Artifact Protocol

所有 Agent 都围绕:

Artifact Graph

工作。

这会比围绕:

Conversation

高级非常多。


33. 如果让我给这两个 Agent 定义一句话

程序员 Agent:

33. 如果让我给这两个 Agent 定义一句话的分层或流程图
33. 如果让我给这两个 Agent 定义一句话

设计师 Agent:

33. 如果让我给这两个 Agent 定义一句话的分层或流程图
33. 如果让我给这两个 Agent 定义一句话

而共同底座是:

33. 如果让我给这两个 Agent 定义一句话的架构或流程图
33. 如果让我给这两个 Agent 定义一句话

这就是我会采用的整体设计。

更进一步,如果你的最终目标是做一个真的能开发完整产品的 AI Team,那么我下一步不会继续加 Agent 数量,而会优先设计中间最关键的 Product Graph:把 需求 → User Flow → Design → Component → Code → Test → Release 连成一张结构化图。只要 Product Graph 建起来,程序员和设计师才不再是两个互相聊天的机器人,而是真正围绕同一个产品状态协同工作的两个智能角色。