界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

core-components-and-structured-io

core-components-and-structured-io

【数据与研究】Build service-free AdalFlow Component, DataClass, Prompt, parser, and structured-output pipelines.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: core-components-and-structured-io description: "Build service-free AdalFlow Component, DataClass, Prompt, parser, and structured-output pipelines." disable-model-invocation: true metadata: disco-role: operating license: MIT

Core Components and Structured I/O

Use this sub-skill when a task needs AdalFlow's service-free building blocks:

  • Component, DataComponent, Sequential, nested component/parameter registration, state dictionaries, and lifecycle methods.
  • DataClass, required_field, JSON/YAML/schema/signature helpers, and nested dataclass serialization.
  • DataClassParser, string parsers, output parser selection, and Jinja Prompt rendering.
  • Small deterministic task-pipeline prototypes that do not call a live provider.

Do not use this sub-skill for live model calls, provider clients, or Generator internals; route those to model-client-and-generator-workflows. Route tool/agent/streaming work to agents-tools-and-streaming, and trainer/optimizer work to evaluation-and-optimization.

Load order

  1. Read core API reference for verified signatures, lifecycle rules, object relationships, and routing boundaries.
  2. Read structured I/O and parsers for copyable DataClass, parser, prompt, and mini-pipeline recipes.
  3. If behavior is surprising, read troubleshooting before changing code.
  4. For a deterministic environment check, run structured IO smoke or core component smoke. These scripts do not use provider credentials, network, datasets, or model calls.

Operating rules

  • Always call super().__init__() before assigning child Component or Parameter attributes in a custom Component.
  • Implement call for synchronous inference. Implement acall only when the component genuinely has async work. Implement forward or bicall only for training-mode behavior.
  • In train() mode, Component.__call__ expects a Parameter output; in eval() mode, it rejects Parameter outputs. DataComponent is intentionally non-trainable and dispatches directly to call.
  • Decorate every DataClass subclass with @dataclass; use field(metadata={"desc": ...}) or metadata={"description": ...} to make prompt schemas useful.
  • Prefer default_factory for mutable fields, and use required_field() when a required field must appear after optional fields.
  • For structured model outputs, generate prompt instructions with DataClassParser.get_output_format_str() and parse service-free strings with the same parser before connecting a Generator elsewhere.
我的收藏