Coverage for agentos/agents/market.py: 0%
61 statements
« prev ^ index » next coverage.py v7.14.3, created at 2026-07-08 10:59 +0800
« prev ^ index » next coverage.py v7.14.3, created at 2026-07-08 10:59 +0800
1"""
2AgentOS v0.30 Agent技能市场 — 可复用的Agent技能模板。
3预置24个专业Agent技能。
4"""
6from dataclasses import dataclass, field
7from enum import StrEnum
10class AgentCategory(StrEnum):
11 """Agent 分类。"""
13 CODE = "code"
14 DATA = "data"
15 SECURITY = "security"
16 WRITING = "writing"
17 ANALYSIS = "analysis"
18 AUTOMATION = "automation"
19 CREATIVE = "creative"
20 DEVOPS = "devops"
23@dataclass
24class AgentSkill:
25 """Agent 技能定义。"""
27 name: str
28 category: AgentCategory
29 description: str
30 system_prompt: str
31 tools: list[str] = field(default_factory=list)
32 model_preference: str = "auto"
33 tags: list[str] = field(default_factory=list)
34 version: str = "1.0.0"
35 author: str = "AgentOS"
38class AgentMarket:
39 """v0.30 Agent技能市场 — 24个预置技能。"""
41 def __init__(self):
42 self._skills: dict[str, AgentSkill] = {}
43 self._register_defaults()
45 def _register_defaults(self):
46 skills = [
47 # CODE (6)
48 AgentSkill(
49 "code-reviewer",
50 AgentCategory.CODE,
51 "代码审查,发现bug/安全漏洞/风格问题",
52 "你是一个资深代码审查员。审查代码的:1)逻辑错误 2)安全漏洞 3)性能问题 4)代码风格。输出结构化报告。",
53 ["read_text", "write_file", "shell_executor"],
54 "kimi-k2.6",
55 ["code", "review", "quality"],
56 ),
57 AgentSkill(
58 "architect",
59 AgentCategory.CODE,
60 "软件架构设计,系统拆分、技术选型",
61 "你是一个软件架构师。设计可扩展、高性能的系统架构。输出架构图(ASCII)+关键决策+技术栈推荐。",
62 ["read_text", "web_search"],
63 "deepseek-r1",
64 ["architecture", "design", "system"],
65 ),
66 AgentSkill(
67 "refactor-expert",
68 AgentCategory.CODE,
69 "代码重构,提升可读性和性能",
70 "你是一个重构专家。重构代码:1)提取方法 2)消除重复 3)优化数据结构 4)保持向后兼容。",
71 ["read_text", "write_file", "edit_file", "shell_executor"],
72 "kimi-k2.6",
73 ["refactor", "clean-code"],
74 ),
75 AgentSkill(
76 "test-generator",
77 AgentCategory.CODE,
78 "自动生成单元测试/集成测试",
79 "你是一个测试工程师。为给定代码生成全面的测试用例:1)边界条件 2)异常路径 3)Mock外部依赖。",
80 ["read_text", "write_file", "shell_executor"],
81 "deepseek-v3.1",
82 ["testing", "pytest"],
83 ),
84 AgentSkill(
85 "debug-helper",
86 AgentCategory.CODE,
87 "调试助手,分析错误日志定位根因",
88 "你是一个调试专家。分析错误栈/日志,定位根因,给出修复方案。",
89 ["read_text", "shell_executor"],
90 "deepseek-r1",
91 ["debug", "troubleshoot"],
92 ),
93 AgentSkill(
94 "doc-generator",
95 AgentCategory.CODE,
96 "API文档/README自动生成",
97 "你是一个文档工程师。从代码生成清晰的API文档、README、使用示例。",
98 ["read_text", "write_file"],
99 "deepseek-v3.1",
100 ["docs", "api"],
101 ),
102 # DATA (4)
103 AgentSkill(
104 "data-analyst",
105 AgentCategory.DATA,
106 "数据分析,统计/可视化/洞察",
107 "你是一个数据分析师。分析数据:1)描述性统计 2)趋势发现 3)异常检测 4)可视化建议。",
108 ["python_executor", "read_text", "write_file"],
109 "deepseek-r1",
110 ["data", "analytics"],
111 ),
112 AgentSkill(
113 "sql-master",
114 AgentCategory.DATA,
115 "SQL查询优化/数据库设计",
116 "你是一个数据库专家。编写高效SQL、设计表结构、优化查询性能。",
117 ["python_executor", "read_text"],
118 "deepseek-v3.1",
119 ["sql", "database"],
120 ),
121 AgentSkill(
122 "etl-engineer",
123 AgentCategory.DATA,
124 "数据清洗/ETL管道构建",
125 "你是一个数据工程师。构建可靠的数据管道:抽取-转换-加载。处理脏数据、格式转换。",
126 ["python_executor", "read_text", "write_file", "shell_executor"],
127 "kimi-k2.6",
128 ["etl", "pipeline"],
129 ),
130 AgentSkill(
131 "ml-consultant",
132 AgentCategory.DATA,
133 "机器学习方案咨询,特征工程建议",
134 "你是一个ML顾问。推荐合适的模型、特征工程策略、评估指标。",
135 ["web_search", "python_executor"],
136 "deepseek-r1",
137 ["ml", "ai"],
138 ),
139 # SECURITY (3)
140 AgentSkill(
141 "security-auditor",
142 AgentCategory.SECURITY,
143 "安全审计,OWASP Top 10检查",
144 "你是一个安全审计员。检查:1)注入攻击 2)认证缺陷 3)敏感数据暴露 4)XXE 5)访问控制。",
145 ["read_text", "shell_executor"],
146 "deepseek-r1",
147 ["security", "audit"],
148 ),
149 AgentSkill(
150 "pentest-advisor",
151 AgentCategory.SECURITY,
152 "渗透测试建议,漏洞利用分析",
153 "你是一个渗透测试顾问。分析系统弱点,提供测试向量。仅用于授权测试。",
154 ["shell_executor", "web_search"],
155 "deepseek-r1",
156 ["pentest", "vulnerability"],
157 ),
158 AgentSkill(
159 "crypto-reviewer",
160 AgentCategory.SECURITY,
161 "密码学实现审查",
162 "你是一个密码学专家。审查加密实现:算法选择、密钥管理、随机数生成。",
163 ["read_text"],
164 "deepseek-r1",
165 ["crypto", "encryption"],
166 ),
167 # WRITING (3)
168 AgentSkill(
169 "technical-writer",
170 AgentCategory.WRITING,
171 "技术文章/博客/白皮书撰写",
172 "你是一个技术写作专家。撰写清晰、准确的技术文档:白皮书、技术博客、教程。",
173 ["web_search", "write_file"],
174 "kimi-k2.6",
175 ["writing", "blog"],
176 ),
177 AgentSkill(
178 "spec-writer",
179 AgentCategory.WRITING,
180 "PRD/技术规格文档撰写",
181 "你是一个产品规格撰写人。输出结构化PRD:背景、目标、用户故事、验收标准、非功能需求。",
182 ["web_search", "write_file"],
183 "deepseek-v3.1",
184 ["prd", "specification"],
185 ),
186 AgentSkill(
187 "translator-pro",
188 AgentCategory.WRITING,
189 "专业文档翻译(中英互译+技术术语准确)",
190 "你是一个专业翻译。翻译技术文档,保持术语一致性,保留代码片段和格式。",
191 ["read_text", "write_file"],
192 "deepseek-v3.1",
193 ["translate", "i18n"],
194 ),
195 # ANALYSIS (3)
196 AgentSkill(
197 "competitor-analyst",
198 AgentCategory.ANALYSIS,
199 "竞品分析,SWOT/五力模型",
200 "你是一个竞品分析师。输出SWOT分析、功能对比矩阵、市场定位分析。",
201 ["web_search", "write_file"],
202 "deepseek-r1",
203 ["competitive", "market"],
204 ),
205 AgentSkill(
206 "decision-analyst",
207 AgentCategory.ANALYSIS,
208 "决策分析,多维度权衡/决策矩阵",
209 "你是一个决策分析师。构建决策矩阵:列出选项、加权维度、敏感性分析。",
210 ["write_file"],
211 "deepseek-r1",
212 ["decision", "tradeoff"],
213 ),
214 AgentSkill(
215 "trend-watcher",
216 AgentCategory.ANALYSIS,
217 "技术趋势追踪,科技前沿洞察",
218 "你是一个趋势分析师。追踪技术趋势:1)论文解读 2)开源项目热度 3)行业动态。",
219 ["web_search", "web_fetch", "write_file"],
220 "kimi-k2.6",
221 ["trends", "research"],
222 ),
223 # AUTOMATION (2)
224 AgentSkill(
225 "workflow-designer",
226 AgentCategory.AUTOMATION,
227 "工作流自动化方案设计",
228 "你是一个自动化专家。设计端到端工作流:触发器→步骤→错误处理→通知。",
229 ["write_file"],
230 "kimi-k2.6",
231 ["workflow", "automation"],
232 ),
233 AgentSkill(
234 "script-writer",
235 AgentCategory.AUTOMATION,
236 "Shell/Python运维脚本编写",
237 "你是一个脚本专家。编写健壮的自动化脚本:错误处理、日志、幂等性。",
238 ["shell_executor", "python_executor", "write_file"],
239 "kimi-k2.6",
240 ["script", "ops"],
241 ),
242 # CREATIVE (2)
243 AgentSkill(
244 "canvas-designer",
245 AgentCategory.CREATIVE,
246 "视觉设计/海报/Logo生成",
247 "调用canvas-design skill进行视觉创作。",
248 ["use_skill", "write_file"],
249 "deepseek-v3.1",
250 ["design", "visual"],
251 ),
252 AgentSkill(
253 "frontend-builder",
254 AgentCategory.CREATIVE,
255 "前端界面/Web页面构建",
256 "调用frontend-design skill构建生产级界面。",
257 ["use_skill", "write_file"],
258 "kimi-k2.6",
259 ["frontend", "ui"],
260 ),
261 # DEVOPS (1)
262 AgentSkill(
263 "devops-architect",
264 AgentCategory.DEVOPS,
265 "CI/CD/容器化/监控方案",
266 "你是一个DevOps架构师。设计:1)CI/CD Pipeline 2)容器编排 3)监控告警 4)日志聚合。",
267 ["shell_executor", "write_file", "web_search"],
268 "kimi-k2.6",
269 ["devops", "cloud"],
270 ),
271 ]
272 for s in skills:
273 self._skills[s.name] = s
275 @property
276 def skills(self) -> dict[str, AgentSkill]:
277 return dict(self._skills)
279 def get(self, name: str) -> AgentSkill | None:
280 return self._skills.get(name)
282 def list_by_category(self, category: AgentCategory) -> list[AgentSkill]:
283 return [s for s in self._skills.values() if s.category == category]
285 def search(self, query: str) -> list[AgentSkill]:
286 q = query.lower()
287 results = []
288 for s in self._skills.values():
289 score = 0
290 if q in s.name.lower():
291 score += 3
292 if q in s.description.lower():
293 score += 2
294 if any(q in t.lower() for t in s.tags):
295 score += 2
296 if q in s.category.value:
297 score += 1
298 if score > 0:
299 results.append((s, score))
300 results.sort(key=lambda x: x[1], reverse=True)
301 return [s for s, _ in results]
303 def register(self, skill: AgentSkill):
304 self._skills[skill.name] = skill
306 def stats(self) -> dict:
307 cats = {}
308 for s in self._skills.values():
309 cats[s.category.value] = cats.get(s.category.value, 0) + 1
310 return {"total": len(self._skills), "by_category": cats}