massgen 0.1.1__py3-none-any.whl → 0.1.3__py3-none-any.whl
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.
- massgen/__init__.py +1 -1
- massgen/agent_config.py +33 -7
- massgen/api_params_handler/_api_params_handler_base.py +3 -0
- massgen/api_params_handler/_chat_completions_api_params_handler.py +7 -1
- massgen/backend/azure_openai.py +9 -1
- massgen/backend/base.py +56 -0
- massgen/backend/base_with_custom_tool_and_mcp.py +4 -4
- massgen/backend/capabilities.py +6 -6
- massgen/backend/chat_completions.py +18 -11
- massgen/backend/claude_code.py +9 -1
- massgen/backend/gemini.py +71 -6
- massgen/backend/gemini_utils.py +30 -0
- massgen/backend/grok.py +39 -6
- massgen/backend/response.py +18 -11
- massgen/chat_agent.py +9 -3
- massgen/cli.py +319 -43
- massgen/config_builder.py +163 -18
- massgen/configs/README.md +78 -20
- massgen/configs/basic/multi/three_agents_default.yaml +2 -2
- massgen/configs/debug/restart_test_controlled.yaml +60 -0
- massgen/configs/debug/restart_test_controlled_filesystem.yaml +73 -0
- massgen/configs/tools/code-execution/docker_with_sudo.yaml +35 -0
- massgen/configs/tools/custom_tools/computer_use_browser_example.yaml +56 -0
- massgen/configs/tools/custom_tools/computer_use_docker_example.yaml +65 -0
- massgen/configs/tools/custom_tools/computer_use_example.yaml +50 -0
- massgen/configs/tools/custom_tools/crawl4ai_mcp_example.yaml +67 -0
- massgen/configs/tools/custom_tools/crawl4ai_multi_agent_example.yaml +68 -0
- massgen/configs/tools/custom_tools/multimodal_tools/playwright_with_img_understanding.yaml +98 -0
- massgen/configs/tools/custom_tools/multimodal_tools/understand_audio.yaml +33 -0
- massgen/configs/tools/custom_tools/multimodal_tools/understand_file.yaml +34 -0
- massgen/configs/tools/custom_tools/multimodal_tools/understand_image.yaml +33 -0
- massgen/configs/tools/custom_tools/multimodal_tools/understand_video.yaml +34 -0
- massgen/configs/tools/custom_tools/multimodal_tools/understand_video_example.yaml +54 -0
- massgen/configs/tools/custom_tools/multimodal_tools/youtube_video_analysis.yaml +59 -0
- massgen/configs/tools/memory/README.md +199 -0
- massgen/configs/tools/memory/gpt5mini_gemini_context_window_management.yaml +131 -0
- massgen/configs/tools/memory/gpt5mini_gemini_no_persistent_memory.yaml +133 -0
- massgen/configs/tools/memory/test_context_window_management.py +286 -0
- massgen/configs/tools/multimodal/gpt5mini_gpt5nano_documentation_evolution.yaml +97 -0
- massgen/configs/tools/planning/five_agents_discord_mcp_planning_mode.yaml +7 -29
- massgen/configs/tools/planning/five_agents_filesystem_mcp_planning_mode.yaml +5 -6
- massgen/configs/tools/planning/five_agents_notion_mcp_planning_mode.yaml +4 -4
- massgen/configs/tools/planning/five_agents_twitter_mcp_planning_mode.yaml +4 -4
- massgen/configs/tools/planning/gpt5_mini_case_study_mcp_planning_mode.yaml +2 -2
- massgen/docker/README.md +83 -0
- massgen/filesystem_manager/_code_execution_server.py +22 -7
- massgen/filesystem_manager/_docker_manager.py +21 -1
- massgen/filesystem_manager/_filesystem_manager.py +8 -0
- massgen/filesystem_manager/_workspace_tools_server.py +0 -997
- massgen/formatter/_gemini_formatter.py +73 -0
- massgen/frontend/coordination_ui.py +175 -257
- massgen/frontend/displays/base_display.py +29 -0
- massgen/frontend/displays/rich_terminal_display.py +155 -9
- massgen/frontend/displays/simple_display.py +21 -0
- massgen/frontend/displays/terminal_display.py +22 -2
- massgen/logger_config.py +50 -6
- massgen/message_templates.py +123 -3
- massgen/orchestrator.py +652 -44
- massgen/tests/test_code_execution.py +178 -0
- massgen/tests/test_intelligent_planning_mode.py +643 -0
- massgen/tests/test_orchestration_restart.py +204 -0
- massgen/token_manager/token_manager.py +13 -4
- massgen/tool/__init__.py +4 -0
- massgen/tool/_multimodal_tools/understand_audio.py +193 -0
- massgen/tool/_multimodal_tools/understand_file.py +550 -0
- massgen/tool/_multimodal_tools/understand_image.py +212 -0
- massgen/tool/_multimodal_tools/understand_video.py +313 -0
- massgen/tool/docs/multimodal_tools.md +779 -0
- massgen/tool/workflow_toolkits/__init__.py +26 -0
- massgen/tool/workflow_toolkits/post_evaluation.py +216 -0
- massgen/utils.py +1 -0
- {massgen-0.1.1.dist-info → massgen-0.1.3.dist-info}/METADATA +57 -52
- {massgen-0.1.1.dist-info → massgen-0.1.3.dist-info}/RECORD +77 -49
- {massgen-0.1.1.dist-info → massgen-0.1.3.dist-info}/WHEEL +0 -0
- {massgen-0.1.1.dist-info → massgen-0.1.3.dist-info}/entry_points.txt +0 -0
- {massgen-0.1.1.dist-info → massgen-0.1.3.dist-info}/licenses/LICENSE +0 -0
- {massgen-0.1.1.dist-info → massgen-0.1.3.dist-info}/top_level.txt +0 -0
|
@@ -7,6 +7,7 @@ from typing import Dict, List, Optional
|
|
|
7
7
|
|
|
8
8
|
from .base import BaseToolkit, ToolType
|
|
9
9
|
from .new_answer import NewAnswerToolkit
|
|
10
|
+
from .post_evaluation import PostEvaluationToolkit
|
|
10
11
|
from .vote import VoteToolkit
|
|
11
12
|
|
|
12
13
|
__all__ = [
|
|
@@ -14,7 +15,9 @@ __all__ = [
|
|
|
14
15
|
"ToolType",
|
|
15
16
|
"NewAnswerToolkit",
|
|
16
17
|
"VoteToolkit",
|
|
18
|
+
"PostEvaluationToolkit",
|
|
17
19
|
"get_workflow_tools",
|
|
20
|
+
"get_post_evaluation_tools",
|
|
18
21
|
]
|
|
19
22
|
|
|
20
23
|
|
|
@@ -55,3 +58,26 @@ def get_workflow_tools(
|
|
|
55
58
|
tools.extend(vote_toolkit.get_tools(config))
|
|
56
59
|
|
|
57
60
|
return tools
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def get_post_evaluation_tools(
|
|
64
|
+
template_overrides: Optional[Dict] = None,
|
|
65
|
+
api_format: str = "chat_completions",
|
|
66
|
+
) -> List[Dict]:
|
|
67
|
+
"""
|
|
68
|
+
Get post-evaluation tool definitions (submit and restart_orchestration).
|
|
69
|
+
|
|
70
|
+
Args:
|
|
71
|
+
template_overrides: Optional template overrides
|
|
72
|
+
api_format: API format to use (chat_completions, claude, response)
|
|
73
|
+
|
|
74
|
+
Returns:
|
|
75
|
+
List of tool definitions [submit, restart_orchestration]
|
|
76
|
+
"""
|
|
77
|
+
config = {
|
|
78
|
+
"api_format": api_format,
|
|
79
|
+
"enable_post_evaluation_tools": True,
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
post_eval_toolkit = PostEvaluationToolkit(template_overrides=template_overrides)
|
|
83
|
+
return post_eval_toolkit.get_tools(config)
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
Post-evaluation toolkit for MassGen orchestration restart feature.
|
|
4
|
+
|
|
5
|
+
This toolkit provides tools for post-evaluation phase where the winning agent
|
|
6
|
+
evaluates its own answer and decides whether to submit or restart with improvements.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from typing import Any, Dict, List, Optional
|
|
10
|
+
|
|
11
|
+
from .base import BaseToolkit, ToolType
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class PostEvaluationToolkit(BaseToolkit):
|
|
15
|
+
"""Post-evaluation toolkit for orchestration restart feature."""
|
|
16
|
+
|
|
17
|
+
def __init__(self, template_overrides: Optional[Dict[str, Any]] = None):
|
|
18
|
+
"""
|
|
19
|
+
Initialize the PostEvaluation toolkit.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
template_overrides: Optional template overrides for customization
|
|
23
|
+
"""
|
|
24
|
+
self._template_overrides = template_overrides or {}
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def toolkit_id(self) -> str:
|
|
28
|
+
"""Unique identifier for post-evaluation toolkit."""
|
|
29
|
+
return "post_evaluation"
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def toolkit_type(self) -> ToolType:
|
|
33
|
+
"""Type of this toolkit."""
|
|
34
|
+
return ToolType.WORKFLOW
|
|
35
|
+
|
|
36
|
+
def is_enabled(self, config: Dict[str, Any]) -> bool:
|
|
37
|
+
"""
|
|
38
|
+
Check if post-evaluation is enabled in configuration.
|
|
39
|
+
|
|
40
|
+
Args:
|
|
41
|
+
config: Configuration dictionary.
|
|
42
|
+
|
|
43
|
+
Returns:
|
|
44
|
+
True if post-evaluation tools are enabled.
|
|
45
|
+
"""
|
|
46
|
+
return config.get("enable_post_evaluation_tools", True)
|
|
47
|
+
|
|
48
|
+
def get_tools(self, config: Dict[str, Any]) -> List[Dict[str, Any]]:
|
|
49
|
+
"""
|
|
50
|
+
Get post-evaluation tool definitions based on API format.
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
config: Configuration including api_format.
|
|
54
|
+
|
|
55
|
+
Returns:
|
|
56
|
+
List containing submit and restart_orchestration tool definitions.
|
|
57
|
+
"""
|
|
58
|
+
api_format = config.get("api_format", "chat_completions")
|
|
59
|
+
|
|
60
|
+
if api_format == "claude":
|
|
61
|
+
# Claude native format
|
|
62
|
+
return self._get_claude_tools()
|
|
63
|
+
elif api_format == "response":
|
|
64
|
+
# Response API format
|
|
65
|
+
return self._get_response_tools()
|
|
66
|
+
else:
|
|
67
|
+
# Default Chat Completions format
|
|
68
|
+
return self._get_chat_completions_tools()
|
|
69
|
+
|
|
70
|
+
def _get_claude_tools(self) -> List[Dict[str, Any]]:
|
|
71
|
+
"""Get Claude native format tools."""
|
|
72
|
+
submit_tool = {
|
|
73
|
+
"name": "submit",
|
|
74
|
+
"description": "Confirm that the final answer fully addresses the original task and submit it to the user. Use this when the answer is complete, accurate, and satisfactory.",
|
|
75
|
+
"input_schema": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"confirmed": {
|
|
79
|
+
"type": "boolean",
|
|
80
|
+
"description": "Set to true to confirm the answer is satisfactory",
|
|
81
|
+
"enum": [True],
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
"required": ["confirmed"],
|
|
85
|
+
},
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
restart_tool = {
|
|
89
|
+
"name": "restart_orchestration",
|
|
90
|
+
"description": "Restart the orchestration process with specific guidance for improvement. Use this when the answer is incomplete, incorrect, or does not fully address the original task.",
|
|
91
|
+
"input_schema": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"properties": {
|
|
94
|
+
"reason": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "Clear explanation of why the answer is insufficient (e.g., 'The task required descriptions of two Beatles, but only John Lennon was described')",
|
|
97
|
+
},
|
|
98
|
+
"instructions": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"description": (
|
|
101
|
+
"Detailed, actionable guidance for agents on the next attempt "
|
|
102
|
+
"(e.g., 'Provide two descriptions (John Lennon AND Paul McCartney). "
|
|
103
|
+
"Each should include: birth year, role in band, notable songs, impact on music. "
|
|
104
|
+
"Use 4-6 sentences per person.')"
|
|
105
|
+
),
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
"required": ["reason", "instructions"],
|
|
109
|
+
},
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return [submit_tool, restart_tool]
|
|
113
|
+
|
|
114
|
+
def _get_response_tools(self) -> List[Dict[str, Any]]:
|
|
115
|
+
"""Get Response API format tools."""
|
|
116
|
+
submit_tool = {
|
|
117
|
+
"type": "function",
|
|
118
|
+
"function": {
|
|
119
|
+
"name": "submit",
|
|
120
|
+
"description": "Confirm that the final answer fully addresses the original task and submit it to the user. Use this when the answer is complete, accurate, and satisfactory.",
|
|
121
|
+
"parameters": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"properties": {
|
|
124
|
+
"confirmed": {
|
|
125
|
+
"type": "boolean",
|
|
126
|
+
"description": "Set to true to confirm the answer is satisfactory",
|
|
127
|
+
"enum": [True],
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
"required": ["confirmed"],
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
restart_tool = {
|
|
136
|
+
"type": "function",
|
|
137
|
+
"function": {
|
|
138
|
+
"name": "restart_orchestration",
|
|
139
|
+
"description": (
|
|
140
|
+
"Restart the orchestration process with specific guidance for improvement. " "Use this when the answer is incomplete, incorrect, or does not fully address the original task."
|
|
141
|
+
),
|
|
142
|
+
"parameters": {
|
|
143
|
+
"type": "object",
|
|
144
|
+
"properties": {
|
|
145
|
+
"reason": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"description": "Clear explanation of why the answer is insufficient (e.g., 'The task required descriptions of two Beatles, but only John Lennon was described')",
|
|
148
|
+
},
|
|
149
|
+
"instructions": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"description": (
|
|
152
|
+
"Detailed, actionable guidance for agents on the next attempt "
|
|
153
|
+
"(e.g., 'Provide two descriptions (John Lennon AND Paul McCartney). "
|
|
154
|
+
"Each should include: birth year, role in band, notable songs, impact on music. "
|
|
155
|
+
"Use 4-6 sentences per person.')"
|
|
156
|
+
),
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
"required": ["reason", "instructions"],
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return [submit_tool, restart_tool]
|
|
165
|
+
|
|
166
|
+
def _get_chat_completions_tools(self) -> List[Dict[str, Any]]:
|
|
167
|
+
"""Get Chat Completions format tools."""
|
|
168
|
+
submit_tool = {
|
|
169
|
+
"type": "function",
|
|
170
|
+
"function": {
|
|
171
|
+
"name": "submit",
|
|
172
|
+
"description": "Confirm that the final answer fully addresses the original task and submit it to the user. Use this when the answer is complete, accurate, and satisfactory.",
|
|
173
|
+
"parameters": {
|
|
174
|
+
"type": "object",
|
|
175
|
+
"properties": {
|
|
176
|
+
"confirmed": {
|
|
177
|
+
"type": "boolean",
|
|
178
|
+
"description": "Set to true to confirm the answer is satisfactory",
|
|
179
|
+
"enum": [True],
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
"required": ["confirmed"],
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
restart_tool = {
|
|
188
|
+
"type": "function",
|
|
189
|
+
"function": {
|
|
190
|
+
"name": "restart_orchestration",
|
|
191
|
+
"description": (
|
|
192
|
+
"Restart the orchestration process with specific guidance for improvement. " "Use this when the answer is incomplete, incorrect, or does not fully address the original task."
|
|
193
|
+
),
|
|
194
|
+
"parameters": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"properties": {
|
|
197
|
+
"reason": {
|
|
198
|
+
"type": "string",
|
|
199
|
+
"description": "Clear explanation of why the answer is insufficient (e.g., 'The task required descriptions of two Beatles, but only John Lennon was described')",
|
|
200
|
+
},
|
|
201
|
+
"instructions": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"description": (
|
|
204
|
+
"Detailed, actionable guidance for agents on the next attempt "
|
|
205
|
+
"(e.g., 'Provide two descriptions (John Lennon AND Paul McCartney). "
|
|
206
|
+
"Each should include: birth year, role in band, notable songs, impact on music. "
|
|
207
|
+
"Use 4-6 sentences per person.')"
|
|
208
|
+
),
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
"required": ["reason", "instructions"],
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
return [submit_tool, restart_tool]
|
massgen/utils.py
CHANGED
|
@@ -31,6 +31,7 @@ class CoordinationStage(Enum):
|
|
|
31
31
|
INITIAL_ANSWER = "initial_answer" # initial answer generation
|
|
32
32
|
ENFORCEMENT = "enforcement"
|
|
33
33
|
PRESENTATION = "presentation"
|
|
34
|
+
POST_EVALUATION = "post_evaluation" # post-evaluation phase (MCP tools enabled)
|
|
34
35
|
|
|
35
36
|
|
|
36
37
|
MODEL_MAPPINGS = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: massgen
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Multi-Agent Scaling System - A powerful framework for collaborative AI
|
|
5
5
|
Author-email: MassGen Team <contact@massgen.dev>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -49,6 +49,11 @@ Requires-Dist: ag2>=0.9.10
|
|
|
49
49
|
Requires-Dist: pyautogen>=0.10.0
|
|
50
50
|
Requires-Dist: vertexai>=1.71.1
|
|
51
51
|
Requires-Dist: pytest>=8.4.2
|
|
52
|
+
Requires-Dist: python-docx>=1.2.0
|
|
53
|
+
Requires-Dist: openpyxl>=3.1.5
|
|
54
|
+
Requires-Dist: python-pptx>=1.0.2
|
|
55
|
+
Requires-Dist: opencv-python>=4.12.0.88
|
|
56
|
+
Requires-Dist: pypdf2>=3.0.1
|
|
52
57
|
Provides-Extra: dev
|
|
53
58
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
54
59
|
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
@@ -109,7 +114,7 @@ Dynamic: license-file
|
|
|
109
114
|
|
|
110
115
|
<p align="center">
|
|
111
116
|
<a href="https://www.youtube.com/watch?v=Dp2oldJJImw">
|
|
112
|
-
<img src="https://raw.githubusercontent.com/Leezekun/MassGen/main/assets/
|
|
117
|
+
<img src="https://raw.githubusercontent.com/Leezekun/MassGen/main/assets/thumbnail.png" alt="MassGen case study -- Berkeley Agentic AI Summit Question" width="800">
|
|
113
118
|
</a>
|
|
114
119
|
</p>
|
|
115
120
|
|
|
@@ -138,7 +143,7 @@ This project started with the "threads of thought" and "iterative refinement" id
|
|
|
138
143
|
<details open>
|
|
139
144
|
<summary><h3>🆕 Latest Features</h3></summary>
|
|
140
145
|
|
|
141
|
-
- [v0.1.
|
|
146
|
+
- [v0.1.2 Features](#-latest-features-v012)
|
|
142
147
|
</details>
|
|
143
148
|
|
|
144
149
|
<details open>
|
|
@@ -183,15 +188,15 @@ This project started with the "threads of thought" and "iterative refinement" id
|
|
|
183
188
|
<summary><h3>🗺️ Roadmap</h3></summary>
|
|
184
189
|
|
|
185
190
|
- Recent Achievements
|
|
186
|
-
- [v0.1.
|
|
187
|
-
- [v0.0.3 - v0.1.
|
|
191
|
+
- [v0.1.2](#recent-achievements-v012)
|
|
192
|
+
- [v0.0.3 - v0.1.1](#previous-achievements-v003---v011)
|
|
188
193
|
- [Key Future Enhancements](#key-future-enhancements)
|
|
189
194
|
- Bug Fixes & Backend Improvements
|
|
190
195
|
- Advanced Agent Collaboration
|
|
191
196
|
- Expanded Model, Tool & Agent Integrations
|
|
192
197
|
- Improved Performance & Scalability
|
|
193
198
|
- Enhanced Developer Experience
|
|
194
|
-
- [v0.1.
|
|
199
|
+
- [v0.1.3 Roadmap](#v013-roadmap)
|
|
195
200
|
</details>
|
|
196
201
|
|
|
197
202
|
<details open>
|
|
@@ -216,36 +221,36 @@ This project started with the "threads of thought" and "iterative refinement" id
|
|
|
216
221
|
|
|
217
222
|
---
|
|
218
223
|
|
|
219
|
-
## 🆕 Latest Features (v0.1.
|
|
224
|
+
## 🆕 Latest Features (v0.1.2)
|
|
220
225
|
|
|
221
|
-
**🎉 Released: October
|
|
226
|
+
**🎉 Released: October 22, 2025**
|
|
222
227
|
|
|
223
|
-
**What's New in v0.1.
|
|
224
|
-
-
|
|
225
|
-
-
|
|
226
|
-
-
|
|
227
|
-
- **📊 Backend Capabilities Registry** - Centralized feature support tracking
|
|
228
|
-
- **🔬 Self-Evolution Capability** - Agents autonomously analyze GitHub issues and market trends for feature prioritization
|
|
228
|
+
**What's New in v0.1.2:**
|
|
229
|
+
- **🧠 Intelligent Planning Mode** - Automatic question analysis for safe MCP tool blocking
|
|
230
|
+
- **🎭 Claude 4.5 Haiku Support** - Access to latest Claude Haiku model
|
|
231
|
+
- **🔍 Grok Web Search Fix** - Improved web search functionality in Grok backend
|
|
229
232
|
|
|
230
|
-
|
|
233
|
+
**Key Improvements:**
|
|
234
|
+
- Automatically determines if questions require irreversible operations
|
|
235
|
+
- Read-only MCP operations allowed during coordination for better decisions
|
|
236
|
+
- Write operations automatically blocked for safety
|
|
237
|
+
- Zero configuration required - works transparently
|
|
238
|
+
- Enhanced model support with latest Claude 4.5 Haiku
|
|
231
239
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
**Get Started with v0.1.1:**
|
|
240
|
+
**Get Started with v0.1.2:**
|
|
235
241
|
```bash
|
|
236
242
|
# Install or upgrade from PyPI
|
|
237
243
|
pip install --upgrade massgen
|
|
238
244
|
|
|
239
|
-
#
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
massgen --config @examples/tools/custom_tools/claude_custom_tool_example \
|
|
244
|
-
"What's the sum of 123 and 456?"
|
|
245
|
+
# Try intelligent planning mode with MCP tools
|
|
246
|
+
# (Please read the YAML file for required API keys: DISCORD_TOKEN, OPENAI_API_KEY, etc.)
|
|
247
|
+
massgen --config @examples/tools/planning/five_agents_discord_mcp_planning_mode \
|
|
248
|
+
"Check recent messages in our development channel, summarize the discussion, and post a helpful response about the current topic."
|
|
245
249
|
|
|
246
|
-
# Use
|
|
247
|
-
|
|
248
|
-
|
|
250
|
+
# Use latest Claude 4.5 Haiku model
|
|
251
|
+
# (Requires ANTHROPIC_API_KEY in .env)
|
|
252
|
+
massgen --model claude-haiku-4-5-20251001 \
|
|
253
|
+
"Summarize the latest AI developments"
|
|
249
254
|
```
|
|
250
255
|
|
|
251
256
|
→ [See full release history and examples](massgen/configs/README.md#release-history--examples)
|
|
@@ -1082,31 +1087,33 @@ MassGen is currently in its foundational stage, with a focus on parallel, asynch
|
|
|
1082
1087
|
|
|
1083
1088
|
⚠️ **Early Stage Notice:** As MassGen is in active development, please expect upcoming breaking architecture changes as we continue to refine and improve the system.
|
|
1084
1089
|
|
|
1085
|
-
### Recent Achievements (v0.1.
|
|
1090
|
+
### Recent Achievements (v0.1.2)
|
|
1091
|
+
|
|
1092
|
+
**🎉 Released: October 22, 2025**
|
|
1093
|
+
|
|
1094
|
+
#### Intelligent Planning Mode
|
|
1095
|
+
- **Automatic Question Analysis**: New `_analyze_question_irreversibility()` method in orchestrator determines if MCP operations are reversible
|
|
1096
|
+
- **Selective Tool Blocking**: Granular control with `set_planning_mode_blocked_tools()`, `get_planning_mode_blocked_tools()`, and `is_mcp_tool_blocked()` methods
|
|
1097
|
+
- **Dynamic Behavior**: Read-only MCP operations allowed during coordination, write operations blocked for safety
|
|
1098
|
+
- **Zero Configuration**: Works transparently without setup
|
|
1099
|
+
- **Multi-Workspace Support**: Planning mode works across different workspaces without conflicts
|
|
1100
|
+
- **Test Coverage**: Comprehensive tests in `massgen/tests/test_intelligent_planning_mode.py`
|
|
1101
|
+
- **Documentation**: Complete guide in `docs/case_studies/INTELLIGENT_PLANNING_MODE.md`
|
|
1086
1102
|
|
|
1087
|
-
|
|
1103
|
+
#### Model Support & Improvements
|
|
1104
|
+
- **Claude 4.5 Haiku**: Added latest Claude Haiku model `claude-haiku-4-5-20251001`
|
|
1105
|
+
- **Model Priority Updates**: Reorganized Claude model list with updated defaults (`claude-sonnet-4-5-20250929`)
|
|
1106
|
+
- **Grok Web Search Fix**: Resolved `extra_body` parameter handling for Grok's Live Search API with new `_add_grok_search_params()` method
|
|
1088
1107
|
|
|
1089
|
-
####
|
|
1090
|
-
- **
|
|
1091
|
-
- **
|
|
1092
|
-
- **Tool Categories**: Builtin, MCP, and custom tools with automatic discovery and conflict resolution
|
|
1093
|
-
- **40+ Examples**: Ready-to-use configurations in `massgen/configs/tools/custom_tools/`
|
|
1108
|
+
#### Configuration Updates
|
|
1109
|
+
- **Planning Mode Configs**: Updated 5 configurations in `massgen/configs/tools/planning/` with selective blocking examples
|
|
1110
|
+
- **Default Configuration**: Updated `three_agents_default.yaml` with Grok-4-fast model
|
|
1094
1111
|
|
|
1095
|
-
|
|
1096
|
-
- **Three-Tier System**: "lenient", "balanced", "strict" voting modes
|
|
1097
|
-
- **Answer Novelty Detection**: Prevents duplicate submissions with configurable similarity thresholds
|
|
1098
|
-
- **Quality Assurance**: Configurable `max_new_answers_per_agent` and token-based overlap detection
|
|
1099
|
-
- **Configuration**: `massgen/configs/voting/gemini_gpt_voting_sensitivity.yaml`
|
|
1112
|
+
### Previous Achievements (v0.0.3 - v0.1.1)
|
|
1100
1113
|
|
|
1101
|
-
|
|
1102
|
-
- **Gemini Refactoring**: Extracted MCP management (`gemini_mcp_manager.py`), tracking (`gemini_trackers.py`), and utilities
|
|
1103
|
-
- **Capabilities Registry**: New `massgen/backend/capabilities.py` documenting feature support across backends
|
|
1104
|
-
- **Documentation Updates**: Enhanced custom tools guide, reorganized case studies, updated configuration schema
|
|
1105
|
-
- **Case Studies**:
|
|
1106
|
-
- `docs/case_studies/github-issue-market-analysis.md` - Custom tools with GitHub issue market analysis (v0.1.1)
|
|
1107
|
-
- `docs/case_studies/universal-code-execution-mcp.md` - MCP code execution across backends (v0.0.31)
|
|
1114
|
+
✅ **Custom Tools System (v0.1.1)**: User-defined Python function registration using `ToolManager` class in `massgen/tool/_manager.py`, cross-backend support alongside MCP servers, builtin/MCP/custom tool categories with automatic discovery, 40+ examples in `massgen/configs/tools/custom_tools/`, voting sensitivity controls with three-tier quality system (lenient/balanced/strict), answer novelty detection preventing duplicates
|
|
1108
1115
|
|
|
1109
|
-
|
|
1116
|
+
✅ **Backend Enhancements (v0.1.1)**: Gemini architecture refactoring with extracted MCP management (`gemini_mcp_manager.py`), tracking (`gemini_trackers.py`), and utilities, new capabilities registry in `massgen/backend/capabilities.py` documenting feature support across backends
|
|
1110
1117
|
|
|
1111
1118
|
✅ **PyPI Package Release (v0.1.0)**: Official distribution via `pip install massgen` with simplified installation, global `massgen` command accessible from any directory, comprehensive Sphinx documentation at [docs.massgen.ai](https://docs.massgen.ai/), interactive setup wizard with use case presets and API key management, enhanced CLI with `@examples/` prefix for built-in configurations
|
|
1112
1119
|
|
|
@@ -1206,21 +1213,19 @@ MassGen is currently in its foundational stage, with a focus on parallel, asynch
|
|
|
1206
1213
|
|
|
1207
1214
|
We welcome community contributions to achieve these goals.
|
|
1208
1215
|
|
|
1209
|
-
### v0.1.
|
|
1216
|
+
### v0.1.3 Roadmap
|
|
1210
1217
|
|
|
1211
|
-
Version 0.1.
|
|
1218
|
+
Version 0.1.3 focuses on general interoperability and enterprise collaboration:
|
|
1212
1219
|
|
|
1213
1220
|
#### Required Features
|
|
1214
1221
|
- **General Interoperability**: Enable MassGen to orchestrate agents from multiple external frameworks with unified interface
|
|
1215
1222
|
- **Final Agent Submit/Restart Tools**: Enable final agent to decide whether to submit or restart orchestration
|
|
1216
|
-
- **Memory Module - Phase 1**: Long-term memory implementation using mem0 for reasoning and document understanding
|
|
1217
1223
|
|
|
1218
1224
|
Key technical approach:
|
|
1219
1225
|
- **Framework Integration**: Multi-agent coordination supporting external agent frameworks with specialized agent roles (researcher, analyst, critic, synthesizer)
|
|
1220
1226
|
- **Submit/Restart**: Multi-step task verification with access to previous agents' responses and workspaces
|
|
1221
|
-
- **Memory Module**: Session-based memory management with persistent context across conversations
|
|
1222
1227
|
|
|
1223
|
-
For detailed milestones and technical specifications, see the [full v0.1.
|
|
1228
|
+
For detailed milestones and technical specifications, see the [full v0.1.3 roadmap](ROADMAP.md).
|
|
1224
1229
|
|
|
1225
1230
|
---
|
|
1226
1231
|
|