faq/features.md
提示词创建智能体时,如果点击立即创建,需要调用讯飞开放平台的模型能力,请先将AstronAgent与您的讯飞开放平台的应用进行绑定(参考部署文档),然后领取对应模型的额度即可。或者直接点击跳过,使用第三方模型进行会话。
在AstronAgent中使用虚拟人技术需要在讯飞虚拟人官网中申请对应的服务并配置到环境变量中:
⚠️特别注意因虚拟人需要用到浏览器的媒体捕获 API navigator.mediaDevices,所以需要https或者localhost这种安全环境,若您没有这样的环境,chrome浏览器可以设置绕过检查,具体设置如下:
目前需要修改代码并手动更新数据库中的原子树信息。后续版本将提供更便捷的自定义组件开发方式。
支持。MCP 既可以作为独立的「MCP 节点」直接加入工作流,也可以在 Agent 智能决策节点里作为工具添加和配置。
检索到的知识库内容会作为上下文填充到 Prompt 中发送给模型。
可以通过修改提示词(Prompt)来约束模型:例如添加“请仅依据检索到的内容回答,如果检索 内容中没有答案,请直接回复不知道,不要编造”。
是否需要审核取决于所在空间:
两者默认运行在同一个 MySQL 实例上,但各自使用独立的数据库(Console 用 astron_console,工作流服务用 workflow)。
有,默认未开启,按以下步骤启用:
worker_processes auto;
worker_rlimit_nofile 65535;
events {
worker_connections 65535;
multi_accept on;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Log format
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# Access log
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
# Basic configuration
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# Upload size limit
client_max_body_size 20m;
# Gzip compression
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_types
text/plain
text/css
text/xml
text/javascript
application/xml+rss
application/javascript
application/json;
server {
listen 80;
server_name localhost;
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
# Health check
location /nginx-health {
access_log off;
return 200 "nginx is healthy\n";
add_header Content-Type text/plain;
}
# Redirect all other HTTP traffic to HTTPS
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
server_name localhost;
ssl_certificate /etc/nginx/certs/localhost.pem;
ssl_certificate_key /etc/nginx/certs/localhost-key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
# Runtime config - no cache (dynamic config file)
location = /runtime-config.js {
proxy_pass http://console-frontend:1881;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# Disable caching for runtime config
expires -1;
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0";
add_header Pragma "no-cache";
}
# Static resource caching
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
proxy_pass http://console-frontend:1881;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
expires 1y;
add_header Cache-Control "public, immutable";
}
# SSE (Server-Sent Events) API proxy for workflow chat completions
location /workflow/v1/chat/completions {
proxy_pass http://core-workflow:7880/workflow/v1/chat/completions;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# SSE specific settings
proxy_buffering off; # Disable buffering for real-time data transmission
proxy_cache off; # Disable caching
proxy_set_header Connection ''; # SSE uses persistent connections
proxy_http_version 1.1; # Use HTTP/1.1
chunked_transfer_encoding on; # Enable chunked transfer encoding
# Prevent nginx from buffering responses
proxy_set_header X-Accel-Buffering no;
# Timeout settings - SSE requires long-lived connections
proxy_connect_timeout 60s;
proxy_send_timeout 1800s; # 30 minutes send timeout
proxy_read_timeout 1800s; # 30 minutes read timeout
# Set correct headers for SSE
add_header Cache-Control 'no-cache';
add_header X-Accel-Buffering 'no';
}
# SSE (Server-Sent Events) API proxy for chat messages
location /console-api/chat-message/ {
proxy_pass http://console-hub:8080/chat-message/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# SSE specific settings
proxy_buffering off; # Disable buffering for real-time data transmission
proxy_cache off; # Disable caching
proxy_set_header Connection ''; # SSE uses persistent connections
proxy_http_version 1.1; # Use HTTP/1.1
chunked_transfer_encoding on; # Enable chunked transfer encoding
# Prevent nginx from buffering responses
proxy_set_header X-Accel-Buffering no;
# Timeout settings - SSE requires long-lived connections
proxy_connect_timeout 60s;
proxy_send_timeout 1800s; # 30 minutes send timeout
proxy_read_timeout 1800s; # 30 minutes read timeout
# Set correct headers for SSE
add_header Cache-Control 'no-cache';
add_header X-Accel-Buffering 'no';
}
# Backend API proxy - proxy /console-api path to console-hub
location /console-api/ {
proxy_pass http://console-hub:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# Timeout settings
proxy_connect_timeout 30s;
proxy_send_timeout 30s;
proxy_read_timeout 30s;
}
# Frontend application proxy - default proxy to console-frontend
location / {
proxy_pass http://console-frontend:1881;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# Timeout settings
proxy_connect_timeout 30s;
proxy_send_timeout 30s;
proxy_read_timeout 30s;
}
# Health check
location /nginx-health {
access_log off;
return 200 "nginx is healthy\n";
add_header Content-Type text/plain;
}
}
# Casdoor HTTPS endpoint (same cert, different port)
server {
listen 8000 ssl http2;
server_name localhost;
ssl_certificate /etc/nginx/certs/localhost.pem;
ssl_certificate_key /etc/nginx/certs/localhost-key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
location / {
proxy_pass http://casdoor:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
}
支持。
导入文件要求:格式为 yml / yaml,大小不超过 20M。上传其他格式或超过限制会被前端直接拦截并给出提示。
平台没有内置的“文件解析节点”,开始节点收到的文件变量需要交给有执行能力的节点去处理,常见三条路线:
在 Agent 能力配置页的 Skill 模块中导入技能后,运行时会为每个技能生成两个工具:
read_skill_*:读取技能包内容。首次调用传空参数会读到 SKILL.md 并拿到资源清单;如果 SKILL.md 里引用了相对路径(例如 references/beijing.md),再带上该路径调用即可读取对应文件。不需要沙箱。run_skill_*:在已配置的脚本沙箱中执行技能包里的命令,并返回执行结果。需要管理员先在资源管理中配置脚本沙箱,否则运行时会明确提示“当前环境未配置脚本沙箱”。两个常见误解:
SKILL.md 的描述行动。SKILL.md 中写清楚何时调用哪个脚本;模型是按 SKILL.md 的说明来决定行为的。关键是把它暴露成一个平台容器能访问到的完整 URL,然后在 MCP/工具配置里填写该地址:
0.0.0.0,不要只绑 127.0.0.1,否则容器内访问不到。http://10.0.0.12:8080/sse 或 https://mcp.example.com/mcp。localhost 指的是容器自身,不是宿主机。前端资源是构建进镜像的,改完源码需要重新构建镜像并替换正在运行的镜像,只重启容器不会生效:
build 目录下的 Dockerfile 重新构建镜像;up -d 使新镜像生效。后端(Java / Python 服务)的定制同理,各服务都可以按自己的 Dockerfile 重新出镜像。如果改动只覆盖了一部分文案,通常是还有其他模块(例如后端返回的文案或另一个前端子应用)没有一并重建。
agent.xfyun.cn):官方托管的商业服务,账号体系、额度与开源自建版彼此独立,网页版的会员额度不能用于私有化部署实例。三者代码同源但环境隔离,账号、数据、额度都不互通。
不需要。新版本中 Agent 内置的 AI 能力已经与讯飞开放平台解耦,只需在 .env 中配置任意 OpenAI 协议兼容模型的 URL 和 Key,即可自动调用该模型完成一句话创建。
点击左下角的用户头像,在弹出菜单中点击「EN」即可切换到英文界面,再次操作可切回中文。
调试运行结束后,点击对应节点右上角的绿色箭头,会展开「运行结果」面板,可以看到该节点的输入、原始输出和输出三段内容,便于定位是哪个节点的数据不对。
打开代码节点配置面板底部的「异常处理」开关,把「超时时间」调整为合理值,并按需设置重试次数与异常处理方式。
发布前需要先补全工作流的基本信息:进入工作流编排页,在左上角填写工作流名称等必填信息,再点右上角的「发布」。基本信息不完整时,发布会失败或点击后没有响应。
注意:应用绑定后无法修改,请谨慎选择。调用时鉴权头格式为 Authorization: Bearer {API_KEY}:{API_SECRET}。
目前暂不支持原生多模态大模型的视觉输入,可以通过插件广场中的「图片理解」「文生图」等插件实现相关能力;原生多模态支持将在后续版本推出。
docker-compose.yaml 中取消 elasticsearch、kibana、kafka、logstash 四个组件容器的注释。KAFKA_ENABLE 置为 1。工作流中的标准 HTTP 插件节点默认请求体为 JSON Object(键值对)。如果外部接口强制要求顶层为数组(例如 [{"skuId": ...}]),建议改用代码节点:用一小段 Python 直接构建所需的数组结构并发起请求,从而绕过插件的结构限制。
openapi-service 服务的日志定位具体报错。docker compose pull 将 openapi-service 镜像更新到最新版本后重启。.env 中的 HOST_BASE_ADDRESS 配置正确(远程部署时应为公网 IP / 域名,而非 localhost)。docker compose -f docker-compose-with-auth-rpa.yaml up -d 启动,该 compose 文件会同时拉起 Agent 与 RPA 后端服务,无需额外配置。resources 中的配置文件指向你的 RPA 服务端地址,然后即可在客户端编排并执行机器人。两种:
docker/ragflow 目录下的脚本部署,然后通过 RAGFLOW_* 等环境变量接入。两种方式的详细步骤参见部署文档 docs/zh/DEPLOYMENT_GUIDE_WITH_AUTH.md。
前端统一按 Markdown 格式标准进行解析与渲染,因此智能体输出时按 Markdown 语法组织内容即可正确显示。