# Intercom 的 FDE：逐行读懂招聘启事，用一个 AI Agent 集成项目做准备

> Intercom 的 FDE 招聘启事没有给候选人设定任何数字指标。这个岗位要做的是推动落地，而落地的前提是：能在客户的真实数据上衡量 Agent 的表现。

原文: https://fdetimes.net/zh/guides/intercom-fde-job-posting-ai-agent-project/

打开 Intercom 在都柏林招聘前线部署软件工程师的启事，其中有一行把这份工作说得很直白：帮助潜在客户用好 Fin 的 AI 能力，推动 Fin 落地。

匆匆扫过，这句话和每家 AI 公司的招聘广告没什么两样。慢慢读，每个词都对应客户现场的一个具体场景，而你的作品集应当证明你处理过这样的场景。

把启事当成技能清单来读，会漏掉最重要的部分。下文逐行解读这份启事，区分哪些是你要做的工作、哪些是属于产品的目标，并给出一个几个晚上就能完成的 Fin 风格示例项目。

## 这份启事实际要你做什么？

Fin 是 Intercom 的 AI 客服 Agent。前线部署工程师（FDE）这个岗位围绕一件事展开：让 Fin 真正用起来。都柏林的启事把这叫作落地（adoption），而不是某个数字指标。

prospects（潜在客户）这个词值得留意。这些客户还没有签合同，因此可以合理推断：客户还在评估 Fin 是否适合自己时，FDE 就已经出场了。

竞争对手 Open.cx 称 Fin 还提供付费专业服务（这一来源需要谨慎看待）。如果属实，大客户买的就不只是软件，还有一位技术人员与他们并肩工作的时间。

下一行描述了共同目标：确保 Fin 在复杂的真实环境中带来真实、可衡量的业务成果。这是产品的目标，不是对候选人的要求，启事也没有给出任何数字。

Intercom 的三个前线部署类岗位中，只有旧金山的前线部署数据科学家岗位要求候选人有把数据科学应用于真实业务问题并取得可衡量成果的经历。那是另一个岗位。都柏林的 Staff FDE 岗位则多了一层领导职责：带领并指导 FDE 和解决方案工程师（Solutions Engineer）。

## 为什么“复杂环境”是你得分的地方

只会读文档的客服 Agent 只能回答通用问题。最有价值的问题，比如“我的订单到哪了”“为什么扣了我两次钱”，需要的数据都在每个客户自己的系统里，而连接方式通常是 API。

启事并没有把这一点列为要求。但如果你想证明自己理解“复杂的真实环境”这几个字，最具体的证据莫过于一个能在杂乱数据上运行、并附带评测数据的集成项目。

在 Intercom，连模型选型都经过了测试。据 AWS 的案例研究页面，Intercom 经过大量测试，发现 Anthropic 的 Claude 最符合自身需求，因此选择了它。你的客户也会要同样的证据，而不是感觉。

## 示例项目：“我的订单到哪了？”

假设客户是一家零售商，有一个内部订单 API。你需要写一个小函数，供 Agent 在用户询问订单时调用。一个“能跑”的版本十分钟就能写完；足以交付给客户的版本是这样的：

```python
import re
import httpx

ORDER_API = "https://orders.internal.example.com/v1/orders"

def lookup_order(raw_order_id: str, customer_email: str, token: str) -> dict:
    order_id = re.sub(r"[^A-Za-z0-9]", "", raw_order_id)  # "#A-1029" -> "A1029"
    if not order_id or len(order_id) > 20:
        return {"ok": False, "reason": "invalid_order_id"}
    try:
        r = httpx.get(f"{ORDER_API}/{order_id}",
                      headers={"Authorization": f"Bearer {token}"},
                      timeout=3.0)
    except httpx.TimeoutException:
        return {"ok": False, "reason": "upstream_timeout"}
    except httpx.HTTPError:
        return {"ok": False, "reason": "upstream_error"}  # DNS 错误、连接被重置……
    if r.status_code == 404:
        return {"ok": False, "reason": "not_found"}
    if r.status_code >= 400:
        return {"ok": False, "reason": "upstream_error"}  # 401、500、503……
    try:
        order = r.json()
    except ValueError:
        return {"ok": False, "reason": "upstream_error"}
    if order.get("email", "").lower() != customer_email.lower():
        return {"ok": False, "reason": "not_owner"}  # 绝不泄露别人的订单
    return {"ok": True, "status": order.get("status"),
            "eta": order.get("eta"), "carrier": order.get("carrier")}
```

面试时，要能讲清这段代码里的三个决策。第一，它会核对订单归属，Agent 绝不会把别人的订单念给提问的人听。

第二，它只返回必要的几个字段，因为 Agent 不需要、也不应该看到地址或支付信息。第三，每一种失败，包括网络错误和 API 返回的 5xx 错误，都会返回明确的原因，而不是让函数崩溃，这样 Agent 才知道什么时候该再问一次，什么时候该转人工。

写完代码只完成了一半。拿 30 个订单问题，为每个问题标注正确结果，然后跑测试。假设 30 个里有 18 个无需人工就解决了：60%。

