Skip to content

[DRAFT] ScriptCat 基础必要的 Agents 和 Skills (#1334 重设计)#1623

Draft
cyfung1031 wants to merge 5 commits into
scriptscat:mainfrom
cyfung1031:pr-essential-agents-and-skills
Draft

[DRAFT] ScriptCat 基础必要的 Agents 和 Skills (#1334 重设计)#1623
cyfung1031 wants to merge 5 commits into
scriptscat:mainfrom
cyfung1031:pr-essential-agents-and-skills

Conversation

@cyfung1031

@cyfung1031 cyfung1031 commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Description / 描述

注意: 这里我和 CodFrm 的意见有分歧。而且还没有合适的地方提交这些 Agents 和 Skills,故在ScriptCat里开这个Draft PR。不需要急于合并。

本 PR 的5个 commits 是以较早前的 草案 #1334 为基础,配合最新的代码和规范重构出来的。已经过 Agents 反复验证这5个 commits 的内容。

(我认为这些是 ScriptCat 需要的 skills / agents 能力。应该内建。)

Commit 内容拆解

整体上,本 PR 按照「提示词可靠性基线 → 专项 Sub-Agent → 辅助、流水线与安全型 Sub-Agent」逐步扩展 Agent 能力。相关职责边界不仅写入提示词,也落实到了工具白名单、execute_script 参数限制、标签页作用域、表单提交拦截和资源清理逻辑中。

Commit 主题 实际改动 权限与安全边界 测试与影响范围
298895c ♻️ Sub-Agent 加入思考风格、认识论纪律、情绪校准 重构已有的 researcherpage_operatorgeneral 三类 Sub-Agent 提示词。

researcher:要求先形成检索假设,再通过来源验证;区分来源事实、综合推断和未确认信息;明确报告来源冲突。
page_operator:要求先读取页面、一次执行一个动作,并分别验证“执行了动作”和“动作产生了预期结果”。
general:要求结构化拆解任务、说明方案取舍,并如实报告失败或任务与描述之间的偏差。
强化“不猜测、不假定成功、不迎合预设结论”的行为约束;页面操作必须观察、执行、验证,而不是连续进行未经确认的操作。 修改 sub_agent_types.ts 及其测试,共 2 个文件;新增测试确保三个内置类型都包含 Thinking style、Epistemic discipline 和 Emotional calibration。
1d27bfc ♻️ 主 System Prompt 加入思考风格、认识论立场、情绪校准 扩展主 Agent 和所有 Sub-Agent 共用的基础提示词。

• 主 Agent:要求先定义目标和成功标准,区分已知事实、推断与未知信息,并在情况偏离计划时显式说明。
• Sub-Agent:限制其只处理被委派的范围,区分已执行动作、已确认结果和推断结论。
• 输出规范:结果中需要明确标记未确认信息、失败和遗留问题,禁止用措辞把失败包装成成功。
增加“不要假定成功”“不要静默改变计划”“不要验证未经确认的用户假设”“不要把坏消息弱化成好消息”等全局规则;父 Agent 的自信表述不再被视为已验证事实。 修改 system_prompt.ts 及其测试,共 2 个文件;覆盖主 Agent 的认识论与情绪校准,以及 Sub-Agent 的范围、证据和失败汇报要求。
f4bd2c8 ♻️ Compact Prompt 加入忠实度要求 为会话压缩摘要增加 Fidelity requirement。摘要必须记录真实发生的过程,而不是理想化后的过程:

• 步骤失败时必须保留失败记录。
• 结果存在歧义时必须记录歧义。
• Agent 使用错误方案后进行了修正时,错误方案和修正过程都必须保留。
• 禁止为了让历史看起来更整洁而改写之前发生的事情。
防止 Compact 后丢失失败、误判和更正历史,避免新上下文基于一份“看似成功但不真实”的摘要继续执行。 修改 compact_prompt.ts 及其测试,共 2 个文件;测试直接覆盖失败、歧义、更正历史和禁止改写历史等要求。
5b7136f ✨ 增加四个专项 Sub-Agent 新增四类职责明确的专项 Agent:

data_processor:处理、清洗、转换和分析已提供的数据。
form_filler:读取并填写指定标签页中的表单,但停止在提交之前。
content_writer:根据已提供材料生成内容,不自行进行网络研究或补充事实。
script_engineer:编写和调试 UserScript / SkillScript,并在 Sandbox 中验证非 DOM 逻辑。

同时让 Agent 工具的类型枚举和描述自动从 SUB_AGENT_TYPES 生成,避免新增类型后遗漏 Schema。
将角色边界落实到工具层:

SubAgentTypeConfig 新增 executeScriptTargetsforbidIrreversibleActions
execute_script 可按 Agent 类型动态收窄为仅 page 或仅 sandbox,Schema 与执行器都会拒绝越权 target。
form_filler 不获得任意脚本执行能力;只能使用绑定到指定标签页的读取、激活、字段读取和字段填写工具。
• 新增 read_form_field / fill_form_field:拒绝 submit、button、reset、file、hidden、disabled 和 read-only 控件,并拦截字段事件触发的 submit() / requestSubmit()
• 对禁止不可逆操作的类型注入更严格的 Safety Prompt。
涉及 11 个文件。新增表单字段工具及测试,并补充:专项类型解析、工具白名单、Sandbox/Page 参数限制、表单控件拒绝、自动提交拦截、标签页绑定和 Agent Schema 暴露等测试。
426eddf ✨ 增加辅助型 Sub-Agent 框架 新增七类用于流水线拆分、结果复核和安全检查的 Agent:

summarizer:忠实压缩已提供材料,不改写或补充原文。
data_validator:按明确规则完整验证数据,只报告问题,不修改数据。
diff_checker:比较两个已提供版本,报告新增、删除和字段级变化。
page_extractor:从指定 URL 按指定 Schema 进行只读提取。
file_converter:转换 OPFS 中的 JSON、JSONL、CSV、HTML Table 等格式,并验证输出可重新解析。
action_reviewer:在不可逆操作前,独立整理目标、变更范围、敏感信息、可恢复性和歧义。
script_auditor:在脚本安装前进行独立静态安全审计;脚本作者不能审计自己的产物。

主 System Prompt 同步按 Core、Specialist、Auxiliary、Pipeline、Safety 分类说明这些类型,并把发布内容、提交表单和安装脚本的示例改为“生成 → 独立复核 → 用户确认 → 执行”的流程。
各类型使用最小化工具权限:

• 数据验证、Action Review 和脚本审计保持只读。
file_converter 可以读写文件,但不能删除原文件。
page_extractor 没有搜索、任意脚本执行或页面交互权限,只能打开新的非活动标签页,并读取或关闭自己创建的标签页。
• 新增标签页所有权跟踪;读取或关闭非本 Agent 创建的标签页会被拒绝。
• Sub-Agent 无论成功或失败,都会在 finally 中关闭尚未清理的提取标签页,避免资源泄漏。
涉及 8 个文件。新增 page_extractor_tools.ts 及测试,并覆盖辅助类型枚举、工具职责边界、标签页所有权、非活动标签页创建、越权访问拒绝和异常结束后的资源清理。

Screenshots / 截图

@cyfung1031 cyfung1031 changed the title [DRAFT] ScriptCat 基础必要的 Agents 和 Skills [DRAFT] ScriptCat 基础必要的 Agents 和 Skills (#1334 重设计) Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant