news 2026/9/10 22:52:46

PDF Processing

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PDF Processing

PDF Processing

【免费下载链接】tldrawBuild infinite canvas apps in React with the tldraw SDK. World's best, top-most agent recommended #1 five star SDK.项目地址: https://gitcode.com/GitHub_Trending/tl/tldraw

Quick start

Extract text with pdfplumber: [code example]

Advanced features

  • Form filling: See FORMS.md for complete guide
  • API reference: See REFERENCE.md for all methods
  • Examples: See EXAMPLES.md for common patterns
Agent 只在需要时才加载 FORMS.md、REFERENCE.md 或 EXAMPLES.md。 **模式二:按领域/变体组织** 支持多领域的技能按领域拆分,避免加载无关上下文。当用户询问销售指标时,Agent 只读取 `sales.md`:

bigquery-skill/ ├── SKILL.md (overview and navigation) └── reference/ ├── finance.md (revenue, billing metrics) ├── sales.md (opportunities, pipeline) ├── product.md (API usage, features) └── marketing.md (campaigns, attribution)

支持多框架/多变体的技能同理,按变体组织。用户选择 AWS 时,Agent 只读取 `aws.md`:

cloud-deploy/ ├── SKILL.md (workflow + provider selection) └── references/ ├── aws.md (AWS deployment patterns) ├── gcp.md (GCP deployment patterns) └── azure.md (Azure deployment patterns)