最有价值的一步是逐个阅读那 12 个失败案例，按原因归类。在这个例子里，7 个是因为用户输入了“#A-1029”这样的订单号，2 个是 API 超时，3 个是问题超出了订单范围。

最大的一组告诉你先修什么：在函数开头加一行代码，去掉订单号里的多余字符。下一轮达到 30 个中的 25 个，即 83%。剩下的 5 个属于另外两组，它们就成了下一轮的待办清单，而且已经排好了优先级。

## 面对客户，该拿出哪些数字？

客户会问 Fin 能解决百分之多少的问题，而公开答案因来源而异。Anthropic 的案例研究页面称，开箱即用、不做任何定制时为 51%。Intercom 和 AWS 报告，部署后前 30 天平均为 56%。

Open.cx 引用了一个更新的数字：7,000 多家客户平均 67%，且每月提升约 1%。WorkOS 称 Fin 最多能处理 86% 的对话，但仅限部分部署；WorkOS 自己也指出，常见部署的数字更低，不过 50-70% 很常见。

这些都是厂商或第三方给出的数字，不是对某个具体客户的承诺。所以，对“我们能到多少”这个问题，唯一诚实的回答是在他们自己的对话上跑评测，就像上面那个 30 题的练习。

## 把每一行变成证据

| 启事中的表述 | 背后的问题 | 应准备的证据 |
|---|---|---|
| 推动 Fin 落地 | 你能把演示变成真实使用吗？ | 前后对比的评测数据 |
| 帮助潜在客户用好 Fin | 你能和尚未签约的客户沟通吗？ | 一个演示，并能向不写代码的人讲清它的局限 |
| 在复杂环境中取得可衡量的成果 | 它在真实、杂乱的数据上能用吗？ | 一个包含鉴权、超时、错误处理和评测集的集成仓库 |
| 指导 FDE 和解决方案工程师（Staff） | 你能让整个团队变得更好吗？ | 一个你带过某人的故事 |
| 可衡量的成果（数据科学家） | 你有真实的数字吗？ | 一条计算解决率的查询 |

在简历上，一条好的要点包含三部分：你接入的系统、困难的决策和数字。以上面的项目为例：“为客服 Agent 开发订单查询函数，加入订单归属校验；在 30 条对话的评测集上，自助解决数从 18 提升到 25。”这个写法适用于任何招聘 FDE 的公司。

## 让优秀候选人折戟的错误

最常见的错误是狂刷算法题、忽略集成，而这个岗位的全部意义就在于让客户真正用起产品。其次是带着一个精致的演示，却拿不出证明它有效的数字。

更隐蔽的错误是把厂商数据当作保证。对客户说“Fin 能解决 56%”，却不提这是厂商自报的平均值，一旦客户的真实数字更低，信任会最快丧失。

Staff 级候选人容易陷入讲“一切都是我自己做的”故事。Staff 岗位的启事强调领导和指导，所以一个关于你指导过某位 FDE 或解决方案工程师的故事，可能比你独自做的十个功能更有说服力。数据科学家方向的候选人应该讲清自己如何衡量成果，而不只是带一堆满是图表的 notebook。

## 本周练习

选一个带有用户级数据的公开 API，比如订单、工单或预约，写一个包含上述三个决策的查询函数。把它接到一个简单的 Agent 后面，跑 30 个问题，记录每一次失败的原因。

跟着你走进面试的不是那个仓库，而是你能说出“12 个失败里有 7 个是因为用户输入订单号的方式”这样一句话的时刻。只有真正做过的人才说得出来。

**本周动手试试:**

- 收集 30 个真实的客服问题（来自公开工单、你常用产品的论坛，或你自己编写的贴近现实的问题），为每个问题标注预期结果，保存为你的第一个评测文件。
- 按这个格式改写一条简历要点：你接入的系统、最难的技术决策、前后对比的数字。
- 准备一个三分钟的面试故事：讲你某次快速交付，同时拦下了一个可能泄露数据的 bug。

## 信源

- [Forward Deployed Software Engineer - Intercom | Built In Dublin](https://builtindublin.ie/job/forward-deployed-software-engineer/9615239)

- [Forward Deployed Data Scientist – Intercom (Freestyle Capital job board)](https://jobs.freestyle.vc/companies/intercom/jobs/62491462-forward-deployed-data-scientist)

- [Staff Forward Deployed Engineer – Intercom (Sapphire Ventures job board)](https://jobs.sapphireventures.com/companies/intercom/jobs/60262560-staff-forward-deployed-engineer)

- [Intercom revolutionizes customer service using AWS and Anthropic](https://aws.amazon.com/solutions/case-studies/intercom-anthropic/)

- [Intercom went from skeptics to believers on AI](https://workos.com/blog/intercom-skeptics-to-believers-ai)

- [Intercom Claude Platform (API) case study | Claude by Anthropic](https://claude.com/customers/intercom)

- [Intercom Fin vs dedicated AI agents: an honest take](https://www.open.cx/blog/fin-vs-dedicated-ai-agents)
