本文へ移動
cccskills
無料GitHub で公開

agentsop-trajectory-to-semantic-ops

SOP for distilling reusable semantic operators (data-science operation skills) from agent execution trajectories: read action/observation traces, classify per-task failures, bind data-semantic constraints (input semantics / operation decision / output constraints / validation), and feed bounded edits back through an optimizer such as SkillOpt. Use when mining agent runs for cross-task operation knowledge, when a data-science skill keeps failing on the same operation family (join cardinality, group granularity, unit, time alignment), or when wiring trajectory history into a skill optimizer without polluting the skill body.

日本語の概要は準備中です。原文の説明を表示しています。

agentsope/SkillAlchemyスター 455(GitHub 455 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(8)

  • SKILL.md11.6 KB
  • intermediate/operation_candidates.json8.6 KB
  • README.md3.7 KB
  • references/R1-architecture.md5.8 KB
  • references/R2-sop-workflow.md4.5 KB
  • references/R3-dilemma-cases.md3.8 KB
  • references/R4-anti-patterns.md3.1 KB
  • references/R5-ecosystem-context.md4.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

执行轨迹 → 语义算子 提炼 SOP

一句话:把 agent 的一次运行轨迹(动作 + 观察 + 退出码 + 分数)压成「失败证据」,再把它翻译成带数据语义约束的可复用算子——不是把轨迹原样塞回提示词,而是提炼出「为什么这一步会错」的跨任务决策规则。

1. 何时激活本技能

下列任一情形成立时,按本 SOP 进入「轨迹提炼」工作模式:

  • 你手里有一批 agent 运行产物:trajectory.json(结构化动作流)、agent_trace.txt(可读的「动作 → 观察」)、results.jsonl(逐题分数/失败原因)。
  • 你要从失败里长出新技能,或让一个现有数据科学技能在某类操作上不再重复犯错。
  • 你在跑 SkillOpt(或类似轨迹优化器),需要把历史轨迹喂进去,但不希望污染技能正文。
  • 你关心的是跨任务可复用的操作知识,而不是某一题的具体答案。

不应激活的反面信号:见 §6 反模式与边界。

2. 核心心智模型

2.1 先分清三个「技能/算子」概念

概念作用你该提取的是哪一层
LOTUS 式语义算子用自然语言描述数据变换,交由执行计划实现不能因名字叫 sem_join 就继承其语义模型
任务能力分类(AgenticDataBench skills)用操作模式标注/组织任务是能力标签,不等于可直接加载的运行时技能
SKILL.md 运行时技能执行时提供流程、知识、代码与资源这是承载形式;贡献来自其中的机制

一句话:语义算子的价值,是保存「跨任务可复用的决策约束」,并让相邻操作能检查它们——不是把某条管线的实现代码当知识。

2.2 执行轨迹的真实结构

一条轨迹是 agent 动作的时间序列表(AgenticDataBench 实测格式):

{"kind":"message","content":"..."}
{"kind":"command","command":"bash -lc 'python3 - ...'","exit_code":0,"output":"..."}
{"kind":"command","command":"bash -lc '...'","exit_code":1,"output":"SyntaxError: ..."}

三个铁律:

  • exit_code 是失败信号,不是全部。exit≠0 的步是「哪里断了」;但 exit=0 的步也可能错在语义(算对但口径错)。
  • message 是 agent 的自我叙述,不是事实。它说「已完成」不等于产物正确;要拿命令/观察/分数交叉核对。
  • output 是观察:WROTE output.csv ROWS 10 这种回读自检,比一句「完成」可信得多。

2.3 语义算子的五字段模板

每个算子至少记录这五样(缺一不可):

组成具体内容
适用条件什么输入/状态下该用这个算子
输入语义每行代表什么、连接键、键是否唯一、时间粒度、缺失键策略
操作决策是否确需模糊匹配、阈值从哪来、一对多是否允许、未匹配如何处理
输出约束输出粒度、键关系、连接覆盖率、行数变化、新增缺失值
验证与修复键碰撞、多对多扩增、错误匹配;按失败类别读取对应修复说明

2.4 八类「容易出错」的操作族

先只挑 6–10 个高频且确实易错的操作族做原型:entity alignment(实体对齐)、join cardinality(连接基数)、grouped/window statistics(分组/窗口统计)、time alignment(时间对齐)、missingness(缺失)、unit handling(量纲)、train/test transformation(训练/测试转换)、artifact validation(产物校验)。

反例:join 后行数变化本身不能判错——一对多可能正是任务要求。检查器必须对照事先绑定的期望关系;没证据时给出「未验证」,不套统一规则。

3. SOP 工作流(轨迹 → 算子)

Phase 1 — 收料(collect)

收集最近 N 轮的 results.jsonl(分数/失败原因)+ 每条轨迹。只收,不改。缺了分数只剩轨迹,等于只有症状没有诊断。

Phase 2 — 压迹(trajectory → text)

把 actions 压成「动作 → 观察」文本。优先失败步(exit≠0),再取尾部若干步。超预算就截断(默认 6000 字符,OPT_HISTORY_CHARS 可调)。

Phase 3 — 归类(classify)

逐题趋势分五类:

persistent_fail    持续失败(跨轮都是 0)
regressed          之前能过,本轮退化
flat_partial       长期卡在部分分
improved           本轮有进步
stable_success     稳定满分(可跳过,不占预算)

排序占位按失败严重度:persistent_fail → regressed → flat_partial。

Phase 4 — 合成材料(build material)

把分数、逐题趋势、失败轨迹拼成 markdown,用显式标记包裹:

<!-- SKILLOPT_HISTORY_START -->  …材料…  <!-- SKILLOPT_HISTORY_END -->

Phase 5 — 注入并优化(inject → optimize)

材料挂到技能尾部(或放 references/history_material.md 走 bundle),交给优化器做有界文本编辑 + 门控验证 + 拒绝坏编辑。

Phase 6 — 剥离(strip)

优化产物里把材料整段剥除,产出一个干净的 SKILL.md。注入→剥离必须字节级一致(filecmp 通过)。

Phase 7 — 验收

四个验收问题:

  1. 同分布未见任务是否提升?
  2. 未见数据集/领域是否提升?
  3. 已见操作的新组合是否提升?
  4. 换模型/harness 后收益是否保留?

4. 操作模型(命令/函数速查)

collect_history(窗口 N)     收集最近 N 轮分数+轨迹
_trajectory_text(actions)   动作压成「动作→观察」,优先 exit≠0 步
classify(逐题分)            五类趋势分类
build_history_material()    合成 markdown 材料
make_history_skill_init()   材料挂技能尾部
strip_history_text()        从产物剥除材料

关键约束:

  • bundle 优于扁平注入:材料放 references/history_material.md,主文件从 9873 字符降到 3877 字符,主文件不被污染、执行器按需加载。
  • 别把路径写成宿主机路径:轨迹里的 D:\... 进 Linux 容器会找不到文件——送进去前把 workspace 映射成 /workspace。
  • token 口径要分清:容器内网关可能不上报 usage(回退 tiktoken 估算),宿主机才给真实值。

5. 困境决策案例 (Examples / Scenarios)

案例 1 — 「调用次数涨了,但不知道是不是机制」

触发:技能调用次数与分数一起涨,想据此宣称「技能有用」。

决策规则:调用次数 ≠ 正确采用。分开记录:发现 → 激活 → 正文/资源加载 → 实际采用 → 结果收益。调用成功也不等于采用;零显式调用也不等于零效应(技能描述本身可能已进上下文)。

案例 2 — 「门控 4 题,噪声同量级」

触发:4 道门控题 × 每题 1 轮,用「技能变好/变坏」做判决。

决策规则:4 题门控的 95% 区间约 ±0.22,同技能两次评估可差 0.50,判决≈抛硬币。扩容到至少 8 题 × 2 轮,或 4 题 × 3 轮;换掉恒满分/恒零分的题。

案例 3 — 「技能越优化越膨胀,效果反而不单调」

触发:9 代净增 92 行(128→218),6 代零删除,规则互相反转(先立后反)。

决策规则:限制单代 diff(如 ≤8 行)、禁止反转上代规则;长度与效果不单调(163 行反而稳定)。最小改动 + 拒绝反转,比「每代大改」更稳。

案例 4 — 「训练集看不到提升,测试集却提升」

触发:训练集高基线低分辨率(单轮噪声 ±0.125),测试集低基线高分辨率(3 轮平均)。

决策规则:统一 repeat ≥ 3;训练/门控/测试三集零重叠,训练分本质是「另一组题的抽样」。按数据来源/任务家族分组,别随机按任务切。

案例 5 — 「语义约束写进 skill,但没人真的读 references」

触发:正文出现 references 链接,但顶层轨迹里没有读取 references/ 的记录。

决策规则:正文链接只证明「提供了入口」,不等于「资源被读取」。把「资源是否被读」单独当指标测,别把入口当采用。

6. 反模式与边界

不要这样做

反模式后果
把实例答案 / 任务 ID / 测试集列名特例写进技能过拟合,污染技能,泄漏评测
注入历史材料但不剥除主文件膨胀,执行超时
用「未验证」当「已验证」模糊匹配的语义正确性,类型/行数检查只能发现部分错误
把「连接后行数变化」一律判错一对多可能正是任务要求
用单轮分数指导优化噪声(±0.125)淹没信号

硬边界

  • 不生产答案,生产约束:算子保存的是可复用决策约束,不是某题的代码。
  • 不把 oracle 当正式成绩:用 gold skills/gold 代码做路由只能标作 oracle 诊断,不能混入主结果。
  • 不预设「层级越深越好」:渐进披露收益取决于规模和 harness,需实验支撑。
  • 不把相关性当因果:评分与调用次数一起变,不足以证明机制。

7. 生态对照

工作与本 SOP 的关系
SkillOpt直接复用的有界文本编辑 + 门控 + 慢更新优化器;本 SOP 是它的「喂料」前置
SemPipes / EvoDS / EvoSkill均已覆盖「给数据科学设计可优化算子」;差异点应在数据语义状态、组合约束、局部反馈
Skill Blocks / SkillJuror已做「渐进披露 vs 全量加载」的对照;本 SOP 不预设层级,只要求控制知识量
LOTUS / DocETL / Abacus语义算子/管线优化;本 SOP 关心「操作之间的数据语义可检查」,不是管线重写
COBRA-Skills有限预算下分配技能评估的更新基线,比较成本时不能只对无技能

关键差异主张:让操作之间的数据语义可检查——执行前绑定任务参数、执行后输出可检查状态摘要、失败后判定是参数/数据语义/执行代码/技能知识哪一层的问题。

引用源

  • AgenticDataBench 本地仓库:docs/research/IDEA_ASSESSMENT_2026-09-19.md、generator/README.md、generator/data_classes.py、testbed/SKILLOPT_HISTORY_PATCH.md、testbed/SkillOpt_两种优化方式分析.md、testbed/opt_common.py
  • 轨迹 schema 与样例:testbed/traindata/_skillopt_*/rollout*/predictions/*/trajectory.json、agent_trace.txt、results.jsonl
  • 相关论文:LOTUS (arXiv:2407.11418)、AgenticDataBench (arXiv:2607.01647)、SkillOpt (arXiv:2605.23904)、SemPipes (arXiv:2602.05134)、EvoDS (arXiv:2606.03841)、Skill Blocks (arXiv:2608.14943)、SkillJuror (arXiv:2606.11543)、COBRA-Skills (arXiv:2609.11682)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Cross-framework enhancement overlay for choosing a multi-agent topology BEFORE writing any agent. A binary-question rubric — is single-agent + tools enough? do agents need to know about each other? does the output need one voice? — maps the answer to single-agent / supervisor / swarm / sequential / hierarchical. Activates when a coder agent is tempted to "split the work into roles" or reaches for a multi-agent framework. Encodes the *selection rubric* that the per-framework skills assume but never surface. Search keywords: when to use multi-agent, single vs multi agent, do I need multiple agents, supervisor vs swarm, multi-agent vs single agent, agent team design.

日本語の概要は準備中です。原文の説明を表示しています。

agentsope/SkillAlchemy4552026年10月24日 更新

SOP for terminal-based, git-native AI pair programming with Aider (git work-tree + tree-sitter repo-map + edit-format + human-in-loop REPL). Use when editing code in an existing git repo via an LLM, when you need to converge a change to 2-5 files, pick an edit format that fits the model, run architect+editor mode, or wire an auto-test loop.

日本語の概要は準備中です。原文の説明を表示しています。

agentsope/SkillAlchemy4552026年10月24日 更新

Screens biomedical / life-science papers for signs of data fabrication, image manipulation, and statistical anomalies, using the detection techniques distilled from the field's canonical exposure platforms (PubPeer, Data Colada, Science Integrity Digest, For Better Science) and tools (ImageTwin/Proofig, statcheck, GRIM/GRIMMER, Problematic Paper Screener, Seek & Blastn). Use when asked to check a paper/figure for image duplication, blot splicing, impossible statistics, paper-mill or tortured-phrase signals, research integrity, or "is this data faked"; or when a user shares a figure, Western blot, supplementary dataset, or DOI and asks whether it looks manipulated. Reports observable anomalies as questions for clarification — it never accuses anyone of fraud.

日本語の概要は準備中です。原文の説明を表示しています。

agentsope/SkillAlchemy4552026年10月24日 更新

Universal discipline for any LM-driven loop — agent retries, plan-act-observe, multi-agent handoffs, optimiser passes, test-fix cycles. Encodes the one rule every framework documents quietly and every team relearns expensively: the LM in the loop is NEVER a reliable terminator. Termination must be provided by an explicit counter + exit predicate + stagnation signal + escalation path that live OUTSIDE the LM's control. This is a tool- level, framework-agnostic skill. It maps onto LangGraph (recursion_limit + state counter + interrupt), CrewAI (max_iter + max_rpm + human_input), Claude / OpenAI SDKs (max_iterations + tool_use_budget), DSPy (declared evaluation budget), Aider (REPL + explicit retry cap), and AutoGen (max_consecutive_auto_reply). Search keywords: infinite loop, recursion limit, recursion_limit, GraphRecursionError, max iterations, max_iter, agent stuck, agent won't stop, runaway agent, ReAct loop not terminating, agent repeating itself.

日本語の概要は準備中です。原文の説明を表示しています。

agentsope/SkillAlchemy4552026年10月24日 更新

Decision rubric for when an LM agent should write-and-run code (Program-of-Thought / code interpreter) versus reason in natural language: classify each step as deterministic- computable (emit + execute code, feed the result back) vs judgment (stay in prose). Use when designing or debugging an agent step that does arithmetic/parsing/data transforms, when prose reasoning hallucinates a computation (under-coding), or when a sandbox round- trip is wasted on a judgment task (over-coding). Search keywords: code interpreter, agent does math wrong, calculator hallucination, when to run code vs reason, program of thought, PoT, tool vs reasoning.

日本語の概要は準備中です。原文の説明を表示しています。

agentsope/SkillAlchemy4552026年10月24日 更新

Coder-agent working-file budget discipline: keep the editable working set (files you /add into writable context) under ~25k tokens, separate "read" from "edit", delegate breadth to a read-only repo-map, and drop files once edited. Use when an LLM coder-agent edits multiple files, when the working set must stay focused, or when the model starts editing the wrong file / missing targets because too much context dilutes attention. Search keywords: context window full, agent edits wrong file, too much context, /add /drop files, working file budget, context dilution, lost in the middle.

日本語の概要は準備中です。原文の説明を表示しています。

agentsope/SkillAlchemy4552026年10月24日 更新

agentsope のスキルをすべて見る

このスキルの問題を報告する