28.1 最大的认知坑
我刚接触 Cloudflare Agents 时,把它当成"一个 API 函数"。写个 handler,调模型,返回。结果状态全丢,每次请求像陌生人。
28.2 换一个比喻
函数是无状态的。你打一次,它算一次,算完就忘。
Agent 是有身份的对象。它有名字、有记忆、有私有数据库、会自己定时醒来。你不是在"调用"它,是在"和它打交道"。
28.3 这个转变带来的设计差异
| 旧思维(函数) | 新思维(对象) | 标叔的体会 |
|---|---|---|
| 每次请求重新取上下文 | 上下文在对象里常驻 | 不用反复喂历史 |
| 状态放外部 DB | 状态在 Agent 内 | 少一个组件 |
| 调度靠外部 cron 服务 | 调度在对象内 | 自包含 |
| 并发靠自己加锁 | DO 单实例串行 | 天然线程安全 |
核心建议
设计 Agent 时,先问"它的身份是什么、它记得什么、它什么时候自己醒"。别问"这个请求怎么处理"。这一句,值整本书。
28.4 写在最后
Cloudflare Agents 把"有状态的 Agent"这件最难的事,焊进了 Durable Object。你拿到的是对象,不是函数。
剩下的,只是业务逻辑。