Cognition AI 旗下的 Devin 在 2024 年初上线时,很多人把它当成又一个"AI 写代码"的 demo。一年后,它的年化营收(revenue run rate)跑到了 4.45 亿美元,使用量每八周翻一番。这个增速已经超过了大多数 SaaS 产品在同等阶段的表现。数字背后真正值得关注的是:Devin 不是 Copilot 式的补全工具,它是一个能在无人类干预下独立完成编码、调试、部署全流程的自主智能体。这个品类正在从实验走向生产。
"自主"和"辅助"的分水岭
大多数开发者日常接触的 AI 编码工具——Copilot、Cursor、Codeium——本质上还是辅助:你写一段,它补一段;你提出问题,它给出建议。人始终在驱动循环里。
Devin 走的是另一条路。它接收一个任务描述后,会自己规划步骤、打开浏览器查文档、写代码、跑测试、读报错日志、修改代码、再跑测试,直到任务完成。整个循环不需要人类介入。Scott Wu 在早期演示里给 Devin 一个"在浏览器里部署一个网站"的任务,Devin 自己拉代码、装依赖、修 bug、启动服务,全程像在看一个初级工程师独立干活。
这种模式对使用量的影响是指数级的。辅助工具的调用频率受限于人类操作节奏——你敲一行代码,它响应一次。自主智能体一旦启动,可以连续执行几十步操作,每一步都在消耗 API 调用和计算资源。这就是为什么使用量能每八周翻倍:任务粒度越粗、委托越深,单次会话的资源消耗就越高,而企业一旦验证了效果,就会把更多任务类型交给它。
4.45 亿美元营收的结构性信号
年化营收 4.45 亿不等于已经收到 4.45 亿现金,但它反映的是当前签约客户的付费节奏折算到一年的规模。几个值得拆解的点:
- 客户画像正在从个人开发者转向企业团队。早期 Devin 的定价是每月 500 美元起步,这个价格个人开发者很难持续买单,但对企业里一个中级工程师的成本(美国市场年薪 15-20 万美元)来说,一个月花 500-2000 美元让智能体处理重复性编码任务,ROI 计算非常直接。
- 使用量翻倍周期短于传统 SaaS。典型 SaaS 的使用量增长靠用户数扩张,Devin 的使用量增长同时来自两个维度:用户数增加 + 单用户委托的任务深度增加。后者是智能体产品独有的杠杆。
- 4.45 亿的规模已经进入主流企业软件区间。对比一下:GitLab 在上市前最后一年的营收约 1 亿美元;Figma 被 Adobe 收购时年营收约 4 亿。Devin 用一年时间跑到了这个量级,说明市场需求不是渐进式的,而是有大量被压抑的编码自动化需求在等待可用的产品。
实践:用自主编程智能体处理真实任务
Devin 目前提供 API 接口,可以把自主编码能力嵌入到现有工作流里。下面是一个完整的 Python 示例,展示如何通过 Devin API 创建一个自主编码会话、提交任务、轮询状态、获取结果。
import os
import time
import requests
# 从环境变量读取 API Key,不要硬编码到代码里
DEVIN_API_KEY = os.environ.get("DEVIN_API_KEY")
DEVIN_BASE_URL = "https://api.devin.ai/v1"
headers = {
"Authorization": f"Bearer {DEVIN_API_KEY}",
"Content-Type": "application/json",
}
def create_session(task_prompt: str, repo_url: str = None) -> dict:
"""创建一个 Devin 自主编码会话"""
payload = {
"prompt": task_prompt,
# 如果需要 Devin 在指定仓库里工作,传入 repo_url
}
if repo_url:
payload["repo_url"] = repo_url
resp = requests.post(
f"{DEVIN_BASE_URL}/sessions",
headers=headers,
json=payload,
)
resp.raise_for_status()
return resp.json()
def get_session_status(session_id: str) -> dict:
"""查询会话状态和输出"""
resp = requests.get(
f"{DEVIN_BASE_URL}/sessions/{session_id}",
headers=headers,
)
resp.raise_for_status()
return resp.json()
def run_task_and_wait(task_prompt: str, repo_url: str = None, timeout: int = 600) -> dict:
"""提交任务并等待完成,最长等待 timeout 秒"""
session = create_session(task_prompt, repo_url)
session_id = session["session_id"]
print(f"会话已创建: {session_id}")
elapsed = 0
interval = 15 # 每 15 秒查询一次
while elapsed < timeout:
status = get_session_status(session_id)
state = status.get("status_enum", status.get("status", "unknown"))
print(f" [{elapsed}s] 状态: {state}")
if state in ("completed", "failed", "cancelled"):
return status
time.sleep(interval)
elapsed += interval
raise TimeoutError(f"任务在 {timeout} 秒内未完成")
# ---- 实际使用示例 ----
if __name__ == "__main__":
# 示例 1:让 Devin 在指定仓库里添加一个新功能
result = run_task_and_wait(
task_prompt=(
"在 src/api/ 目录下新增一个 health_check.py 模块,"
"实现一个 /health GET 端点,返回 {'status': 'ok', 'timestamp': <当前UTC时间>}。"
"同时补上对应的单元测试放在 tests/test_health_check.py。"
"确保所有测试通过后再提交。"
),
repo_url="https://github.com/your-org/your-repo",
timeout=600,
)
print("任务结果:", result.get("output", result))
运行前需要做两件事:
- 在 Devin 官网 注册并获取 API Key,然后设置环境变量:
bash export DEVIN_API_KEY="your-api-key-here" - 安装依赖:
bash pip install requests
这个示例的核心思路是:你只描述要什么,不描述怎么做。Devin 自己决定查什么文档、写什么代码、跑什么测试。这是自主智能体和辅助工具的根本区别——prompt 里没有步骤指令,只有目标描述。
如果你的团队用 Slack 或飞书协作,可以把这个轮询逻辑改成事件驱动:Devin 完成任务后通过 webhook 推送通知到群频道,代码审查人员只需看最终 diff,不用盯着中间过程。
还没到"替代工程师"的时候
Devin 的增速很猛,但几个现实边界需要正视:
- 复杂架构决策仍然需要人类判断。Devin 能独立完成"给这个项目加一个健康检查端点",但"这个服务该拆成三个微服务还是保持单体"这类决策,它目前做不了。任务越涉及跨系统权衡,自主智能体的可靠性越低。
- 调试长链条 bug 有概率走偏。自主智能体在遇到报错时会自己尝试修复,但如果根因在另一个服务或基础设施层,它可能在本地反复修代码而不触及真正的问题,浪费计算和时间。
- 安全和合规审查不能省略。Devin 生成的代码在提交到主干前,仍然需要经过人类 review——尤其是涉及数据访问、权限变更、外部 API 调用的部分。4.45 亿营收说明企业愿意付费,但不等于他们跳过了 review 流程。
一个务实的采用路径:
| 阶段 | 委托任务类型 | 人类介入程度 |
|---|---|---|
| 试用期 | 单文件功能添加、测试补全、文档生成 | 每次任务完成后 review 全部 diff |
| 扩展期 | 跨模块功能、bug 修复、小规模重构 | review 关键变更,跳过纯格式/测试变更 |
| 深度期 | 完整 feature 开发、CI 配置、部署脚本 | 只 review 架构决策和安全相关代码 |
从第一列开始,不要直接跳到第三列。每八周翻倍的使用量数据说明企业正在快速推进这个阶梯,但推进速度应该由验证结果驱动,而不是由增速数字驱动。
Devin 的 4.45 亿营收是一个市场信号:自主编程智能体已经从技术演示变成了有企业愿意持续付费的生产工具。下一个要回答的问题是——当使用量再翻两轮,这些企业的工程团队结构会发生什么变化。