A No-Code Health Agent on Huawei's Xiaoyi Platform: Prompts, Compliance, and What Actually Worked
I used to rely on a Python gateway running on 127.0.0.1 to hold things together. This time, I flipped the script — not a single line of code, just to see if the Xiaoyi Open Platform could get a usable agent up and running from scratch. The scenario I chose was a health assistant: calculating body weight, evaluating a meal, and giving better eating advice. These are all classic tricks from mobile health apps, and they're more than enough to test the platform's completeness.
Creating a New Project: Stuck First on Which Mode to Choose
The Xiaoyi Open Platform homepage says, 'HarmonyOS Intelligence, newly upgraded. Based on the HarmonyOS ecosystem and large AI model capabilities, we provide you with a one-stop development solution for HarmonyOS agents.' At first glance, it sounds no different from the slogans on most product homepages. Only after clicking in did I realize that this sentence actually corresponds to a complete set of web-based toolchains, from creation to debugging.
Clicking 'New Project,' the first thing at the top is choosing between an Agent or a Skill. The Skill Square in the sidebar lists a bunch of ready-made capabilities — kuaidi100-user, fitness-coach, autonomous-tasks, news-extractor, and so on. This suggests that Skills are more like functional modules that can be called by an agent, while the Agent is the thing that actually talks to the user. Since I'm building a health assistant this time, I chose Agent.
After selecting, there's another layer of development modes: Device A2A (developed via AgentAbility in HarmonyOS apps), Cloud A2A (driven by third-party models), Cloud Workflow (for orchestrating business with clear steps), and OpenClaw (a personal 24/7 agent). The description for OpenClaw was quite appealing, but after checking the documentation, I found it requires the access party to be a real HarmonyOS NEXT device. I didn't have one on hand, so I had to give it up and chose the Cloud Workflow mode.
After choosing Cloud Workflow, another pop-up appeared: Single Agent mode or Multi-Agents mode. A health assistant only does three things — weight, meals, and advice — the logic isn't complex and doesn't need multi-agent collaboration, so I chose Single Agent. This layer of choice finally landed on an inconspicuous dropdown box at the top of the orchestration page, labeled 'LLM Mode.' If you hadn't clicked through step by step, just looking at the orchestration page, you'd never guess there were two layers of choices wrapped up front.
Filling in the Name and Description First
Before entering the orchestration page, I had to fill in a name and avatar. 'Health Assistant,' with the default robot icon for the avatar — I didn't fuss over it.
The description I filled in was 'Care about your health, reflect my value,' 13 words. The page marked two usage points next to it: this text is displayed when clicking 'More' on the agent's homepage, and it's also used as a keyword for searching in the Xiaoyi Square. I didn't think much about it when writing, but later realized that this sentence actually determines what keywords users can use to find this agent — it's not the same as casually writing a self-introduction.
Opening Lines and Role Instructions: Preview on the Right While Filling In
On the orchestration page, the model selected was DeepSeek-V3 Enhanced, a built-in option on the platform, so there's no need to apply for an API Key yourself. This is a lot less hassle compared to the self-built Gateway articles, where I had to check every screenshot to make sure I hadn't accidentally exposed the Key.
Opening line:
Hello, I am your Health Assistant. Tell me your height and weight, and I can check if your weight is within a normal range; tell me what you ate for a meal, and I can estimate the nutritional balance and give you some specific advice on eating better.
Three opening prompts were configured, corresponding to the three capabilities:
I am 170cm tall and weigh 68kg. Is this weight normal?
Help me check: a bowl of braised pork rice with a cup of milk tea — is this meal healthy?
I want to lose some weight recently. Can you give me a one-week dinner diet plan?
While filling in, the debug preview panel on the right synchronously renders them into chat bubbles, allowing you to directly see what a user sees when they first open this agent. This instant feedback is much faster than writing an ArkUI page and running it through the Previewer yourself.
The role instructions were filled in the middle column of the orchestration page. This time, I deliberately wrote the capability boundaries as detailed as the capability list, not just piling up features:
You are a 'Health Assistant,' helping ordinary users understand their body metrics and dietary situation, serving daily health management, and not replacing a doctor's diagnosis.
Your core capabilities:
1. Weight and Body Fat Analysis: Based on the user's provided height and weight (optionally age and gender), calculate BMI, explain the range (underweight/normal/overweight/obese), and give a concise interpretation.
2. Meal Analysis: Based on the dishes described by the user, estimate the approximate calories and main nutritional composition (protein/fat/carbs/vegetable ratio), pointing out the strengths and weaknesses of this meal.
3. Dietary Advice: Combining the results of the first two items, provide actionable dietary adjustment suggestions, considering taste and practical feasibility, without requiring the user to follow extreme diet menus.
Answering Rules:
- Give the conclusion first (e.g., BMI value and range), then 1-3 specific suggestions, without piling up large blocks of theory.
- When user information is incomplete, first politely ask for the missing key information (height, weight, what exactly was eaten for this meal), do not fabricate data out of thin air.
- For issues involving illness, medication, extreme dieting, etc., that exceed the scope of daily health management, suggest consulting a doctor or professional nutritionist, and do not give diagnostic conclusions.
- Language should be colloquial and concise, no exaggerated marketing jargon, no terms like 'dear' or 'buddy'.
- Uncertain estimates must be marked as 'estimates,' do not present uncertain data with absolute certainty.
After filling in these two sections, the 'Publish' prompt in the upper right corner dropped from three incomplete items to two. The remaining ones are probably something missed in the basic info, to be filled in later on the configuration page.
Prompts Are Just a Small Piece; Plugins and Knowledge Bases Are the Main Event
Scrolling down past the role instructions, there's a bunch of other stuff. User Question Suggestions, which, when turned on, has two types: System Configured Prompt and Custom Prompt. With it on, after answering, it automatically brings up a few follow-up question suggestions, so users don't have to think of what to ask next. Further down are Quick Commands (up to 30), Background Image, Character Voice, and then Plugins (50), Workflows (20), Triggers (10), Linked Applications (20), Knowledge Bases (10), Variables, and finally Long-Term Memory, which is on by default.
I basically didn't touch this entire screen of options this time. Tool access requires additional authorization and service configuration. The goal this time was to see if pure prompt engineering could support a usable agent, so I left the plugins and knowledge base blank, with no intention of pretending I used them all. But seeing these options laid out there, you can feel that if you really wanted to go further — connecting a real weight scale, importing a user's historical diet records — these are all paths natively supported by the platform, no need to build your own interfaces from scratch.
The fact that long-term memory is on by default was an unexpected help — health-related conversations should naturally remember the height and weight a user has reported, otherwise, you'd have to repeat yourself every time you ask for dietary advice, which would be a terrible experience.
Must Pass Compliance Before Publishing
After saving, entering the 'Configuration' page, next to Basic Info and Privacy Agreement Service, there is a Content Compliance section. You have to truthfully answer two questions: whether this agent contains AI-generated files, and whether it accesses any third-party large models not provided by the Xiaoyi Open Platform. Next to it, there's a clause to check and confirm, stating that agents published must be reviewed according to the 'Interim Measures for the Management of Generative Artificial Intelligence Services,' the 'Regulations on the Administration of Deep Synthesis of Internet Information Services,' and the 'Measures for the Labeling of AI-Generated Synthetic Content,' and that concealing information bears responsibility.
When I was writing that Python gateway myself, I never encountered this kind of thing. A local service runs however you want, nobody cares. But when you're on an official platform preparing to publish, the names of these regulations are printed directly on the form, and details like whether you're connecting to a third-party large model must be truthfully reported.
Asked Two Questions in the Debug Panel
After filling in the role instructions, I tested directly in the debug panel on the right. The first sentence used the first opening prompt:
I am 170cm tall and weigh 68kg. Is this weight normal?
After 3.916 seconds, the response came back:
Based on your height and weight, your BMI is 23.53, which is within the normal range (18.5-23.9 is normal). However, it's close to being overweight, so you might want to pay some attention to your diet and exercise.
It calculated a specific BMI value, gave the range, and even added a note about being 'close to overweight,' not just stopping at the perfunctory 'weight is normal.' Below, it automatically brought up three follow-up questions: what exercises are suitable for me to lose weight, help me analyze how to control my weight, and recommend some healthy diet plans. Clicking one lets you continue the conversation without having to reorganize your question.
The second sentence was the third opening prompt:
I want to lose some weight recently. Can you give me a one-week dinner diet plan?
After 9.62 seconds, I got a seven-day plan specific down to the dish names for each day: Monday, steamed chicken breast with broccoli and brown rice; Tuesday, grilled fish spinach salad with sweet potato; all the way to Sunday, with a note at the end saying, 'These suggestions are all low-fat and high-protein, helping you lose weight healthily.' The debug panel also has a read-aloud entry in the upper right corner, with a switch for auto-play voice. You can listen to the response directly after it's generated — something my own gateway couldn't build in a short time.
What Wasn't Tested
The role instructions listed three capabilities, but the actual debugging only tested weight analysis and dietary advice, both of which got specific, non-templated responses. The third capability, meal analysis, was included in the opening prompts, but the debugging process didn't get to that question. What result a bowl of braised pork rice with milk tea would actually get analyzed is still unknown. I'm not going to use a pre-written prompt here to pretend it's a verified effect. The boundary in the role instructions about 'suggest consulting a doctor for medication advice' also hasn't been tested with a real boundary-crossing question. Whether the response would actually be blocked is also unfinished business.
This whole process didn't use my local service, nor did I write a single line of code. From choosing the development mode to filling in the role instructions, from the content compliance declaration to the two debug results, all the evidence is in the Xiaoyi Open Platform's web console. An ordinary individual developer account, no real device, no enterprise qualifications, can get to this step.