OpenProgram · Target UI · Programs section

Agent Programs 配置:与实体目录分开

本页是完整Agent配置框架中的Programs下钻设计。Programs回答“系统中存在哪些可调用实体”;Agents回答“某个Agent允许发现和调用哪些实体”。页面与数据归属分开,实际调用仍使用同一套AgentTool registry、resolver和executor。

1. 页面与数据边界

Programs · entity catalog

管理实体

Functions、Agentic Functions和Applications是系统中的可调用对象。

  • 源码、export、schema、Git状态和测试
  • 静态Calls / Used by关系
  • 安装、编辑、收藏、运行和删除
Agents · configuration

管理使用策略

Agent配置决定模型、指令、Skills、MCP及允许访问的Programs。

  • 默认访问模式和可复用Access preset
  • 允许、排除和全局不可用项
  • 首轮上下文与按需发现策略
不复制实体:Agent配置只保存工具访问意图或工具名引用,不复制Program schema、description、Python源码或Workflow仓库。删除或禁用Program后,所有Agent在下一次解析时得到一致结果。

2. Agents 配置页面原型

主页面只承担Agent选择、配置分页、访问模式和当前范围摘要。外层页面复用现有Web管理页与Settings结构,不另建Agent专用窗口;全局标题栏只放页面级操作,配置分页位于选中Agent的详情标题下。页面字体直接使用Web全局--fs-base/--fs-sm层级,不从缩放原型复制8–12px的局部字号。工具目录是一个按需打开的选择器,不随Agent详情常驻渲染;新增Agent由共享管理页标题栏提供。

OpenProgram
A

Default Agent

默认聊天Agent · Local instance

Saved
OverviewModel & InstructionsProgramsSkillsMCPSessions

All Programs

可发现全部全局Programs;Runtime只常驻核心schema,其余通过tool_search按需加载。

Available130 ProgramsExcluded0 ProgramsPresetNone
工具目录不常驻只有打开选择器时才显示来源、分类和具体Program。
配置按页扩展Model、Instructions、Skills和MCP继续使用同一Agent详情页的独立tab。
Conversation overrideAgent: Default AgentTools: Use Agent configuration会话菜单只临时覆盖,不修改Agent配置。
页面容量边界:Agent详情页不会直接铺开工具分类或具体函数。工具达到数百或接入更多MCP时,复杂度只留在可关闭的选择器中;日常查看和编辑Agent时只显示访问摘要。

3. 一个运行时解析链

拆分的是产品页面和配置归属,不是执行语义。持久Agent配置与会话临时覆盖都进入现有统一resolver。

Programs registry真实实体与全局状态
AgentSpec.tools持久访问策略
Session override可选临时覆盖
resolve_tools()resident + scoped search
阶段目标行为
Agent保存AgentSpec.tools保存mode、preset引用及显式allow/deny;不保存展开后的schema快照。
会话开始默认使用当前Agent配置;composer中的Tools选择仅作为该会话或该轮override。
模型上下文提供resident schemas、tool_search和数量提示,不列出所有延迟Program名称。
按需检索tool_search只搜索统一resolver计算后的允许集合,并返回少量匹配schema。
调用Function、Agentic Function和Application统一通过AgentTool executor;页面拆分不增加第二套调用路径。

4. 当前实现与目标差异

能力状态实现边界
AgentSpec.tools配置字段已实现保存automatic、selected或none策略。
统一resolve_tools()已实现会话override高于Agent配置,执行器未分叉。
Programs实体管理页已实现只显示Functions、Agentic Functions、Applications和Favorites。
Agents管理与编辑页已实现六个配置分页共用同一AgentSpec;主页面仅显示能力策略摘要。
创建Agent已实现POST接口复用manager.create,并由小型对话框收集名称与ID。
按需Program选择器已实现点击Browse programs后才请求目录、分类和preset,支持搜索与具体条目勾选。
Tool Profile作为Access preset已实现兼容现有存储,迁入Agents页面选择。
Profile-scoped tool_search已实现名称加载和关键词检索都受resolver允许集合限制。
不发送延迟工具名称目录已实现首轮上下文只发送数量与关键词检索指引。

5. 验收合同

6. 实现范围与验证记录

本轮直接复用AgentSpec、现有Tool Profile存储、resolve_tools()与AgentTool executor;页面层直接复用ManagePageHeaderManageRow、共享分栏和Settings详情容器。新增内容只保留Agent专属配置表单与Programs / Skills / MCP按需选择器,没有增加第二套页面窗口或执行语义。

范围文件边界
后端routes/agents.py提供create、read、patch、default、duplicate、workspace和delete入口,仍委托现有Agent manager持久化。
前端/agents提供六个配置区;能力目录仅在Manage对话框打开后请求。
明确不做不新增executor,不复制Program schema、Skill正文或MCP凭据,不重写Profile存储,不删除兼容API。
检查状态
Agent HTTP生命周期、完整配置与校验定向component测试6项通过
Agents框架、按需选择器与既有Web合同Web test/check、TypeScript和production build通过
WebUI component测试178项通过
Python contracts449项通过,1项跳过
18100 App可视验收封装App已验证六区配置、创建入口和按需Programs选择器;18200未监听,未启动源码Electron。