Files
next-tjwater-agent/.opencode/agent-plugin.json
T
jiang 7d47a2df86
Generic Container CI/CD / test-build-publish (push) Failing after 8m25s
Agent CI/CD / build-test-publish-and-deploy (push) Failing after 8m25s
feat: add scoped history and artifacts
2026-10-22 18:40:20 +08:00

221 lines
9.2 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"schema_version": 1,
"id": "tjwater.supply-agent",
"name": "TJWater 供水 Agent",
"description": "供水 Agent 的角色指令、TJWater 插件工具、第一方查询与分析 MCP、OpenCode 原生工具及 Skill 管理索引;计算等待预算由Agent按任务指定,受Server工具目录上限约束。",
"purpose": "documentation-index",
"path_base": ".opencode",
"runtime": {
"name": "opencode2",
"config_builder": "../src/runtime/opencode2-config.ts"
},
"agents": [
{
"id": "instruction",
"description": "普通聊天与任务协作主 Agent:通过 mcp_tjwater 查询授权资料或执行受控分析,用插件组织回答、地图展示和业务写入;不启动子代理。此文件的公共规则也供后台调查继承。",
"path": "agents/instruction.md",
"mode": "primary"
},
{
"id": "investigation",
"description": "仅可信 task_execution 会话使用的后台调查主 Agent:在公共指令后追加调查规则,自行调用受控分析,协调最多两个前台只读子任务,统一发布进度、展示请求与报告;完成状态由 Server 运行接口结算。",
"path": "agents/investigation.md",
"mode": "primary"
},
{
"id": "investigation-reader",
"description": "独立只读指令,仅使用已核验父任务授权的 25 项项目查询,返回证据编号、发现与局限;可读已有分析结果,但无计算、宿主查询、消息、发布、文件、Shell 或递归权限。任务查询仍由 Server 保存证据快照。",
"path": "agents/investigation-reader.md",
"mode": "subagent"
}
],
"plugins": [
{
"id": "tjwater.tools",
"description": "注册 20 个回答、展示、调查写入、通信、记忆/技能管理及待办工具;安装会话 Shell 沙箱、原生 MCP 连接和权限策略。查询由 MCP 提供,公开网页搜索使用原生 websearch。",
"package": "tjwater-plugin",
"entrypoint": "tjwater-plugin/index.ts",
"implementation": "plugins/tjwater-tools.ts",
"tool_groups": [
{
"description": "本地交互式回答与完整最终答复;不代表后台任务完成。",
"tools": [
"present_answer",
"final_answer"
]
},
{
"description": "地图定位、缩放、图表、历史面板及 SCADA 覆盖层展示;保留各工具的前端执行回执语义。",
"tools": [
"locate_features",
"zoom_to_map",
"show_chart",
"view_history",
"render_scada_analysis",
"clear_scada_analysis"
]
},
{
"description": "调查进度、报告、任务展示、人工证据、动作提议和数据授权申请;计划仅用于解释,提议及申请不直接执行操作。",
"tools": [
"publish_task_progress",
"publish_task_presentation",
"publish_task_report",
"publish_execution_plan",
"propose_task_action",
"add_task_human_evidence",
"request_task_data_access"
]
},
{
"description": "发送调查讨论消息及回复原消息;读取使用 MCP,排队不代表已处理。",
"tools": [
"send_task_message",
"reply_agent_message"
]
},
{
"description": "保留完整读写插件接口:记忆支持 add/list/replace/remove;Skill 支持目录、正文、pattern、reference 和 script 管理。",
"tools": [
"memory_manager",
"skill_manager"
]
},
{
"description": "写入当前会话待办;读取使用 mcp_tjwater_todoread,待办不调度后台调查。",
"tools": [
"todowrite"
]
}
],
"host_rpc": [
"list",
"mcp",
"check_models",
"read_todos"
]
}
],
"native_tools": {
"description": "由 OpenCode 提供,不是 TJWater 插件注册项;目录可见不等于允许执行,仍受会话、审批和沙箱约束。",
"tool_groups": [
{
"description": "会话文件读取、检索及编辑。",
"tools": [
"read",
"glob",
"grep",
"edit",
"write",
"patch"
]
},
{
"description": "TJWater 插件替换执行器的会话 Shell,受 Landlock、seccomp 和审批限制。",
"tools": [
"shell"
]
},
{
"description": "公开网页搜索与抓取;仓库默认搜索引擎为 Exa,部署可覆盖。",
"tools": [
"websearch",
"webfetch"
]
},
{
"description": "按需加载 Skill、向用户提问及受限子代理;子代理仅向可信调查协调会话开放。",
"tools": [
"skill",
"question",
"subagent"
]
},
{
"description": "原生模型、会话与 Git worktree 管理,保留原生权限检查。",
"tools": [
"opencode_models",
"opencode_session_move",
"opencode_session_rename",
"opencode_worktree_create",
"opencode_worktree_list",
"opencode_worktree_remove"
]
},
{
"description": "原生 MCP 资源访问,遵守与 MCP 工具相同的会话策略。",
"tools": [
"opencode_list_mcp_resources",
"opencode_read_mcp_resource"
]
}
],
"disabled": [
"browser",
"browser_*"
],
"config_builder": "../src/runtime/opencode2-config.ts"
},
"agent_messages": {
"description": "查询通过本地 MCP;发送与回复通过写入桥。两者核验身份、项目、运行和线程,保留 originalMessage 来源。",
"tools": [
"mcp_tjwater_list_investigation_tasks",
"mcp_tjwater_get_investigation_task",
"send_task_message",
"mcp_tjwater_read_agent_messages",
"reply_agent_message"
],
"bridge": "/internal/agent-messages/send|reply",
"policy": "agent-message-policy.ts"
},
"skills": {
"description": "部署实例的可复用流程和辅助文件,由 skill_manager 经可信内部工具桥维护。",
"default_root": "skills",
"root_env": "OPENCODE_SKILLS_ROOT_DIR",
"entry_file": "SKILL.md",
"manager_tool": "skill_manager",
"store": "../src/skills/store.ts"
},
"mcp": {
"description": "只读查询与受控分析通过原生 MCP 发现和调用;第一方 mcp_tjwater 由宿主提供,管理员外部连接单独配置。分析不操作现场设备,工具目录不授予业务权限,不恢复旧查询插件或 HTTP 查询执行桥。",
"first_party": {
"server": "mcp_tjwater",
"description": "6 项宿主查询加 67 项产品工具,其中产品工具含 42 项查询、12 项受控计算与 13 项预览式写入,完整目录合计 73 项。各角色按白名单缩减,Server 产品目录须与 Agent 预期完全匹配才可启用。原生工具 ID 使用 mcp_tjwater_<name>,项目凭据和上下文由宿主绑定。",
"connection": "query-mcp.ts",
"implementation": "../src/mcp/query-server.ts",
"tool_ids": "../src/runtime/product-mcp-tools.ts",
"local_catalog": "../src/mcp/local-query-tools.ts",
"session_policy": "../src/runtime/query-mcp-policy.ts",
"product_client": "../src/product/mcp-query-client.ts",
"catalog_compatibility": {
"description": "Server 与 Agent 的产品目录均为 67 项,prepare 对工具名做全等检查。查询和分析名单分别以 PRODUCT_MCP_READ_TOOLS、PRODUCT_MCP_ANALYSIS_TOOLS、PRODUCT_MCP_WRITE_TOOLS 为准;reader 仅使用查询名单。目录一致不代表当前用户或任务已获得全部业务权限。",
"server_catalog": "../../next-tjwater-server/app/mcp/catalog.py",
"analysis_contract": "../../next-tjwater-server/docs/mcp-analysis-tools.md"
}
},
"config_file": "../opencode.json",
"config_key": "mcp.servers",
"override_env": "OPENCODE_CONFIG_CONTENT",
"policy": "mcp-policy.ts",
"status_endpoint": "/api/v1/session/:session_id/mcp"
},
"workspace": {
"description": "按用户、个人或项目范围和会话保存聊天、学习进度与计算文件;chat/ 由服务管理,workspace/ 是原生计算目录,删除标记阻止旧记录恢复。",
"default_root": "../data/session-workspaces",
"root_env": "CONVERSATION_WORKSPACE_ROOT",
"manager": "../src/runtime/conversationWorkspace.ts",
"chat_store": "../src/sessions/workspace-store.ts"
},
"models": {
"config_file": "../agent-models.json",
"override_env": "AGENT_MODEL_CONFIG_PATH"
},
"http_api": {
"base_path": "/api/v1",
"generation_endpoint": "POST /api/v1/responses",
"protocol": "Responses text input/output and streaming events, with explicit tjwater extensions",
"request_contract": "../src/chat/responses-protocol.ts",
"description": "Agent独立服务保留;前端通过Responses传输适配器接入,内部插件和查询MCP继续使用各自认证边界。"
}
}