用途:把代码库从 Perplexity Sonar API(POST /chat/completions、chat.completions.create())迁移到 Agent API(POST /v1/agent、responses.create())。这是契约迁移,不是重写,两个 API 均在线。
主要能力:先用 python scripts/scan_sonar_usage.py [path-to-code] 扫描 Sonar 使用情况,生成逐文件迁移清单;按集成方式分类调用点(原生 HTTP、指向 Perplexity 的 OpenAI SDK、Perplexity SDK、LangChain/LlamaIndex/Agents SDK 桥接),并保持原集成风格;按参考文件重写请求体、响应解析、流式消费与函数调用;最后做编译检查、真实请求冒烟测试和残留 grep。
必要用法:OpenAI SDK 需设 base_url="https://api.perplexity.ai/v1" 并改用 client.responses.create(),Perplexity 专有字段通过 extra_body 传入,需 openai>=1.66;Perplexity SDK 将 client.chat.completions.create() 改为 client.responses.create(),环境变量仍为 PERPLEXITY_API_KEY。
限制:Agent API 严格模式会拒绝任何未知或残留字段并返回 400;网络搜索不再自动触发,需显式加 tools 或 preset;引用改从 output[] 内的 search_results 项读取;失败/取消运行返回 HTTP 200,须按 status 分支;流式需处理全部终止事件;anthropic/* 模型必须提供 max_output_tokens;自定义工具名不得与内置工具名冲突。Sonar 的图片、相关问题、学术搜索模式等无直接等价项,需按文档变通或移除并说明。API 事实以官方文档为准,缺失事实暂未提供。