agency-orchestrator 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/README.md +268 -0
- package/README.zh-CN.md +225 -0
- package/dist/agents/loader.d.ts +11 -0
- package/dist/agents/loader.js +93 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +276 -0
- package/dist/connectors/claude.d.ts +6 -0
- package/dist/connectors/claude.js +38 -0
- package/dist/connectors/interface.d.ts +5 -0
- package/dist/connectors/interface.js +1 -0
- package/dist/connectors/ollama.d.ts +9 -0
- package/dist/connectors/ollama.js +36 -0
- package/dist/connectors/openai-compatible.d.ts +14 -0
- package/dist/connectors/openai-compatible.js +43 -0
- package/dist/core/dag.d.ts +17 -0
- package/dist/core/dag.js +90 -0
- package/dist/core/executor.d.ts +20 -0
- package/dist/core/executor.js +174 -0
- package/dist/core/parser.d.ts +6 -0
- package/dist/core/parser.js +118 -0
- package/dist/core/template.d.ts +12 -0
- package/dist/core/template.js +30 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +139 -0
- package/dist/output/reporter.d.ts +19 -0
- package/dist/output/reporter.js +96 -0
- package/dist/types.d.ts +91 -0
- package/dist/types.js +2 -0
- package/package.json +66 -0
- package/workflows/content-pipeline.yaml +83 -0
- package/workflows/product-review.yaml +77 -0
- package/workflows/story-creation.yaml +102 -0
- package/workflows/test-deepseek.yaml +68 -0
- package/workflows/test-real.yaml +35 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/** 工作流 YAML 定义的类型 */
|
|
2
|
+
export interface WorkflowDefinition {
|
|
3
|
+
name: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
agents_dir: string;
|
|
6
|
+
llm: LLMConfig;
|
|
7
|
+
concurrency?: number;
|
|
8
|
+
inputs?: InputDefinition[];
|
|
9
|
+
steps: StepDefinition[];
|
|
10
|
+
}
|
|
11
|
+
export interface LLMConfig {
|
|
12
|
+
provider: 'claude' | 'openai' | 'ollama' | 'deepseek';
|
|
13
|
+
base_url?: string;
|
|
14
|
+
api_key?: string;
|
|
15
|
+
model: string;
|
|
16
|
+
max_tokens?: number;
|
|
17
|
+
timeout?: number;
|
|
18
|
+
retry?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface InputDefinition {
|
|
21
|
+
name: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
required?: boolean;
|
|
24
|
+
default?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface StepDefinition {
|
|
27
|
+
id: string;
|
|
28
|
+
role: string;
|
|
29
|
+
task: string;
|
|
30
|
+
output?: string;
|
|
31
|
+
depends_on?: string[];
|
|
32
|
+
type?: 'normal' | 'approval';
|
|
33
|
+
prompt?: string;
|
|
34
|
+
}
|
|
35
|
+
/** DAG 执行相关类型 */
|
|
36
|
+
export interface DAGNode {
|
|
37
|
+
step: StepDefinition;
|
|
38
|
+
dependencies: string[];
|
|
39
|
+
dependents: string[];
|
|
40
|
+
status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
|
|
41
|
+
result?: string;
|
|
42
|
+
error?: string;
|
|
43
|
+
startTime?: number;
|
|
44
|
+
endTime?: number;
|
|
45
|
+
tokenUsage?: {
|
|
46
|
+
input: number;
|
|
47
|
+
output: number;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** LLM Connector 相关类型 */
|
|
51
|
+
export interface LLMResult {
|
|
52
|
+
content: string;
|
|
53
|
+
usage: {
|
|
54
|
+
input_tokens: number;
|
|
55
|
+
output_tokens: number;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export interface LLMConnector {
|
|
59
|
+
chat(systemPrompt: string, userMessage: string, config: LLMConfig): Promise<LLMResult>;
|
|
60
|
+
}
|
|
61
|
+
/** Agent Loader 相关类型 */
|
|
62
|
+
export interface AgentDefinition {
|
|
63
|
+
name: string;
|
|
64
|
+
description: string;
|
|
65
|
+
emoji?: string;
|
|
66
|
+
tools?: string;
|
|
67
|
+
systemPrompt: string;
|
|
68
|
+
}
|
|
69
|
+
/** 执行结果 */
|
|
70
|
+
export interface WorkflowResult {
|
|
71
|
+
name: string;
|
|
72
|
+
success: boolean;
|
|
73
|
+
steps: StepResult[];
|
|
74
|
+
totalDuration: number;
|
|
75
|
+
totalTokens: {
|
|
76
|
+
input: number;
|
|
77
|
+
output: number;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export interface StepResult {
|
|
81
|
+
id: string;
|
|
82
|
+
role: string;
|
|
83
|
+
status: 'completed' | 'failed' | 'skipped';
|
|
84
|
+
output?: string;
|
|
85
|
+
error?: string;
|
|
86
|
+
duration: number;
|
|
87
|
+
tokens: {
|
|
88
|
+
input: number;
|
|
89
|
+
output: number;
|
|
90
|
+
};
|
|
91
|
+
}
|
package/dist/types.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agency-orchestrator",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "基于 agency-agents 角色定义的轻量多智能体编排引擎 — 用 YAML 定义工作流,自动调度 AI 角色协作完成复杂任务",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"agency-agents",
|
|
7
|
+
"multi-agent",
|
|
8
|
+
"orchestrator",
|
|
9
|
+
"workflow",
|
|
10
|
+
"ai-agents",
|
|
11
|
+
"llm",
|
|
12
|
+
"claude",
|
|
13
|
+
"deepseek",
|
|
14
|
+
"ollama",
|
|
15
|
+
"openai",
|
|
16
|
+
"yaml-workflow",
|
|
17
|
+
"agent-orchestration",
|
|
18
|
+
"chinese-ai",
|
|
19
|
+
"dag",
|
|
20
|
+
"crewai-alternative"
|
|
21
|
+
],
|
|
22
|
+
"author": "jnMetaCode",
|
|
23
|
+
"license": "Apache-2.0",
|
|
24
|
+
"homepage": "https://github.com/jnMetaCode/agency-orchestrator#readme",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "https://github.com/jnMetaCode/agency-orchestrator"
|
|
28
|
+
},
|
|
29
|
+
"type": "module",
|
|
30
|
+
"main": "dist/index.js",
|
|
31
|
+
"types": "dist/index.d.ts",
|
|
32
|
+
"bin": {
|
|
33
|
+
"agency-orchestrator": "dist/cli.js",
|
|
34
|
+
"ao": "dist/cli.js"
|
|
35
|
+
},
|
|
36
|
+
"exports": {
|
|
37
|
+
".": {
|
|
38
|
+
"import": "./dist/index.js",
|
|
39
|
+
"types": "./dist/index.d.ts"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsc",
|
|
44
|
+
"dev": "tsc --watch",
|
|
45
|
+
"test": "npx tsx test/run.ts && npx tsx test/e2e.ts",
|
|
46
|
+
"prepublishOnly": "npm run build"
|
|
47
|
+
},
|
|
48
|
+
"files": [
|
|
49
|
+
"dist/",
|
|
50
|
+
"workflows/",
|
|
51
|
+
"LICENSE",
|
|
52
|
+
"README.md"
|
|
53
|
+
],
|
|
54
|
+
"engines": {
|
|
55
|
+
"node": ">=18"
|
|
56
|
+
},
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"@anthropic-ai/sdk": "^0.52.0",
|
|
59
|
+
"js-yaml": "^4.1.0"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@types/js-yaml": "^4.0.9",
|
|
63
|
+
"@types/node": "^22.0.0",
|
|
64
|
+
"typescript": "^5.7.0"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
name: "内容创作流水线"
|
|
2
|
+
description: "从主题到成稿的完整内容创作流程 — 研究、写作、品牌审核"
|
|
3
|
+
|
|
4
|
+
agents_dir: "agency-agents-zh"
|
|
5
|
+
|
|
6
|
+
llm:
|
|
7
|
+
provider: "claude"
|
|
8
|
+
model: "claude-sonnet-4-6"
|
|
9
|
+
max_tokens: 4096
|
|
10
|
+
|
|
11
|
+
concurrency: 2
|
|
12
|
+
|
|
13
|
+
inputs:
|
|
14
|
+
- name: topic
|
|
15
|
+
description: "内容主题"
|
|
16
|
+
required: true
|
|
17
|
+
- name: target_audience
|
|
18
|
+
description: "目标受众"
|
|
19
|
+
required: true
|
|
20
|
+
- name: platform
|
|
21
|
+
description: "发布平台(如:公众号、知乎、小红书)"
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- id: research
|
|
26
|
+
role: "marketing/marketing-social-media-strategist"
|
|
27
|
+
task: |
|
|
28
|
+
为以下主题做内容研究:
|
|
29
|
+
主题:{{topic}}
|
|
30
|
+
目标受众:{{target_audience}}
|
|
31
|
+
平台:{{platform}}
|
|
32
|
+
|
|
33
|
+
请输出:
|
|
34
|
+
1. 关键信息点
|
|
35
|
+
2. 受众关注的痛点
|
|
36
|
+
3. 竞品内容分析
|
|
37
|
+
4. 建议的内容角度
|
|
38
|
+
output: research_report
|
|
39
|
+
|
|
40
|
+
- id: draft
|
|
41
|
+
role: "marketing/marketing-content-creator"
|
|
42
|
+
task: |
|
|
43
|
+
基于以下研究,撰写一篇适合 {{platform}} 的文章:
|
|
44
|
+
|
|
45
|
+
研究报告:
|
|
46
|
+
{{research_report}}
|
|
47
|
+
|
|
48
|
+
要求:
|
|
49
|
+
- 目标受众:{{target_audience}}
|
|
50
|
+
- 风格适合 {{platform}}
|
|
51
|
+
- 包含引人注目的标题
|
|
52
|
+
- 结构清晰,易于阅读
|
|
53
|
+
output: draft_content
|
|
54
|
+
depends_on: [research]
|
|
55
|
+
|
|
56
|
+
- id: brand_review
|
|
57
|
+
role: "marketing/marketing-growth-hacker"
|
|
58
|
+
task: |
|
|
59
|
+
请审核以下内容的品牌一致性:
|
|
60
|
+
|
|
61
|
+
{{draft_content}}
|
|
62
|
+
|
|
63
|
+
评审要点:
|
|
64
|
+
1. 品牌调性是否一致
|
|
65
|
+
2. 信息准确性
|
|
66
|
+
3. 是否有敏感内容
|
|
67
|
+
4. 改进建议
|
|
68
|
+
output: review_feedback
|
|
69
|
+
depends_on: [draft]
|
|
70
|
+
|
|
71
|
+
- id: final_edit
|
|
72
|
+
role: "marketing/marketing-content-creator"
|
|
73
|
+
task: |
|
|
74
|
+
根据品牌审核反馈,修改并定稿:
|
|
75
|
+
|
|
76
|
+
原文:
|
|
77
|
+
{{draft_content}}
|
|
78
|
+
|
|
79
|
+
审核反馈:
|
|
80
|
+
{{review_feedback}}
|
|
81
|
+
|
|
82
|
+
请输出最终稿件。
|
|
83
|
+
depends_on: [brand_review]
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
name: "产品需求评审"
|
|
2
|
+
description: "多角色协作评审 PRD 文档 — 产品经理分析需求,架构师评估技术,设计师评估体验,最后汇总结论"
|
|
3
|
+
|
|
4
|
+
agents_dir: "agency-agents-zh"
|
|
5
|
+
|
|
6
|
+
llm:
|
|
7
|
+
provider: "claude"
|
|
8
|
+
model: "claude-sonnet-4-6"
|
|
9
|
+
max_tokens: 4096
|
|
10
|
+
timeout: 120000
|
|
11
|
+
retry: 3
|
|
12
|
+
|
|
13
|
+
concurrency: 2
|
|
14
|
+
|
|
15
|
+
inputs:
|
|
16
|
+
- name: prd_content
|
|
17
|
+
description: "PRD 文档内容"
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- id: analyze
|
|
22
|
+
role: "product/product-manager"
|
|
23
|
+
task: |
|
|
24
|
+
请分析以下 PRD 文档,提取:
|
|
25
|
+
1. 核心需求(按优先级排列)
|
|
26
|
+
2. 目标用户画像
|
|
27
|
+
3. 潜在风险和不确定性
|
|
28
|
+
4. 关键成功指标
|
|
29
|
+
|
|
30
|
+
PRD 内容:
|
|
31
|
+
{{prd_content}}
|
|
32
|
+
output: requirements
|
|
33
|
+
|
|
34
|
+
- id: tech_review
|
|
35
|
+
role: "engineering/engineering-software-architect"
|
|
36
|
+
task: |
|
|
37
|
+
基于以下需求分析,请评估:
|
|
38
|
+
1. 技术可行性(高/中/低)
|
|
39
|
+
2. 推荐技术架构
|
|
40
|
+
3. 预估开发复杂度
|
|
41
|
+
4. 技术风险点
|
|
42
|
+
|
|
43
|
+
需求分析:
|
|
44
|
+
{{requirements}}
|
|
45
|
+
output: tech_report
|
|
46
|
+
depends_on: [analyze]
|
|
47
|
+
|
|
48
|
+
- id: design_review
|
|
49
|
+
role: "design/design-ux-researcher"
|
|
50
|
+
task: |
|
|
51
|
+
基于以下需求分析,请评估:
|
|
52
|
+
1. 用户体验风险
|
|
53
|
+
2. 可用性问题
|
|
54
|
+
3. 设计建议
|
|
55
|
+
4. 需要进一步验证的假设
|
|
56
|
+
|
|
57
|
+
需求分析:
|
|
58
|
+
{{requirements}}
|
|
59
|
+
output: design_report
|
|
60
|
+
depends_on: [analyze]
|
|
61
|
+
|
|
62
|
+
- id: final_summary
|
|
63
|
+
role: "product/product-manager"
|
|
64
|
+
task: |
|
|
65
|
+
综合以下技术和设计两方面的反馈,输出最终评审结论:
|
|
66
|
+
|
|
67
|
+
## 技术评估
|
|
68
|
+
{{tech_report}}
|
|
69
|
+
|
|
70
|
+
## 设计评估
|
|
71
|
+
{{design_report}}
|
|
72
|
+
|
|
73
|
+
请输出:
|
|
74
|
+
1. 总体结论(通过/需修改/不通过)
|
|
75
|
+
2. 必须解决的问题清单
|
|
76
|
+
3. 建议的下一步行动
|
|
77
|
+
depends_on: [tech_review, design_review]
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
name: "短篇小说创作"
|
|
2
|
+
description: "从创意到成稿:叙事学家设计结构 → 心理学家塑造人物 + 叙事设计师构建冲突 → 内容创作者执笔成稿"
|
|
3
|
+
|
|
4
|
+
agents_dir: "agency-agents-zh"
|
|
5
|
+
|
|
6
|
+
llm:
|
|
7
|
+
provider: "deepseek"
|
|
8
|
+
model: "deepseek-chat"
|
|
9
|
+
max_tokens: 2048
|
|
10
|
+
timeout: 180000
|
|
11
|
+
retry: 2
|
|
12
|
+
|
|
13
|
+
concurrency: 2
|
|
14
|
+
|
|
15
|
+
inputs:
|
|
16
|
+
- name: premise
|
|
17
|
+
description: "故事创意/主题/一句话梗概"
|
|
18
|
+
required: true
|
|
19
|
+
- name: style
|
|
20
|
+
description: "风格偏好(如:悬疑、温情、荒诞、科幻)"
|
|
21
|
+
required: false
|
|
22
|
+
default: "悬疑"
|
|
23
|
+
- name: length
|
|
24
|
+
description: "目标字数(默认 800)"
|
|
25
|
+
required: false
|
|
26
|
+
default: "800"
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- id: story_structure
|
|
30
|
+
role: "academic/academic-narratologist"
|
|
31
|
+
task: |
|
|
32
|
+
请用中文为以下创意设计一个短篇小说的叙事结构:
|
|
33
|
+
|
|
34
|
+
创意:{{premise}}
|
|
35
|
+
风格偏好:{{style}}
|
|
36
|
+
|
|
37
|
+
请输出:
|
|
38
|
+
1. 核心冲突(一句话)
|
|
39
|
+
2. 叙事视角(第几人称、谁的视角)
|
|
40
|
+
3. 结构安排(开头钩子 → 发展 → 高潮 → 结尾),每段用一句话概括
|
|
41
|
+
4. 关键的叙事技巧(如:倒叙、留白、意外反转等)
|
|
42
|
+
5. 故事想要传递的情感/主题
|
|
43
|
+
|
|
44
|
+
简洁明确,不要废话。
|
|
45
|
+
output: structure
|
|
46
|
+
|
|
47
|
+
- id: character_design
|
|
48
|
+
role: "academic/academic-psychologist"
|
|
49
|
+
task: |
|
|
50
|
+
请用中文基于以下叙事结构,设计主要人物:
|
|
51
|
+
|
|
52
|
+
{{structure}}
|
|
53
|
+
|
|
54
|
+
请为每个关键人物输出:
|
|
55
|
+
1. 名字和一句话描述
|
|
56
|
+
2. 核心动机(想要什么)
|
|
57
|
+
3. 内心矛盾(害怕什么)
|
|
58
|
+
4. 一个让读者记住的细节/习惯
|
|
59
|
+
5. 人物弧线(从开头到结尾的变化)
|
|
60
|
+
|
|
61
|
+
人物要真实可信,不要脸谱化。
|
|
62
|
+
output: characters
|
|
63
|
+
depends_on: [story_structure]
|
|
64
|
+
|
|
65
|
+
- id: conflict_design
|
|
66
|
+
role: "game-development/narrative-designer"
|
|
67
|
+
task: |
|
|
68
|
+
请用中文基于以下叙事结构,设计具体的冲突场景和对话:
|
|
69
|
+
|
|
70
|
+
{{structure}}
|
|
71
|
+
|
|
72
|
+
请输出:
|
|
73
|
+
1. 开头钩子的具体场景(用 2-3 句话描绘画面)
|
|
74
|
+
2. 核心冲突爆发的关键对话(3-5 句,要有张力)
|
|
75
|
+
3. 高潮时刻的情感转折点
|
|
76
|
+
4. 结尾的留白或余韵
|
|
77
|
+
|
|
78
|
+
要具体、有画面感,不要抽象概括。
|
|
79
|
+
output: scenes
|
|
80
|
+
depends_on: [story_structure]
|
|
81
|
+
|
|
82
|
+
- id: write_story
|
|
83
|
+
role: "marketing/marketing-content-creator"
|
|
84
|
+
task: |
|
|
85
|
+
请用中文根据以下素材,写一篇完整的短篇小说(约 {{length}} 字)。
|
|
86
|
+
|
|
87
|
+
## 叙事结构
|
|
88
|
+
{{structure}}
|
|
89
|
+
|
|
90
|
+
## 人物设定
|
|
91
|
+
{{characters}}
|
|
92
|
+
|
|
93
|
+
## 关键场景和对话
|
|
94
|
+
{{scenes}}
|
|
95
|
+
|
|
96
|
+
写作要求:
|
|
97
|
+
- 直接输出小说正文,不要写标题或说明
|
|
98
|
+
- 开头第一句就要抓住读者
|
|
99
|
+
- 对话要自然,像真人说的话
|
|
100
|
+
- 描写要有画面感,用具体细节而不是形容词堆砌
|
|
101
|
+
- 结尾要有余韵,让读者回味
|
|
102
|
+
depends_on: [character_design, conflict_design]
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
name: "DeepSeek 实战测试"
|
|
2
|
+
description: "3步工作流:产品分析 → 技术+设计并行评估 → 汇总,验证 DAG 并行和变量传递"
|
|
3
|
+
|
|
4
|
+
agents_dir: "agency-agents-zh"
|
|
5
|
+
|
|
6
|
+
llm:
|
|
7
|
+
provider: "deepseek"
|
|
8
|
+
model: "deepseek-chat"
|
|
9
|
+
max_tokens: 1024
|
|
10
|
+
timeout: 60000
|
|
11
|
+
retry: 2
|
|
12
|
+
|
|
13
|
+
concurrency: 2
|
|
14
|
+
|
|
15
|
+
inputs:
|
|
16
|
+
- name: idea
|
|
17
|
+
description: "产品创意"
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- id: pm_analyze
|
|
22
|
+
role: "product/product-manager"
|
|
23
|
+
task: |
|
|
24
|
+
请用中文简要分析以下产品创意(200字以内):
|
|
25
|
+
- 目标用户是谁
|
|
26
|
+
- 核心价值主张
|
|
27
|
+
- 最大风险
|
|
28
|
+
|
|
29
|
+
创意:{{idea}}
|
|
30
|
+
output: analysis
|
|
31
|
+
|
|
32
|
+
- id: tech_eval
|
|
33
|
+
role: "engineering/engineering-software-architect"
|
|
34
|
+
task: |
|
|
35
|
+
请用中文基于以下分析,评估技术可行性(150字以内):
|
|
36
|
+
- 推荐技术栈
|
|
37
|
+
- 预估难度(高/中/低)
|
|
38
|
+
- 一个关键技术风险
|
|
39
|
+
|
|
40
|
+
{{analysis}}
|
|
41
|
+
output: tech_report
|
|
42
|
+
depends_on: [pm_analyze]
|
|
43
|
+
|
|
44
|
+
- id: design_eval
|
|
45
|
+
role: "design/design-ux-researcher"
|
|
46
|
+
task: |
|
|
47
|
+
请用中文基于以下分析,评估用户体验(150字以内):
|
|
48
|
+
- 核心用户旅程
|
|
49
|
+
- 最大 UX 风险
|
|
50
|
+
- 一个设计建议
|
|
51
|
+
|
|
52
|
+
{{analysis}}
|
|
53
|
+
output: design_report
|
|
54
|
+
depends_on: [pm_analyze]
|
|
55
|
+
|
|
56
|
+
- id: final
|
|
57
|
+
role: "product/product-manager"
|
|
58
|
+
task: |
|
|
59
|
+
请用中文综合以下反馈,给出最终结论(200字以内):
|
|
60
|
+
|
|
61
|
+
## 技术评估
|
|
62
|
+
{{tech_report}}
|
|
63
|
+
|
|
64
|
+
## 设计评估
|
|
65
|
+
{{design_report}}
|
|
66
|
+
|
|
67
|
+
请输出:是否值得做(是/否),以及 3 条关键行动项。
|
|
68
|
+
depends_on: [tech_eval, design_eval]
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: "Real LLM Test"
|
|
2
|
+
description: "2-step workflow to verify real LLM integration"
|
|
3
|
+
|
|
4
|
+
agents_dir: "agency-agents-zh"
|
|
5
|
+
|
|
6
|
+
llm:
|
|
7
|
+
provider: "ollama"
|
|
8
|
+
model: "llama3"
|
|
9
|
+
max_tokens: 512
|
|
10
|
+
timeout: 120000
|
|
11
|
+
retry: 1
|
|
12
|
+
|
|
13
|
+
concurrency: 2
|
|
14
|
+
|
|
15
|
+
inputs:
|
|
16
|
+
- name: topic
|
|
17
|
+
description: "Topic to analyze"
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- id: analyze
|
|
22
|
+
role: "product/product-manager"
|
|
23
|
+
task: |
|
|
24
|
+
用中文简要分析以下主题的市场前景(100字以内):
|
|
25
|
+
|
|
26
|
+
{{topic}}
|
|
27
|
+
output: analysis
|
|
28
|
+
|
|
29
|
+
- id: plan
|
|
30
|
+
role: "engineering/engineering-software-architect"
|
|
31
|
+
task: |
|
|
32
|
+
基于以下分析,用中文给出 3 条技术建议(每条一句话):
|
|
33
|
+
|
|
34
|
+
{{analysis}}
|
|
35
|
+
depends_on: [analyze]
|