Skip to content

Dart 最小示例

本文示例适合先验证 SDK 能力层,不依赖 Flutter UI。

如果你在用 AI 编程工具,这一页更适合作为“参考真值”而不是长篇教程。
当 AI 生成的 Dart 接入代码和文档描述不一致时,优先回到这里核对最小骨架。

推荐提示词

text
请参考 AgentOS 文档里的 Dart 最小示例,在我的项目里生成一个尽量贴近该示例结构的最小接入实现。

要求:
- 使用 agentos_sdk
- 先 registerBundle
- 再调用 modelkit.chat.create 完成一次最小消息请求
- 尽量保留示例的执行顺序和代码骨架,不要臆造新的初始化流程
- 如果需要模型名,优先支持从 listModels() 获取,或者明确说明默认回退值

示例代码

示例来源:agentos-sdk-dart/example/agentos_sdk_dart_example.dart

dart
import 'package:agentos_sdk/agentos_sdk.dart';

Future<void> main() async {
  final sdk = AgentOSSDK(baseUrl: 'http://127.0.0.1:8888');

  await sdk.agentos.registerBundle(
    bundleId: 'com.example.minimal.dart',
    appGroupId: 'com.example.minimal',
  );

  final models = await sdk.modelkit.listModelsByTask(ModelTask.chat);

  final completion = await sdk.modelkit.chat.create(
    model: models.first.id,
    messages: <OpenAIChatCompletionChoiceMessageModel>[
      OpenAIChatCompletionChoiceMessageModel(
        role: OpenAIChatMessageRole.user,
        content: <OpenAIChatCompletionChoiceMessageContentItemModel>[
          OpenAIChatCompletionChoiceMessageContentItemModel.text(
            'Say hello from the Dart minimal app.',
          ),
        ],
      ),
    ],
  );

  print(completion.choices.first.message.content?.first.text);
}

运行方式

bash
dart pub add agentos_sdk
dart run bin/app.dart

适合什么时候用

  • 先确认网关地址和模型配置没问题
  • 先验证 Dart 端类型和依赖环境
  • 在接入 Flutter 或 ChatKit 之前先跑通底层请求

AI 最容易写错的地方

  • 跳过 registerBundle(...),直接假设已经有上下文
  • chatkit_dartagentos_sdk 的职责混在一起
  • 没有先验证最小链路就直接引入 Flutter UI 抽象
  • 直接写死一个未知模型名,而不是先查可用模型

人工验收清单

  • 代码结构是否仍然是 SDK 初始化 -> registerBundle -> chat.create
  • 是否至少打印出一条可见的模型返回内容
  • 是否先把能力层跑通,再决定要不要接 ChatKit