你的 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 的技能系统解决了这个问题:

  1. 持久化:技能配置保存在本地,Claude Code 每次启动都会加载
  2. 可共享:团队可以共享同一套技能配置
  3. 可进化:技能可以持续优化,无需每次重新教

与 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-webWeb 自动化技能集892
superpowers-data数据分析技能集654
superpowers-devopsDevOps 技能集521
superpowers-security安全审计技能集478

你可以直接安装使用:

pip install superpowers-web superpowers-data

结语:技能驱动 = Agent 能力的可组合进化

Superpowers 代表了一个重要趋势:AI Agent 开发正在从"提示词工程"走向"技能工程"

当工具、函数、提示词被统一到"技能"这个概念下,Agent 开发变得更像软件开发:

  • 模块化:每个技能是一个独立模块
  • 可组合:技能可以组合成复杂工作流
  • 可维护:技能有版本、有测试、有文档
  • 可共享:技能可以在团队间复用

这不仅是技术架构的进步,更是开发范式的转变。

如果你正在构建生产级 Agent 应用,Superpowers 值得深入研究。

相关链接