ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Ekko Agent 1Password CLI 技能实战:`op` 秘密引用、命令注入与安全配置模板化

Ekko Agent 1Password CLI 技能实战:`op` 秘密引用、命令注入与安全配置模板化 AI 应用人工智能AI Agent本地部署前端后端工作流自动化【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址https://gitcode.com/gh_mirrors/he/ekko-studio点击查看免费下载本文聚焦 Ekko AgentEkko Studio 的 TypeScript Agent 运行时内置的1passwordSkill讲解如何借助官方opCLI 完成认证、秘密引用secret reference、命令注入command injection与安全配置模板化。读完本文你将掌握三种认证模式的选用条件、六步标准工作流程、op run/op inject/op read的安全调用范式以及一套秘密永不进入模型上下文、终端输出、日志、聊天记录、shell 历史或提交文件的硬性护栏并理解这些规则在仓库源码层面的落地方式。技能概览与加载机制1passwordSkill 位于仓库的 packages/ekko-agent/skills/1password/是一个以SKILL.md为入口、附带两份参考文档的完整技能包SKILL.md主文档定义技能用途、标准工作流程、三种认证模式与安全护栏references/get-started.md前置条件、平台差异与连接行为说明references/cli-examples.md可复制的安全命令模式集。每个 Skill 的SKILL.md使用 YAML frontmatter 声明元数据。1password技能的 frontmatter 如下--- name: 1password description: Set up and use 1Password CLI for authentication, secret references, command injection, and safe configuration templating. metadata: keywords: - op cli - secret injection - secret reference ---从源码结构看Ekko Agent 会按目录扫描并同步这些内置技能EkkoDirectoryManager在 packages/ekko-agent/src/directories.ts 中通过synchronizeProfileSkills与checkProfileSkills将内置 Skill 目录同步到.ekko/skills下的 Profile 目录判定条件是目录内存在可读的SKILL.md。Agent 侧则通过skill_view/skill_manage/skill_list等工具消费技能内容AgentSkill类型id、name、description、instructions定义在 packages/ekko-agent/src/skills/types.ts技能管理入口EkkoSkillManager.view()在 packages/ekko-agent/src/skills/manager.ts 中直接调用skill_view工具。值得注意的还有运行时自动路由机制在 packages/ekko-agent/src/runtime/runtime.ts当模型消息命中技能关键词后运行时会自动构造skill_view工具调用把匹配的SKILL.md内容注入后续上下文——也就是说模型在对话中一旦谈到注入秘密op CLI1password技能的完整指令就会按需被加载护栏随之生效。核心原则秘密永不进入模型上下文技能的第一原则非常直白优先采用秘密永远不出现的工作流。所谓不出现的位置包括五类模型上下文model context终端输出terminal output日志logs聊天记录chatshell 历史shell history以及提交进版本库的文件committed file。所有后续的命令模式与护栏都是围绕这一原则展开的不打印秘密、不把密码或一次性验证码发到聊天中、不用打印秘密来证明权限、注入文件默认持久化且有严格清理要求。前置条件与平台差异参考 references/get-started.md使用前需确认以下条件平台支持opCLI 支持 macOS、Windows、Linux桌面集成要求 1Password 订阅、桌面应用且账户已解锁并登录macOS开启Settings Developer Integrate with 1Password CLITouch ID 可选Windows先启用 Windows Hello再开启Settings Developer Integrate with 1Password CLILinux桌面集成依赖 PolKit 与认证代理。需在Settings Security下启用系统认证再在Settings Developer下启用 CLI 集成多账号配置了多个账户时用--account或OP_ACCOUNT显式指定独立登录可能需要先执行op account add添加账户。关于连接行为的底层机制文档明确指出桌面集成使用每用户 IPC 通道——macOS 是 XPCLinux 是 Unix-domain socketWindows 是 named pipe。因此op必须直接在 Agent 的终端环境里运行而 tmux 子 shell 可能无法继承对该通道的访问权。服务账户依赖OP_SERVICE_ACCOUNT_TOKEN不依赖桌面 IPC独立交互式登录会返回一个OP_SESSION_*环境变量导出该变量只在执行并保留它的那个 shell 中有效。标准工作流程SKILL.md定义了六步标准流程任何秘密消费操作之前都应走完确认操作系统与 shell决定认证方式与命令语法验证 CLI 存在且可用不安装任何东西op --version识别当前认证模式存在OP_SERVICE_ACCOUNT_TOKEN→ 服务账户通常用于 CI 或无头环境已启用 1Password 桌面集成 → 使用正在运行且已解锁的桌面应用两者皆不满足 → 需要独立交互式登录验证访问权限在秘密消费操作前先执行op whoami多账号场景使用--account或已配置的OP_ACCOUNT优先op run或op inject仅当输出可以被安全消费而不暴露时才用op read。如果op不存在或认证未配置技能要求说明确切的前置条件并指向官方 1Password CLI 文档。严禁静默安装 CLI、要求用户把密码或令牌粘贴进聊天、凭空捏造凭据、或在工具参数中放置秘密。三种认证模式详解服务账户Service account服务账户由用户在对话之外、Agent 命令历史之外配置OP_SERVICE_ACCOUNT_TOKENAgent 不得打印或检查其值。验证方式op whoami op vault list服务账户的访问权限仅限于其被授权的保险库vault且不依赖桌面应用。桌面应用集成Desktop app integration直接运行op使其能够触达每用户桌面集成通道op vault list op whoami第一次调用可能触发 Touch ID、Windows Hello 或系统认证。如果 CLI 无法连接应请用户打开并解锁 1Password确认 CLI 集成已启用。不要试图通过把该模式移入 tmux 来绕开通道问题——如前所述tmux 子 shell 很可能访问不到每用户 IPC 通道。独立交互式登录Standalone interactive sign-in交互式登录会创建会话环境变量该变量必须留在同一个 shell 中。在 macOS/Linux 上仅当桌面集成与服务账户均不可用时才使用私有 tmux 会话使用前先阅读同仓库的 tmux Skill。SOCKET_DIR${EKKO_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/ekko-tmux-sockets} mkdir -p $SOCKET_DIR chmod 700 $SOCKET_DIR SOCKET$SOCKET_DIR/ekko-op.sock SESSIONop-auth-$(date %Y%m%d-%H%M%S) tmux -S $SOCKET new -d -s $SESSION -n shell /bin/sh tmux -S $SOCKET send-keys -t $SESSION:0.0 -- eval $(op signin --account my.1password.com) Enter tmux -S $SOCKET capture-pane -t $SESSION:0.0 -p -S - | tail -40这段脚本的核心思路用独立 socket 与按时间戳命名的会话把op signin的交互过程与 Agent 主终端隔离再通过capture-pane查看登录提示状态。技能强调在登录提示期间不要排队后续命令如果需要密码、MFA 挑战或账户选择暂停并让用户本地完成——通过附加到指定 socket 和会话进行绝不在聊天中索要密码或一次性验证码提示返回后向同一 pane 发送op whoami后续命令复用同一个SOCKET和SESSIONWindows 上优先桌面集成或服务账户没有明确提供的持久会话机制时不要把 POSIX tmux 流程机械翻译成 PowerShell。配套的 tmux Skill 提供了会话发现与轮询脚本find-sessions.sh 可发现包括自定义 socket 路径在内的会话wait-for-text.sh 可持续轮询 pane 输出直到匹配某个模式默认超时 15 秒、轮询间隔 0.5 秒、检查最近 1000 行历史可用-T、-i、-l调整适合等待op signin完成这类交互式流程。安全命令模式参考 references/cli-examples.md以下是经技能认可的安全调用方式。认证与账户管理op whoami op account list op signin --account shorthand-or-signin-address使用秘密引用运行命令op run将**秘密引用而不是解析后的值**保留在环境文件或环境变量中export DB_PASSWORDop://app-prod/db/password op run -- printenv SAFE_NON_SECRET_VALUE op run --env-file./.env -- your-command秘密引用采用op://vault/item/field形式的 URI。op run会在启动目标命令前解析这些引用并注入进程环境。不要通过打印含秘密的环境变量来演示成功除非用户明确需要且输出目的地安全否则避免--no-masking。模板注入op injectop inject -i config.yml.tpl -o config.yml生成的配置文件包含已解析的秘密。仅在用户明确要求持久化文件时才创建创建后要收紧权限、排除出版本控制并尽可能在完成后清理。读取单个秘密op readop read op://app-prod/db/one-time password?attributeotp op read --out-file ./key.pem op://app-prod/server/ssh/key.pemop read默认把秘密写到 stdout除非使用--out-file。仅当可信的本地消费者确实需要该值时使用且必须抑制被捕获的输出、绝不在助手回复中包含该值。输出文件与注入文件一样需要持久化秘密的全部安全措施。安全护栏GuardrailsSKILL.md明确列出六条不可逾越的护栏绝不通过聊天转发秘密值也不把秘密包含进摘要中绝不使用以打印秘密来证明访问权限的命令改用op whoami和仅含元数据的列举命令进程环境变量优先op run模板优先op inject写入注入文件或使用op read --out-file会持久化秘密材料——仅在用户明确要求时进行并需收紧权限、排除出版本控制、说明清理方式除非用户明确要求非掩码输出且目的地已知安全否则不要传--no-masking认证过期时应修复当前模式而不是在用户不知情的情况下切换认证模式。这些护栏并非孤立文本在运行时层面runtime.ts 记录skill_view工具调用时会输出技能内容与sha256哈希用于审计技能加载、校验、修复链路skill_view→skill_manage见 packages/ekko-agent/src/tools/skills.ts 的SkillManageInput定义保证了每个 Skill 的内容可被检查与校验让秘密不进上下文成为可观测、可审计的执行约束。总结1passwordSkill 为 Ekko Agent 提供了一套可执行的秘密管理范式先用op --version确认环境再按OP_SERVICE_ACCOUNT_TOKEN→ 桌面集成 → 独立登录的顺序识别认证模式用op whoami验证权限随后以op run/op inject完成注入以op read --out-file处理必须落盘的场景。其精髓在于尽量让秘密只存在于解析它的进程内而模型、终端、日志、聊天与版本库全程无感。本文所涉技能本体SKILL.md与两份参考文档get-started.md、cli-examples.md均可在仓库中直接查阅配套的 tmux Skill 提供了独立登录所需的会话与轮询脚本。赞分享AI 应用人工智能AI Agent本地部署前端后端工作流自动化【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址https://gitcode.com/gh_mirrors/he/ekko-studio点击查看免费下载相关推荐OpenClaw 1Password 技能实战op CLI 的 sign-in、read、run 与 inject 命令详解OpenClaw 1Password 技能实战op CLI 的 sign in、read、run 与 inject 命令详解 OpenClaw 仓库内置的 1AI 应用AI Agent交互助手后端即时通讯网关DLSS Swapper游戏内 DLSS 版本一键切换与备份还原的免费开源工具DLSS Swapper游戏内 DLSS 版本一键切换与备份还原的免费开源工具 DLSS Swapper 是一款免费开源的 Windows 工具负责下载、管桌面应用ChatOllama Agent CLI 实战指南可安装的终端 Agent 客户端安装、命令与配置全解析ChatOllama Agent CLI 实战指南可安装的终端 Agent 客户端安装、命令与配置全解析 chatollama agent 是 ChatOll创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表