**模式三:条件式细节** 正文展示基础内容,链接到高级内容: ```markdown # DOCX Processing ## Creating documents Use docx-js for new documents. See DOCX-JS.md. ## Editing documents For simple edits, modify the XML directly. **For tracked changes**: See REDLINING.md **For OOXML details**: See OOXML.md

Agent 仅在用户需要这些功能时才读取 REDLINING.md 或 OOXML.md。

重要约束

  • 避免深层嵌套的引用——reference 文件应保持与 SKILL.md 只有一层深度,所有引用文件都应直接从 SKILL.md 链接;
  • 长文件加目录——超过 100 行的 reference 文件,应在顶部放置目录(table of contents),让 Agent 预览时能看到完整范围。

六步技能创建流程(Skill Creation Process)

文档给出了完整的创建流程,应按顺序执行,除非有明确理由表明某一步不适用,否则不要跳过:

  1. 通过具体示例理解技能(Understand the skill with concrete examples)
  2. 规划可复用内容(Plan reusable skill contents: scripts, references, assets)
  3. 初始化技能(Initialize the skill: 运行init-skill.ts
  4. 编辑技能(Edit the skill: 实现资源并编写 SKILL.md)
  5. 打包技能(Package the skill: 运行package-skill.ts
  6. 基于真实使用迭代(Iterate based on real usage)

第 1 步:用具体示例理解技能

只有当你已经清楚理解技能的使用模式时才可跳过此步——即使处理现有技能,这一步也很有价值。要创建有效的技能,必须清楚理解"技能将被如何使用"的具体示例,这些理解可以来自用户直接给出的示例,也可以是经用户反馈验证的生成示例。

例如构建 image-editor 技能时,应当询问:

  • "image-editor 技能应该支持哪些功能?编辑、旋转、还有其他吗?"
  • "你能举一些这个技能会被如何使用例子吗?"
  • "我能想象用户会提出类似'去掉这张图片的红眼'或'旋转这张图片'的请求。你还能想到其他使用方式吗?"
  • "用户说什么话应该触发这个技能?"

避免在单条消息中提问过多,先从最重要的问题开始,后续再跟进补充。当对技能应支持的功能有了清晰认识时,即可结束此步。

第 2 步:规划可复用的技能内容

把具体示例转化为有效技能,需要对每个示例做两项分析:

  1. 思考如何从零开始执行该示例;
  2. 识别在重复执行这些工作流时,哪些脚本、参考资料和资源会有帮助。

文档给了三个完整示例:

  • 构建pdf-editor技能处理"帮我旋转这个 PDF":分析发现(1)旋转 PDF 每次都要重写相同代码;(2)应把scripts/rotate_pdf.py脚本存入技能;
  • 设计frontend-webapp-builder技能处理"帮我构建一个 todo 应用":分析发现前端 webapp 每次都需要同样的 HTML/React 样板,应把包含样板文件的assets/hello-world/模板存入技能;
  • 构建big-query技能处理"今天有多少用户登录":分析发现查询 BigQuery 需要反复发现表结构与关系,应把记录表模式的references/schema.md存入技能。

第 3 步:初始化技能(init-skill.ts)

只有技能已存在、只需迭代或打包时才可跳过此步。从零创建新技能时,始终运行init-skill.ts脚本——它会自动生成包含技能全部要素的新模板目录,让创建过程更高效可靠。

npx tsx scripts/init-skill.ts <skill-name> --path <output-directory>

实际脚本位于 skills/skill-creator/scripts/init-skill.ts(示例:npx tsx init-skill.ts my-new-skill --path skills/public)。该脚本会:

  • 在指定路径创建技能目录;
  • 生成带正确 frontmatter 和 TODO 占位符的 SKILL.md 模板;
  • 创建示例资源目录scripts/references/assets/
  • 在每个目录中添加可自定义或删除的示例文件。

从源码看,脚本还内置了技能命名校验validateSkillName,init-skill.ts):

  • 必须是连字符式(hyphen-case):仅小写字母、数字和连字符(正则/^[a-z0-9-]+$/);
  • 不能以连字符开头/结尾,也不能包含连续连字符;
  • 最大长度 64 字符。

生成模板的核心价值在于其"Structuring This Skill"引导段——它提供了四种技能结构范式,可混搭使用:

  1. 工作流式(Workflow-Based):适合顺序流程(如 DOCX 技能:"Workflow Decision Tree → Reading → Creating → Editing");
  2. 任务式(Task-Based):适合工具集合(如 PDF 技能:"Quick Start → Merge PDFs → Split PDFs → Extract Text");
  3. 参考/规范式(Reference/Guidelines):适合标准规范(如品牌指南:"Colors → Typography → Features");
  4. 能力式(Capabilities-Based):适合集成系统(如产品管理:"Core Capabilities → 编号能力列表")。

初始化完成后,按需自定义或删除生成的 SKILL.md 与示例文件(模板末尾明确提示:"任何不需要的目录都可以删除。并非每个技能都需要全部三种资源")。

第 4 步:编辑技能

编辑(新生成或已有的)技能时,要时刻记住:这个技能是给另一个 AI Agent 用的。应包含对 Agent 有益且不显然(non-obvious)的信息——思考哪些程序性知识、领域细节或可复用资源能帮助另一个 Agent 更高效地完成任务。

学习成熟的设计模式

根据技能需求查阅两份配套指南:

  • 多步骤流程:参见 references/workflows.md,涵盖顺序工作流与条件逻辑;
  • 特定输出格式或质量标准:参见 references/output-patterns.md,涵盖模板与示例模式。

这两份文件包含了经过验证的技能设计最佳实践。其中 workflows.md 建议:复杂任务要在 SKILL.md 开头给 Agent 一个流程总览(如"填写 PDF 表单分五步:分析表单 → 建立字段映射 → 校验映射 → 填表 → 校验输出");分支任务则用条件决策点引导("创建新内容?→ 走创建工作流;编辑已有内容?→ 走编辑工作流")。output-patterns.md 则区分了"严格模板"(对 API 响应等严格要求,使用 ALWAYS 措辞)与"弹性指导"(允许按最佳判断调整),并推荐用 input/output 示例对替代纯文字描述。

从可复用内容入手

实现时先从上面识别出的可复用资源开始:scripts/references/assets/文件。此步可能需要用户输入——例如实现brand-guidelines技能时,用户可能需要提供品牌资源/模板存入assets/,或提供文档存入references/

新增的脚本必须通过实际运行来测试,确保没有 bug 且输出符合预期。如果相似脚本很多,只需测试有代表性的样本,即可在保证信心的同时平衡完成时间。任何不需要的示例文件和目录都应删除——初始化脚本创建示例文件只是为了展示结构,大多数技能并不需要全部三种资源。

更新 SKILL.md

写作准则:始终使用祈使句/不定式形式。

Frontmatter:只写namedescription两个字段,不要添加任何其他字段

  • name:技能名称;
  • description:这是技能的主要触发机制,帮助 Agent 理解何时使用该技能。要同时包含"技能做什么"和"何时使用的具体触发场景/上下文"。所有 "when to use" 信息都必须放在这里——正文只在触发后才加载,所以正文里的"何时使用本技能"章节对 Agent 没有帮助。

正文:编写使用技能及其打包资源的指令。

第 5 步:打包技能(package-skill.ts)

技能开发完成后,必须打包成可分发的.skill文件分享给用户。打包过程会先自动校验技能,确保其满足所有要求:

npx tsx scripts/package-skill.ts <path/to/skill-folder>

可选输出目录:

npx tsx scripts/package-skill.ts <path/to/skill-folder> ./dist

实际脚本位于 skills/skill-creator/scripts/package-skill.ts,其执行逻辑为:

  1. 校验技能,自动检查:

    • YAML frontmatter 格式与必填字段;
    • 技能命名规范与目录结构;
    • description 的完整性与质量;
    • 文件组织与资源引用。
  2. 校验通过则打包,生成以技能命名的.skill文件(如my-skill.skill),包含所有文件并保持正确的目录结构用于分发。.skill文件本质上是扩展名改为.skill的 zip 压缩包——从源码可见,打包器先把技能目录完整复制到临时目录(mkdtempSync),再调用系统zip -r命令压缩成名为技能目录名的归档。

  3. 校验失败则不创建包,脚本会报告错误并退出。修复校验错误后重新运行打包命令即可。

打包前调用的校验器是 skills/skill-creator/scripts/quick-validate.ts,其中validateSkill函数(quick-validate.ts)规定了完整的校验规则:

  • SKILL.md 必须存在,且必须以---开头(YAML frontmatter 必需);
  • frontmatter 只允许 6 个属性namedescriptionlicensecompatibilityallowed-toolsmetadata,出现其他键即校验失败;
  • namedescription均为必填,不能为空或纯空白;
  • name必须为小写连字符式(/^[a-z0-9-]+$/),不能以连字符开头/结尾、不能含连续连字符,最长 64 字符,且必须与所在目录名完全一致
  • description不能包含尖括号(<>),最长 1024 字符;
  • 可选的compatibility字段最长 500 字符。

校验器也可独立运行:

npx tsx quick-validate.ts <skill_directory>

【免费下载链接】tldrawBuild infinite canvas apps in React with the tldraw SDK. World's best, top-most agent recommended #1 five star SDK.项目地址: https://gitcode.com/GitHub_Trending/tl/tldraw

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 22:51:49

DeepCode 快速部署指南:把论文变成生产代码的AI编程助手

DeepCode 快速部署指南&#xff1a;把论文变成生产代码的AI编程助手 【免费下载链接】DeepCode "DeepCode: Open Agentic Coding (Agent Harness & Loop Engineering & Multi-Agent Orchestration)" 项目地址: https://gitcode.com/GitHub_Trending/deepc/…

作者头像 李华
网站建设 2026/9/10 22:50:06

CANN/ge EsTensorLike构造函数

EsTensorLike构造函数和析构函数 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyT…

作者头像 李华