Community编程与开发github.com

bentoms-dev/ai-feature-engineer

构建可靠、安全且经济高效的LLM驱动功能,并应用于实际产品中。在向应用添加聊天、摘要、提取、分类、RAG搜索、工具调用或智能体时,在编写提示词或评估、选择模型、控制成本和延迟,以及防御提示注入时使用。

ai-feature-engineer 是什么?

该技能旨在帮助开发者可靠地将LLM功能集成到生产级应用中。它将LLM视为不可靠、昂贵且不可信的依赖项,并围绕它进行工程化设计,强调从定义任务和构建评估数据集入手,确保行为可预测。它涵盖了提示词工程、结构化输出、检索增强生成(RAG)、工具调用与智能体、安全性、评估以及成本与延迟优化等关键技术领域。该技能适用于Claude Code、Cursor、Codex等所有主流AI Agent平台,其核心方法包括:使用结构化输出来验证响应、实施混合搜索与权限过滤的RAG、对工具调用强制执行授权与人工确认,并利用自动化评估集跟踪每次变更。最终产出包括任务定义、模型与提示词版本、输出模式、评估结果(通过率、单次调用成本、p95延迟)、已实施的安全控制措施以及已知的失效模式,从而为生产级LLM功能交付提供全面、务实的指导。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bentoms-dev/skills/tree/HEAD/skills/ai/ai-feature-engineer

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

AI Feature Engineer

您将交付在生产中行为可预测的LLM功能。将模型视为不可靠、昂贵且不可信的依赖项,并围绕它进行工程化设计。

从任务入手,而非模型

  1. 用一句话定义任务以及产品所需的确切输出。
  2. 收集20到50个真实示例输入(包括棘手的输入),并为每个输入编写理想输出。这将成为您的评估集。
  3. 自问是否真的需要LLM。正则表达式、搜索、规则或小型分类器更便宜且具有确定性。

提示词

  • 将稳定的指令放在系统提示中;将用户数据放在清晰分隔的部分(例如XML风格的标签)中,并告诉模型这些内容只是数据,而非指令。
  • 明确指定角色、任务、约束、输出格式以及不确定时的做法(例如“如果文档中没有答案,请说不知道”)。
  • 针对棘手的格式,提供两到三个不同的示例。
  • 像管理代码一样在源代码管理中对提示词进行版本控制。切勿在不运行评估的情况下编辑生产环境中的提示词。

结构化输出

  • 当代码需要消费结果时,请使用提供商的Structured Output或JSON Schema模式,或工具调用。
  • 使用模式(例如Zod或Pydantic)验证每个响应。验证失败时,使用验证错误重试一次,然后优雅地回退。
  • 保持模式扁平且小巧;对类别使用枚举。

检索增强生成(RAG)

  • 在触及提示词之前,先确保检索正确;大多数RAG失败都是检索失败。
  • 按文档结构(标题、章节)进行分块,包含重叠部分,并存储源元数据(标题、URL、日期、权限)。
  • 使用混合搜索(关键词加向量)并对顶部结果进行重排序。根据您的评估问题衡量召回率。
  • 在查询时根据用户权限进行过滤,确保模型永远不会看到用户无权访问的文档。
  • 让模型引用来源,并在UI中显示引用。

工具调用与智能体

  • 为工具赋予狭窄且命名恰当的目的,并配备严格的输入模式。在您这边验证工具参数。
  • 在每个工具内部使用用户的身份(而非模型的请求)来强制实施授权。
  • 对于破坏性或高成本的操作(发送、支付、删除、发布),要求人工确认。
  • 限制每次运行的步骤、令牌数、时间和花费。记录每次工具调用。
  • 除非任务确实需要自主性,否则优先采用固定工作流的LLM调用,而不是开放式的智能体。

安全性

  • 提示注入问题尚未解决:来自用户、网页、电子邮件、文件或工具结果的任何文本都可能包含指令。如果模型会读取不受信任的内容,切勿在有人工介入的情况下授予其对机密或高影响力工具的访问权限。
  • 切勿将秘密、API密钥或其他用户的数据放入提示中。
  • 将模型输出视为不受信任的内容:在渲染HTML之前对其进行转义,切勿执行eval操作,切勿将其传入SQL或shell命令中,并在获取URL之前进行验证。
  • 在用户可以生成公共内容的场景应用内容审核。对每个用户进行速率限制。

评估

  • 自动化:每次提示词、模型或检索变更时,在CI(如可能)中运行评估集。
  • 尽可能使用精确检查(模式验证、标签正确、包含引用)。仅对开放式质量评估使用带有清晰评分标准的LLM-as-Judge,并抽查评判器。
  • 跟踪每个版本的通过率、成本和延迟。将每个生产环境失败案例添加到评估集中。

成本、延迟与用户体验

  • 使用能通过评估的最小模型;仅将困难案例路由给更大的模型。
  • 对长而稳定的前缀使用提示缓存。对重复的相同输入缓存整个响应。
  • 对面向用户的任何内容使用流式响应。对多步骤工作显示进度。
  • 设置超时,对速率限制和5xx状态码使用指数退避重试策略,并准备非AI回退方案。
  • 允许用户编辑、重新生成并提供正向或负向反馈;将该反馈连同提示词版本一起存储。

隐私与合规

向用户披露AI的使用情况。检查提供商的数数据保留和训练条款。编辑您不需要的个人身份信息(PII)。记录输入和输出,并设置访问控制和保留期限。

产出

报告任务定义、模型和提示词版本、输出模式、评估结果(通过率、每次调用成本、p95延迟)、已实施的安全控制措施以及已知的失效模式。


深入了解: AI Agent & MCP Server Builder 是一个高级技能包,包含关联技能、生产模板、脚本和评估提示词。

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

bentoms-dev/docs-readme-writer

Write developer documentation people actually read and trust. Use when creating or improving a README, getting-started guide, API reference, architecture decision record (ADR), runbook, onboarding guide, changelog or contributing guide, or when docs are outdated, confusing or missing.

bentoms-dev/github-actions-cicd-engineer

Build fast, secure and maintainable CI/CD pipelines with GitHub Actions. Use when creating or fixing workflows, speeding up slow CI, adding caching, matrices or deployments, managing secrets and environments, hardening workflows against supply-chain attacks, or setting up releases and preview deployments.

bentoms-dev/postgres-migrations-engineer

Design PostgreSQL schemas, write zero-downtime migrations and fix slow queries. Use when adding tables, columns, indexes or constraints, changing data on a live database, reviewing a migration for locking risks, reading EXPLAIN ANALYZE output, or working with Prisma, Drizzle, Knex, TypeORM, Rails or Django migrations.

bentoms-dev/shopify-theme-architect

Build, refactor and review Shopify Online Store 2.0 themes. Use when creating or editing Liquid sections, blocks, snippets, templates, theme settings, locales, or theme CSS/JS, and when reviewing a theme for performance, accessibility or merchant editability.

bentoms-dev/test-engineer

Write tests that catch real bugs and survive refactors. Use when adding tests to new or existing code, choosing between unit, integration and end-to-end tests, fixing flaky tests, setting up Vitest, Jest or Playwright, or reviewing a test suite for gaps and brittleness.

相关技能