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.
@@ -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
@@ -0,0 +1,2 @@
1
+ /** 工作流 YAML 定义的类型 */
2
+ export {};
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]