🚀 背景描述
当前 LLM 配置以 DemoLlmProperties(前缀 openjiuwen.demo.llm)承载,位于 demo 的 example/support 包内,属于示例代码。它承担了 provider、api-key、api-base、model-name、ssl-verify、temperature、max-iterations 等真实运行参数,demo 启动时强校验。这种"配置逻辑混在示例里"的方式导致其它业务开发者无法直接复用,每次都要从 demo 拷贝,且配置前缀带 demo 字样不宜在生产镜像中使用。希望将该能力上移到 agent-service-app(或 spec/adapters 合适层),减少 demo 代码并供所有接入方复用。
设计思路
- 在 App 层新增正式的 LlmProperties(如前缀 openjiuwen.service.llm),覆盖现有 DemoLlmProperties 的全部字段,并保留 apiconfig.json 发现加载逻辑(ApiConfigLoader 也一并上移或抽到 common)。
- apikey这类敏感信息需要支持配置密文,jiuwen提供解密SPI,由使用方实现解密功能。
- demo 侧 example/support 改为依赖 App 层配置,删除 demo 私有的 DemoLlmProperties,仅保留 demo 专属的默认值或 sample prompt。
- 兼容期可同时支持 openjiuwen.demo.llm(标记 deprecated),逐步迁移到 openjiuwen.service.llm。
- 替代方案:直接下沉到 adapters-agentcore,但 LLM 配置与 Agent Core 绑定过紧,App 层更中立,便于非 Core Handler 复用。
涉及到的对外API
- 新增配置前缀 openjiuwen.service.llm.*(api-key/api-base/model-name/provider/ssl-verify/temperature/top-p/timeout/max-iterations/context-win
🚀 背景描述
当前 LLM 配置以 DemoLlmProperties(前缀 openjiuwen.demo.llm)承载,位于 demo 的 example/support 包内,属于示例代码。它承担了 provider、api-key、api-base、model-name、ssl-verify、temperature、max-iterations 等真实运行参数,demo 启动时强校验。这种"配置逻辑混在示例里"的方式导致其它业务开发者无法直接复用,每次都要从 demo 拷贝,且配置前缀带 demo 字样不宜在生产镜像中使用。希望将该能力上移到 agent-service-app(或 spec/adapters 合适层),减少 demo 代码并供所有接入方复用。
设计思路
涉及到的对外API