你的 AI Agent 能"记住"上次对话吗?能"学会"新技能吗?
如果你用过 ChatGPT 或 Claude 的 Agent 功能,一定遇到过这种尴尬:每次对话都从零开始,之前教会它的东西全都忘了。更让人头疼的是,Agent 的能力是碎片化的——工具是工具、记忆是记忆、上下文是上下文,彼此割裂。
2026年3月,一个名为 Superpowers 的项目在 GitHub 上单日狂揽 3152+ Stars。它提出的 Agentic Skills 概念,正在重新定义 AI Agent 的构建方式。
传统 Agent 开发的三大痛点
在深入 Superpowers 之前,我们需要理解当前 Agent 开发的困境。
痛点一:能力碎片化
传统 Agent 的能力散落在三个地方:
- Tools(工具):外部 API 调用,如搜索、数据库查询
- Functions(函数):代码执行能力,如 Python 解释器
- Prompts(提示词):行为约束和角色定义
这三者之间没有统一的组织方式。你无法把"分析数据"这个能力作为一个整体来管理——它可能涉及搜索工具、数据处理函数、分析提示词,分散在不同配置文件里。
痛点二:技能不可复用
假设你教会 Agent 一个复杂技能:“从 GitHub 仓库分析代码质量”。这个技能涉及克隆仓库、静态分析、生成报告等多个步骤。
但问题来了:这个技能无法被其他 Agent 直接复用。你得把相关工具、函数、提示词重新配置一遍。更糟糕的是,如果技能需要优化,你得在每个 Agent 里单独更新。
痛点三:状态管理混乱
Agent 的状态(对话历史、用户偏好、执行上下文)通常存储在对话历史里。这导致:
- 无法跨会话保留状态
- 状态检索效率低下
- 多 Agent 协作时状态不共享
Superpowers 的核心洞察是:这些问题的根源在于"技能"没有被当作一等公民。
什么是 Agentic Skills?
Superpowers 将"技能"定义为 Agent 能力的原子单元。一个技能包含:
# 技能定义示例
name: code_analysis
description: 分析代码仓库并生成质量报告
inputs:
- repo_url: GitHub 仓库地址
- analysis_type: 分析类型(安全/性能/可维护性)
outputs:
- report: Markdown 格式报告
tools:
- git_clone
- static_analyzer
- report_generator
context:
- previous_analyses # 历史分析结果
- user_preferences # 用户偏好
prompts:
- "你是一位资深代码审查专家..."
- "请根据以下分析结果..."
关键区别:技能是自包含的能力模块,而不是工具、函数、提示词的松散组合。
技能 vs 工具 vs 函数
| 维度 | 工具 (Tool) | 函数 (Function) | 技能 (Skill) |
|---|---|---|---|
| 粒度 | 单一操作 | 代码执行 | 完整能力 |
| 复杂度 | 低 | 中 | 高 |
| 可复用 | 需配置 | 需封装 | 开箱即用 |
| 状态感知 | 无 | 无 | 有 |
| 组合性 | 有限 | 有限 | 原生支持 |
打个比方:
- 工具是一把锤子——只能砸钉子
- 函数是一个木工——能执行具体操作
- 技能是一个装修队——能完成整个装修任务
Superpowers 核心架构
Superpowers 的架构围绕"技能"展开,包含三个核心组件:
1. Skill Registry(技能注册中心)
集中管理所有可用技能。支持:
- 版本控制:技能可以有多个版本,Agent 可选择使用哪个版本
- 依赖管理:技能可以依赖其他技能,自动解决依赖冲突
- 权限控制:企业级场景下的技能访问权限
from superpowers import SkillRegistry
registry = SkillRegistry()
# 注册技能
registry.publish(
skill="code_analysis",
version="1.2.0",
dependencies=["git_ops", "static_analysis"]
)
# 发现技能
skills = registry.search(query="代码分析", tags=["security", "quality"])
2. Skill Runtime(技能运行时)
执行技能并管理状态。核心特性:
- 状态隔离:每个技能执行有独立的状态空间
- 上下文注入:自动注入技能所需的上下文
- 错误恢复:技能执行失败时可从断点恢复
from superpowers import SkillRuntime
runtime = SkillRuntime()
# 执行技能
result = runtime.execute(
skill="code_analysis",
inputs={"repo_url": "https://github.com/user/repo"},
context={"user_preferences": {"language": "zh"}}
)
3. Skill Composer(技能编排器)
将多个技能组合成复杂工作流。支持:
- 顺序执行:技能 A → 技能 B → 技能 C
- 条件分支:根据上一步结果决定下一步
- 并行执行:多个技能同时运行
from superpowers import SkillComposer
composer = SkillComposer()
# 定义工作流
workflow = composer.sequence([
"repo_clone",
"code_analysis",
composer.parallel(["security_scan", "performance_test"]),
"report_generation"
])
# 执行工作流
result = workflow.run(inputs={"repo_url": "https://github.com/user/repo"})
与 Claude Code 深度整合
Superpowers 最吸引人的特性是与 Claude Code 的原生整合。
Claude Code 是 Anthropic 推出的 AI 编程助手,Superpowers 为其提供技能扩展能力:
// .claude/skills.json
{
"skills": [
{
"name": "pr_review",
"path": "~/.superpowers/skills/pr_review",
"triggers": ["review this pr", "check the pull request"]
},
{
"name": "test_generator",
"path": "~/.superpowers/skills/test_generator",
"triggers": ["generate tests for", "write unit tests"]
}
]
}
当你在 Claude Code 中输入 “review this pr”,Superpowers 会自动加载 pr_review 技能,而不是让 Claude 每次重新理解你的意图。
为什么 Claude Code 需要技能系统?
Claude Code 虽然强大,但它面临一个根本问题:每次对话都是全新的。
你上周教它 “我们团队使用 conventional commits 规范”,今天它就忘了。你需要重新说明,或者把它写到某个配置文件里。
Superpowers 的技能系统解决了这个问题:
- 持久化:技能配置保存在本地,Claude Code 每次启动都会加载
- 可共享:团队可以共享同一套技能配置
- 可进化:技能可以持续优化,无需每次重新教
与 LangChain 生态的兼容性
如果你已经使用 LangChain 构建 Agent,不用担心——Superpowers 设计了良好的兼容层。
from langchain.agents import AgentExecutor
from superpowers.integrations.langchain import SkillAsTool
# 将 Superpowers 技能包装为 LangChain 工具
code_analysis_tool = SkillAsTool(
skill_name="code_analysis",
skill_registry=registry
)
# 在 LangChain Agent 中使用
agent = AgentExecutor.from_agent_and_tools(
agent=some_agent,
tools=[code_analysis_tool]
)
这种设计让你可以:
- 继续使用 LangChain 的 Agent 框架
- 用 Superpowers 管理技能生命周期
- 渐进式迁移,不必一次性重写
实战:5分钟构建一个有"技能"的 Agent
让我们用 Superpowers 构建一个简单但实用的 Agent——技术文档生成器。
Step 1:定义技能
# skills/doc_generator/skill.yaml
name: doc_generator
description: 根据代码自动生成技术文档
inputs:
- code_path: 代码目录路径
- doc_style: 文档风格(api/tutorial/readme)
outputs:
- doc_content: 生成的文档内容
context:
- code_patterns: 代码模式知识库
- writing_style: 写作风格偏好
Step 2:注册技能
superpowers publish skills/doc_generator --version 1.0.0
Step 3:创建 Agent
from superpowers import Agent
doc_agent = Agent(
name="DocWriter",
skills=["doc_generator", "code_analyzer"],
model="claude-3-opus"
)
# 执行任务
result = doc_agent.run(
task="为 /src/api 目录生成 API 文档",
inputs={"doc_style": "api"}
)
print(result.doc_content)
就这样!你的 Agent 拥有了"生成文档"这个技能,而且这个技能可以复用、可以优化、可以共享给其他 Agent。
生产级考量
将 Superpowers 用于生产环境,需要注意以下几点:
技能版本管理
技能会迭代更新,但生产环境需要稳定性:
# 在生产配置中锁定版本
skills:
- name: code_analysis
version: ">=1.0.0,<2.0.0" # 允许小版本更新
- name: security_scan
version: "1.2.3" # 精确锁定
技能监控
Superpowers 提供技能执行的遥测数据:
from superpowers import SkillMetrics
metrics = SkillMetrics()
stats = metrics.get_skill_stats("code_analysis")
print(f"执行次数: {stats.execution_count}")
print(f"平均耗时: {stats.avg_duration_ms}ms")
print(f"成功率: {stats.success_rate}%")
技能沙箱
为了安全,技能执行在沙箱环境中:
from superpowers import SkillRuntime
runtime = SkillRuntime(
sandbox=True, # 启用沙箱
max_memory_mb=512, # 内存限制
timeout_seconds=60 # 超时限制
)
社区生态
Superpowers 开源仅一周,社区已经贡献了大量技能包:
| 技能包 | 功能 | Stars |
|---|---|---|
| superpowers-web | Web 自动化技能集 | 892 |
| superpowers-data | 数据分析技能集 | 654 |
| superpowers-devops | DevOps 技能集 | 521 |
| superpowers-security | 安全审计技能集 | 478 |
你可以直接安装使用:
pip install superpowers-web superpowers-data
结语:技能驱动 = Agent 能力的可组合进化
Superpowers 代表了一个重要趋势:AI Agent 开发正在从"提示词工程"走向"技能工程"。
当工具、函数、提示词被统一到"技能"这个概念下,Agent 开发变得更像软件开发:
- 模块化:每个技能是一个独立模块
- 可组合:技能可以组合成复杂工作流
- 可维护:技能有版本、有测试、有文档
- 可共享:技能可以在团队间复用
这不仅是技术架构的进步,更是开发范式的转变。
如果你正在构建生产级 Agent 应用,Superpowers 值得深入研究。
相关链接:
- Superpowers GitHub: https://github.com/superpowers-ai/superpowers
- 官方文档: https://docs.superpowers.ai
- Claude Code: https://claude.ai/code
- LangChain: https://python.langchain.com
