⚡ 配置速查
以下表格的属性均以 liteflow.agent. 开头;时间值使用 60s、2m 等带单位写法。Spring Boot 的 properties 与 YAML 写法等价。
# 常用设置
这一节以及后续存储、工作区配置主要用于对话 Agent。独立的 Jev 选择组件使用本页“Jev 选择组件”一节的配置,不要求配置会话或工作区。
| 配置 | 默认值 | 用途 |
|---|---|---|
application-name | Spring Boot 中取 spring.application.name | 区分应用数据,必须有值并保持稳定 |
execution-timeout | 10m | 一次 Agent 执行的时限,包含模型、工具和等待审批;不含等锁及首次构建,失败清理可能额外耗时;必须为正 |
max-iterations | 100 | 推理与工具调用的循环上限;必须为正 |
execution-log-enabled | true | 是否输出 Agent 执行日志 |
conversation-history-enabled | true | 是否自动记录聊天历史;关闭不影响模型续聊状态的保存 |
event.listener-failure-mode | FAIL_FAST | 监听器异常时中断;LOG_AND_CONTINUE 记录后继续 |
未使用 Spring Boot 属性绑定时,可通过 LiteflowConfig#setAgent(AgentConfig) 设置;配置类位于 com.yomahub.liteflow.property.agent。应在首次调用前完成配置,修改已有配置对象不会自动重建全部运行时资源。
# 存储设置
| 配置 | 默认值 | 用途 |
|---|---|---|
session-store.type | JSON | JSON、REDIS、MYSQL 三选一 |
session-store.json-root | ./data/agent-state | JSON 状态和历史目录 |
session-store.json-workspace-root | <json-root>/workspace | JSON 工作区独立目录 |
session-store.failure-policy | FAIL_FAST | 存储加载失败策略;LOG_AND_CONTINUE 仅放宽部分延迟加载检查,不会忽略连接、保存等直接异常,也不会自动换后端 |
session-store.redis.uri | 未设置 | Redis URI,与客户端 Bean 二选一 |
session-store.redis.client-bean-name | 未设置 | 已有客户端 Bean 名,与 URI 二选一 |
session-store.redis.key-prefix | agentscope:session: | Redis 数据前缀;各实例应一致 |
session-store.mysql.jdbc-url | 未设置 | JDBC 连接,与 DataSource Bean 二选一 |
session-store.mysql.username | 未设置 | JDBC 模式的账号 |
session-store.mysql.password | 未设置 | JDBC 模式的密码 |
session-store.mysql.data-source-bean-name | 未设置 | 已有 DataSource Bean 名 |
session-store.mysql.database-name | agentscope | 实际保存数据的数据库,不从 JDBC URL 推断 |
session-store.mysql.table-name | agentscope_sessions | 状态与历史表;另有 _workspace 后缀表 |
session-store.mysql.create-if-not-exist | false | 是否创建库表,开启需对应权限 |
# 执行环境设置
| 配置 | 默认值 | 用途 |
|---|---|---|
harness.filesystem-backend | GUARDED_LOCAL | 本地;可选 DOCKER。CUSTOM 需实现 filesystemConfigurer(),且不能搭配 Redis/MySQL |
harness.local.workspace-root | 未设置 | 本地命令目录;开启本地 Shell 时必填 |
harness.shell.mode | WHITELIST | 允许白名单命令;DISABLED 与仍开启 Shell 的组件冲突。关闭工具请覆写 enableShellTool() |
harness.shell.whitelist | 下方列表 | 自定义值替换默认列表;开启 Shell 时不能为空 |
harness.shell.timeout | 1m | 单条命令时限;本地至少 1ms,Docker 至少 1s |
harness.docker.image | ubuntu:22.04 | 镜像。基础镜像不保证带有所需解释器,应准备业务镜像 |
harness.docker.workspace-root | /workspace | 容器内可写的工作目录 |
harness.docker.memory-size-bytes | 536870912 | 内存上限,512 MiB,正整数 |
harness.docker.cpu-count | 1 | CPU 配额,当前只接受正整数 |
harness.docker.network | NONE | NONE、BRIDGE、HOST;HOST 行为取决于部署平台 |
harness.docker.snapshot-root | 未设置 | JSON+Docker 的快照目录;Redis/MySQL 不设置 |
harness.docker.lifecycle | PER_CALL | 每次回收;SESSION_IDLE 按会话复用 |
harness.docker.idle-timeout | 10m | 空闲回收时限,必须为正 |
harness.docker.eviction-interval | 30s | 回收检查间隔,至少 1ms |
harness.docker.max-cached-sandboxes | 8 | 每个组件运行时的容器缓存数量,必须为正 |
harness.docker.workspace-projection-enabled | true | 是否把静态资料复制到容器 |
harness.docker.workspace-projection-roots | AGENTS.md,skills,subagents,knowledge,.skills-cache | 要复制的相对路径;自定义列表替换默认列表,禁止越界路径 |
默认命令白名单:
sh, bash, python, python3, node, git, npm, npx, java, javac, mvn, gradle,
mkdir, cp, mv, rm, touch, chmod, ls, find, tree, stat, file, basename, dirname, pwd, which,
cat, head, tail, grep, sed, awk, wc, sort, uniq, cut, tr, diff, echo, printf, expr,
date, whoami, hostname, uname, env, df, du, ps, md5sum, sha256sum, jq, curl, wget
这些配置不提供任意 Docker volumes、端口发布或环境变量映射。需要的容器环境与依赖应准备在镜像中。静态资料投影是复制,不是挂载。
# Skills、记忆与调用协调
| 配置 | 默认值 | 用途 |
|---|---|---|
skills.enabled | false | 开启配置目录中的技能 |
skills.path | ./skills | 文件系统目录或 classpath: 资源目录 |
skills.strict | true | 保留字段,当前不影响运行时行为 |
harness.compaction-threshold | 0.8 | 已知模型容量时的压缩触发比例,取值大于 0、小于 1 |
harness.compaction-fallback-context-window | 524288 | 无法识别容量时使用的 Token 估值,必须为正;自建模型建议显式提供真实容量 |
harness.compaction-fallback-threshold | 0.9 | 使用估值时的触发比例,取值大于 0、小于 1 |
harness.memory.flush-mode | NEVER | 逐轮长期记忆提取模式,可选 ALWAYS、THROTTLED |
harness.memory.flush-min-gap | 5m | 节流提取的最小间隔,必须为正 |
hitl.confirmation-timeout | 2m | 等待一轮人工确认的时限,必须为正 |
hitl.fail-on-denied-tool | false | 人工拒绝后是否直接使调用失败 |
toolkit.parallel | false | 当前组件装配强制串行,设置为 true 不会启用并行 |
invocation-guard.mode | AUTO | 按存储选择协调方式;LOCAL 仅 JVM 内,BEAN 使用自定义实现 |
invocation-guard.bean-name | 未设置 | BEAN 模式必填,类型为 AgentInvocationGuard |
invocation-guard.acquire-timeout | 2m | 每次获取会话锁的等待时限,必须为正 |
invocation-guard.lease-duration | 2m | Redis 锁租约,至少 300ms;不控制聊天记录过期 |
压缩会为输出预留空间,比例按可用输入预算计算。无法自动识别模型容量时,优先设置模型 Spec 的 contextWindow(...),不要靠提高压缩阈值解决超出模型上限的问题。
# Jev 选择组件
这些属性只在使用 liteflow-agent-jev 时生效,与聊天模型平台凭据独立。
| 配置 | 默认值 | 用途 |
|---|---|---|
jev.provider | typesafe | 支持 typesafe、openrouter、laya;未知值在 Spring Boot 属性绑定时失败 |
jev.api-key | 未设置 | typesafe、openrouter 必填,填写所选 provider 的凭据;laya 仅当服务端设置 LAYA_API_KEY 时填写相同的值,其余情况留空;其他组件不需要填写 |
jev.base-url | 随 provider 选择 | typesafe:https://api.typesafe.ai/v1,追加 /systemone;openrouter:https://openrouter.ai/api/alpha,追加 /decisions;laya:http://127.0.0.1:8000/v1,追加 /systemone |
jev.model | 随 provider 选择 | typesafe:jev-1.13.0;openrouter:typesafe/jev-1.13;laya:auto,由其路由器按语言选择 checkpoint,可显式填 english、multilingual、typed-decisions |
jev.timeout | 3s | 完整 HTTP 响应的等待时限,包含响应体读取,至少 1ms |
jev.min-confidence | 0.6 | 0~1,低于此值进入 DEFAULT;组件可通过 minConfidence() 覆写 |
jev.noul-threshold | 0.5 | 0~1,Noul 概率达到此值(含)走 IF 的 true 分支;组件可通过 probabilityThreshold() 覆写;自 2.16.3 起 |
base-url、model 未设置或为空白时才使用 provider 默认值,显式配置不会随 provider 切换而重置。base-url 填 API 根地址,不含 /systemone 或 /decisions 接口路径;OpenRouter 使用 Decisions API,不使用聊天接口。laya 指向本地自托管的 laya-serve 服务(pip install "laya[serve]" 后运行 laya-serve),首次加载模型时自动从 Hugging Face 下载 checkpoint。
对应配置类为 com.yomahub.liteflow.property.agent.JevConfig,通过 AgentConfig#getJev() 获取;Java 中使用 JevProvider.TYPESAFE、OPENROUTER 或 LAYA。置信度与选项概率不同,阈值需要按业务数据校准。使用方式见 Jev 依赖与配置。
# 平台凭证
liteflow.agent.openai.api-key=${OPENAI_API_KEY}
liteflow.agent.anthropic.api-key=${ANTHROPIC_API_KEY}
liteflow.agent.gemini.api-key=${GEMINI_API_KEY}
liteflow.agent.dashscope.api-key=${DASHSCOPE_API_KEY}
liteflow.agent.openai-compatible.deepseek.api-key=${DEEPSEEK_API_KEY}
以上按使用的平台选择,不必全部填写。各平台支持 api-key 和 base-url,代码中的同名链式设置优先;自定义兼容平台必须提供基础地址。extra.* 是预留字段,内置适配器不读取。



