用途:保持 Agenta 智能体模型目录的准确性。目录是各 harness 已接受模型集合之上的整理层,包含干净的标签、一句话描述、真实定价和 1-5 评分,以 harness 接受的 id 为键,附加发布在 harness 能力记录(capabilities.py)的纯 id models 映射旁边。
主要能力与数据结构:管理 sdks/python/agenta/sdk/agents/data/ 下三个 JSON 文件,由 sdks/python/agenta/sdk/agents/model_catalog.py 加载。pi_models.generated.json 由 pi-ai 机器生成,仅客观事实(name / pricing / context_window / modalities),source 为 pi_generated,不可手动编辑。pi_models.curated.json 是人工叠加层(id -> {label?, description?, ratings?}),加载时合并到生成事实之上,重新生成后仍保留;其 additions 列表存放固定 pi-ai 版本尚未收录的模型完整条目。claude_models.curated.json 为手工整理的 Claude 别名条目(事实与判断),source 为 curated。该技能不修改 capabilities.py 逻辑,只改数据文件。
三项任务:一、在 pi-ai 版本升级时重新生成 Pi 文件。生成器读取固定版本 pi-ai 的 models.generated,映射 provider 名称(google->gemini,together->together_ai),id 形如 <agenta-provider>/<pi-model-id>。命令示例:MODELS=$(ls services/runner/node_modules/.pnpm/@earendil-works+pi-ai@*/node_modules/@earendil-works/pi-ai/dist/models.generated.js | head -1) 然后 node .agents/skills/sync-model-catalog/generate_pi_models.mjs "$MODELS" sdks/python/agenta/sdk/agents/data/pi_models.generated.json。从锁文件 @earendil-works+pi-ai@<version> 的 diff 检测升级。pi-ai 尚无的模型应写入 pi_models.curated.json 的 additions,source 为 curated,事实取自厂商页面,勿手改 generated 文件。二、将 Claude 同步到实时接受集合(需运行中的 runner)。claude_models.curated.json 需覆盖 Claude 选择器可发送的稳定请求值,通过 getConfigOptions 探测实时会话,但不可盲目复制单个会话集合。例如发布 claude-fable-5 而非 fable 或 fable[1m]。此为手动/周期性步骤,不是 CI 门禁。三、发布前或按需从当前公开来源刷新整理元数据,用 WebSearch + WebFetch 查询厂商页面后提出描述与评分建议交人工确认,不得凭记忆写评分。评分为 1-5,数值越高越好,成本项 5 表示最便宜。
验证:pydantic 加载器强制 schema(含 1-5 范围),单元测试锁定覆盖与叠加合并,命令为 cd sdks/python && uv run --no-sync python -m pytest oss/tests/pytest/unit/agents/connections/test_model_catalog.py -q。数据文件格式错误会在该处和 capabilities.py 导入时报错。运行时机:任务一在 pi-ai 升级时(可由锁文件 diff 自动化);任务二、三在发布前或按需。技能写文件与提案,由人工审核并提交整理变更。具体定价数值、评分内容和模型阵容资料未在来源中提供。