HarmonyOS7之鸿蒙AI Agent 工具DevEco Code中的配置详解

📅 2026/7/30 3:42:01
HarmonyOS7之鸿蒙AI Agent 工具DevEco Code中的配置详解
本文章带你详细了解一下DevEco Code 中的配置您可以使用 JSON 配置文件来配置 DevEco Code。格式DevEco Code 支持JSON和JSONC带注释的 JSON格式。{ $schema: https://opencode.ai/config.json, model: deveco/glm-5.1, autoupdate: true, server: { port: 4096, }, }位置您可以将配置放置在不同的位置它们具有不同的优先级顺序。Note配置文件是合并在一起的而不是替换。配置文件是合并在一起的而不是被替换。来自以下配置位置的设置会被合并。后面的配置仅在键冲突时覆盖前面的配置。所有配置中的非冲突设置都会被保留。例如如果您的全局配置设置了autoupdate: true而您的项目配置设置了model: deveco/glm-5.1则最终配置将包含这两个设置。优先级顺序配置源按以下顺序加载后面的源覆盖前面的源远程配置来自.well-known/deveco- 组织默认值全局配置~/.config/deveco/deveco.json- 用户偏好自定义配置DEVECO_CONFIG环境变量- 自定义覆盖项目配置项目中的deveco.json- 项目特定设置.deveco目录- 代理、命令、插件内联配置DEVECO_CONFIG_CONTENT环境变量- 运行时覆盖这意味着项目配置可以覆盖全局默认值全局配置可以覆盖远程组织默认值。Note.deveco和~/.config/deveco目录的子目录使用复数名称agents/、commands/、modes/、plugins/、skills/、tools/和themes/。为了向后兼容也支持单数名称例如agent/。远程组织可以通过.well-known/deveco端点提供默认配置。当您使用支持该功能的提供商进行身份验证时会自动获取此配置。远程配置最先加载作为基础层。所有其他配置源全局、项目都可以覆盖这些默认值。例如如果您的组织提供了默认禁用的 MCP 服务器{ mcp: { jira: { type: remote, url: https://jira.example.com/mcp, enabled: false } } }您可以在本地配置中启用特定服务器{ mcp: { jira: { type: remote, url: https://jira.example.com/mcp, enabled: true } } }全局将全局 DevEco Code 配置放在~/.config/deveco/deveco.json中。使用全局配置来设置用户级别的偏好例如主题、提供商或快捷键。全局配置覆盖远程组织默认值。项目级在项目根目录中添加deveco.json。项目配置在标准配置文件中具有最高优先级——它会覆盖全局配置和远程配置。Tip将项目特定配置放在项目的根目录中。当 DevEco Code 启动时它会在当前目录中查找配置文件或向上遍历到最近的 Git 目录。该配置文件也可以安全地提交到 Git 中并使用与全局配置相同的 Schema。自定义路径使用DEVECO_CONFIG环境变量指定自定义配置文件路径。export DEVECO_CONFIG/path/to/my/custom-config.json deveco run Hello world自定义配置在优先级顺序中位于全局配置和项目配置之间加载。自定义目录使用DEVECO_CONFIG_DIR环境变量指定自定义配置目录。该目录会像标准.deveco目录一样被搜索代理、命令、模式和插件并且应遵循相同的结构。export DEVECO_CONFIG_DIR/path/to/my/config-directory deveco run Hello world自定义目录在全局配置和.deveco目录之后加载因此可以覆盖它们的设置。Schema配置文件具有在 opencode.ai/config.json 中定义的 Schema。您的编辑器应该能够基于该 Schema 进行验证和自动补全。TUI您可以通过tui选项配置 TUI 相关设置。{ $schema: https://opencode.ai/config.json, tui: { scroll_speed: 3, scroll_acceleration: { enabled: true }, diff_style: auto } }可用选项scroll_acceleration.enabled- 启用 macOS 风格的滚动加速。优先于scroll_speed。scroll_speed- 自定义滚动速度倍率默认值3最小值1。如果scroll_acceleration.enabled为true则忽略此选项。diff_style- 控制差异渲染方式。auto根据终端宽度自适应stacked始终显示单列。在此了解更多关于 TUI 的信息。服务器您可以通过server选项为deveco serve命令配置服务器设置。{ $schema: https://opencode.ai/config.json, server: { port: 4096, hostname: 0.0.0.0, mdns: true, mdnsDomain: myproject.local, cors: [http://localhost:5173] } }可用选项port- 监听端口。hostname- 监听主机名。当mdns启用且未设置主机名时默认为0.0.0.0。mdns- 启用 mDNS 服务发现。这允许网络上的其他设备发现您的 DevEco Code 服务器。mdnsDomain- mDNS 服务的自定义域名。默认为deveco.local。适用于在同一网络上运行多个实例的场景。cors- 从基于浏览器的客户端使用 HTTP 服务器时允许 CORS 的额外来源。值必须是完整的来源协议 主机 可选端口例如https://app.example.com。工具您可以通过tools选项管理 LLM 可以使用的工具。{ $schema: https://opencode.ai/config.json, tools: { write: false, bash: false } }在此了解更多关于工具的信息。模型您可以通过provider、model和small_model选项在 DevEco Code 配置中设置要使用的提供商和模型。{ $schema: https://opencode.ai/config.json, provider: {}, model: deveco/glm-5.1, small_model: deveco/glm-5.1 }small_model选项为标题生成等轻量级任务配置单独的模型。默认情况下如果您的提供商有更便宜的模型可用DevEco Code 会尝试使用该模型否则会回退到您的主模型。提供商选项可以包括timeout和setCacheKey{ $schema: https://opencode.ai/config.json, provider: { anthropic: { options: { timeout: 600000, setCacheKey: true } } } }timeout- 请求超时时间单位为毫秒默认值300000。设置为false可禁用超时。setCacheKey- 确保始终为指定提供商设置缓存键。您还可以配置本地模型。了解更多。提供商特定选项一些提供商支持除通用timeout和apiKey设置之外的额外配置选项。Amazon BedrockAmazon Bedrock 支持 AWS 特定配置{ $schema: https://opencode.ai/config.json, provider: { amazon-bedrock: { options: { region: us-east-1, profile: my-aws-profile, endpoint: https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com } } } }region- Bedrock 的 AWS 区域默认为AWS_REGION环境变量或us-east-1profile- 来自~/.aws/credentials的 AWS 命名配置文件默认为AWS_PROFILE环境变量endpoint- VPC 端点的自定义端点 URL。这是通用baseURL选项使用 AWS 特定术语的别名。如果两者都指定endpoint优先。NoteBearer TokenAWS_BEARER_TOKEN_BEDROCK或/connect优先于基于配置文件的身份验证。详情请参见身份验证优先级。了解更多关于 Amazon Bedrock 配置的信息。主题您可以通过 DevEco Code 配置中的theme选项设置要使用的主题。{ $schema: https://opencode.ai/config.json, theme: }在此了解更多。代理您可以通过agent选项为特定任务配置专用代理。{ $schema: https://opencode.ai/config.json, agent: { code-reviewer: { description: Reviews code for best practices and potential issues, model: deveco/glm-5.1, prompt: You are a code reviewer. Focus on security, performance, and maintainability., tools: { // Disable file modification tools for review-only agent write: false, edit: false, }, }, }, }您还可以使用~/.config/deveco/agents/或.deveco/agents/中的 Markdown 文件定义代理。在此了解更多。默认代理您可以使用default_agent选项设置默认代理。当未明确指定代理时将使用该默认代理。{ $schema: https://opencode.ai/config.json, default_agent: plan }默认代理必须是主代理不能是子代理。可以是内置代理如build或plan也可以是您定义的自定义代理。如果指定的代理不存在或是子代理DevEco Code 将回退到build并发出警告。此设置适用于所有界面TUI 和 CLIdeveco run。命令您可以通过command选项为重复任务配置自定义命令。{ $schema: https://opencode.ai/config.json, command: { test: { template: Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes., description: Run tests with coverage, agent: build, model: deveco/glm-5.1, }, component: { template: Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure., description: Create a new component, }, }, }您还可以使用~/.config/deveco/commands/或.deveco/commands/中的 Markdown 文件定义命令。在此了解更多。快捷键您可以通过keybinds选项自定义快捷键。{ $schema: https://opencode.ai/config.json, keybinds: {} }在此了解更多。自动更新DevEco Code 启动时会自动下载新版本。您可以使用autoupdate选项禁用此功能。{ $schema: https://opencode.ai/config.json, autoupdate: false }如果您不想自动更新但希望在新版本可用时收到通知可将autoupdate设置为notify。请注意此功能仅在未通过 Homebrew 等包管理器安装时有效。格式化程序您可以通过formatter选项配置代码格式化程序。{ $schema: https://opencode.ai/config.json, formatter: { prettier: { disabled: true }, custom-prettier: { command: [npx, prettier, --write, $FILE], environment: { NODE_ENV: development }, extensions: [.js, .ts, .jsx, .tsx] } } }权限默认情况下DevEco Code允许所有操作无需明确批准。您可以使用permission选项更改此行为。例如要让edit和bash工具需要用户确认{ $schema: https://opencode.ai/config.json, permission: { edit: ask, bash: ask } }在此了解更多关于权限的信息。压缩您可以通过compaction选项控制上下文压缩行为。{ $schema: https://opencode.ai/config.json, compaction: { auto: true, prune: false, reserved: 10000 } }auto- 当上下文已满时自动压缩会话默认值true。prune- 删除旧的工具输出以节省 Token默认值false。reserved- 压缩时的 Token 缓冲区。保留足够的窗口以避免压缩过程中溢出。文件监视器您可以通过watcher选项配置文件监视器的忽略模式。{ $schema: https://opencode.ai/config.json, watcher: { ignore: [node_modules/**, dist/**, .git/**] } }模式遵循 glob 语法。使用此选项可以从文件监视中排除频繁变动的目录。MCP 服务器您可以通过mcp选项配置要使用的 MCP 服务器。{ $schema: https://opencode.ai/config.json, mcp: {} }在此了解更多。插件插件通过自定义工具、钩子和集成来扩展 DevEco Code。将插件文件放置在.deveco/plugins/或~/.config/deveco/plugins/中。您还可以通过plugin选项从 npm 加载插件。{ $schema: https://opencode.ai/config.json, plugin: [opencode-helicone-session, my-org/custom-plugin] }在此了解更多。指令您可以通过instructions选项为所使用的模型配置指令。{ $schema: https://opencode.ai/config.json, instructions: [CONTRIBUTING.md, docs/guidelines.md, .cursor/rules/*.md] }该选项接受指令文件路径和 glob 模式的数组。在此了解更多关于规则的信息。禁用提供商您可以通过disabled_providers选项禁用自动加载的提供商。当您希望阻止某些提供商被加载即使其凭据可用时此选项非常有用。{ $schema: https://opencode.ai/config.json, disabled_providers: [openai, gemini] }Notedisabled_providers优先于enabled_providers。disabled_providers选项接受提供商 ID 的数组。当某个提供商被禁用时即使设置了环境变量也不会被加载。即使通过/connect命令配置了 API 密钥也不会被加载。该提供商的模型不会出现在模型选择列表中。启用提供商您可以通过enabled_providers选项指定允许使用的提供商白名单。设置后仅启用指定的提供商所有其他提供商将被忽略。{ $schema: https://opencode.ai/config.json, enabled_providers: [anthropic, openai] }当您希望限制 DevEco Code 仅使用特定提供商而不是逐一禁用其他提供商时此选项非常有用。Notedisabled_providers优先于enabled_providers。如果某个提供商同时出现在enabled_providers和disabled_providers中为了向后兼容disabled_providers优先。实验性功能experimental键包含正在积极开发中的选项。{ $schema: https://opencode.ai/config.json, experimental: {} }⚠️Caution实验性选项不稳定。它们可能会在不另行通知的情况下被更改或移除。变量您可以在配置文件中使用变量替换来引用环境变量和文件内容。环境变量使用 来替换环境变量{ $schema: https://opencode.ai/config.json, model: {env:DEVECO_MODEL}, provider: { anthropic: { models: {}, options: { apiKey: {env:ANTHROPIC_API_KEY} } } } }如果环境变量未设置它将被替换为空字符串。文件使用 来替换文件内容{ $schema: https://opencode.ai/config.json, instructions: [./custom-instructions.md], provider: { openai: { options: { apiKey: {file:~/.secrets/openai-key} } } } }文件路径可以是相对于配置文件所在目录的路径以/或~开头的绝对路径这些功能适用于将 API 密钥等敏感数据保存在单独的文件中。引入大型指令文件而不会使配置变得杂乱。在多个配置文件之间共享通用配置片段。