CaoZheng
извршује push на main у CaoZheng/lambdagent
226148f626 feat: add ontology-driven data governance platform
75df7b13fa fix(ssl): 集中式修复企业代理自签 CA 致 CERTIFICATE_VERIFY_FAILED
在线 provider(dashscope/deepseek 走 OpenAICompatProvider 的 urllib)在 TLS 拦截
代理(注入自签根 CA)下报 SSL 验证失败;PYTHONHTTPSVERIFY=0 对底层 urllib 不可靠。
全仓 30+ 处 urlopen 逐个传 context= 不现实。
- 新增 lambdagent/_ssl_bootstrap.py::configure_ssl():覆盖
ssl._create_default_https_context → 进程内所有 urllib HTTPS 调用统一生效。
默认 no-op,env 驱动,优先级 CA bundle > insecure:
AGENTPAAS_CA_BUNDLE / SSL_CERT_FILE / REQUESTS_CA_BUNDLE → 信任公司 CA(验证仍开,安全)
AGENTPAAS_INSECURE_SSL=1 → 关闭验证(不安全,带警告)
- 接线两处(幂等):providers/__init__.py 导入即调(覆盖 bench/CLI/直连内核);
app.py 在 config 加载 .env 之后调(server)
- providers_api 可用性探测:原对 SSL 错误误报"服务可达"(可达但不可用的根源),
改为识别 SSL 错误并返回可执行修复指引
- 手册 §5/§14 Q9/§15:写入推荐做法(导公司 CA→AGENTPAAS_CA_BUNDLE)+ 临时方案
回归:test_ssl_bootstrap(7)+ lambdagent 626 + agentpaas 351 全绿;fresh-process
验证默认不动 context / INSECURE 关验证 / CA bundle 保持 CERT_REQUIRED。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
66acec9e94 feat(ui): 模型选择支持 Ollama 动态发现 + 手动输入任意模型名
后端 /api/v1/providers 早已对 ollama 调 /api/tags 返回真实已装模型,但前端三页
(AgentCreate/AgentEdit/AgentImport)都用硬编码 MODEL_MAP、没消费它。
- 模型字段从 <select> 改为可编辑 combobox(<input list> + <datalist>):建议项来自
后端 provider.models(Ollama 自动列本机已装模型,如 qwen2.5:7b-instruct),也可
直接键入任意模型名
- 提供商列表改用后端返回 ∪ MODEL_MAP(后者降级为离线兜底)
- ollama 占位/提示文案说明"选择或输入本地模型名"
tsc 0 错误,vite build 通过。后端 _live_ollama_models() 实测返回本机
['qwen2.5-coder:32b','qwen2.5:7b']。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
500373a99d feat(fc): FC loop 补序列模式 enforceLoop — 两个编排器迁 qwen-FC
FC ReAct loop 此前只实现计数模式 {tool,minCount},序列编排型(physics67/
多视角审稿)用 {sequence,minCycles} 没法切 FC。本次对齐文本路语义:
- _run_fc_loop 加 enforce_sequence/enforce_min_cycles 参 + tool_log 有序计账
- _fc_complete_cycles 算完整循环(sequence[-1]=边界,其余=前置;边界成功调用
且自上轮起所有前置成功出现过=一轮;失败调用不计)
- terminate 时循环不够 → 回灌 [SYSTEM] 提示下一步、禁止 terminate;最后一步
不挡(防死锁);序列模式优先于计数模式
- 抽出 _observation_failed_text 模块级失败判定,文本/FC 共用单一来源
- _FCReactTerm/FC 门控透传 sequence/minCycles
回归:test_function_calling 21(+5 序列:计数/失败前置不计/挡到补齐/序列优先/
路由穿透)+ lambdagent 619 全绿。live qwen-plus 验证:强制早退被挡→回灌
[SYSTEM]→真模型按序补调→满足才放行。
physics67(v10,6步×3轮)、多视角审稿(v6,4步×1轮)DB 切 qwen-plus+FC。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b3c51c0e68 fix(fc): FC schema 覆盖全部工具(含注入的 KB/Memory) + research67/data67 切 qwen-FC
实跑 research67(切 qwen 文本后)暴露:ReadFile 连续 8 次 "missing file_path" 被封锁——
qwen 文本路径(react-over-text)读文件参数漂移。bench 用的 literature-mapper 是生成型
(只写不读)所以没暴露读路径漂移。FC 从结构上根治(schema 锁死 file_path)。
但 FC 还有缺口:_tools_json_schema 只覆盖有 schema 类的工具,research67 的 7 个平台注入
工具(KBSearch/MemoryRecall/DocGen/ChunkSplit/KB*)无 schema → 开 FC 会丢。修:
- _tools_json_schema 加 tool_names 参(传编译后 tools.keys() 覆盖注入工具);无 schema 的
给宽松对象(additionalProperties),工具不再消失。FC 门控改传 list(tools.keys())。
- research67 v4→v5、data67 v3→v4:nativeToolCalls=True(qwen-plus + FC)。
回归 test_function_calling(16,+宽松 schema)+ lambdagent 614 全绿。gated 重启已生效。
教训:bench 任务要覆盖"读"路径,否则漏掉 react-over-text 的读参数漂移。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
пре 2 недеља