当前位置: 首页 > article >正文

AvaKill:为AI代理构建零信任安全防护的实战指南

1. 项目概述AI代理的“安全气囊”AvaKill如果你正在开发或使用AI代理比如Claude Code、Cursor、Windsurf这类能直接操作文件、运行命令的智能助手那你一定对它们偶尔的“疯狂”行为心有余悸。我见过一个真实的案例一个用于数据库维护的代理在尝试修复一个索引问题时自作主张地执行了DROP TABLE理由是“重新创建表结构更高效”。结果可想而知。这并非孤例从误删系统文件到执行未经授权的网络操作AI代理在获得强大工具能力的同时也带来了前所未有的安全风险。传统的“提示词护栏”在工具调用层面几乎形同虚设因为一旦代理决定调用某个工具后续的执行就不再受LLM本身控制。AvaKill就是为了解决这个问题而生的。它不是一个复杂的机器学习模型也不是一个需要大量标注数据的训练系统。你可以把它理解为一个专为AI代理设计的、规则驱动的“防火墙”或“安全气囊”。它的核心思想极其简单却有效在AI代理的工具调用命令真正被执行之前插入一个检查层。这个检查层基于一份清晰定义的YAML策略文件对每一次工具调用的名称、参数内容进行毫秒级的规则匹配从而决定是放行、拒绝还是需要人工审批。我选择深度研究并实践AvaKill是因为它在设计上抓住了几个关键痛点零信任默认策略默认拒绝一切只允许明确声明的、多路径独立执行无需依赖中心化服务本地即可生效、亚毫秒级开销不影响开发体验。对于任何将AI代理集成到生产流程或敏感开发环境的团队和个人来说这都是一项值得投入的基础设施。2. 核心架构与设计哲学为什么是“三路并行”AvaKill最精妙的设计在于其“三路并行”的强制执行路径。很多安全工具会设计一个中心化的守护进程Daemon所有流量都经过它。但这带来了单点故障和性能瓶颈。AvaKill反其道而行之提供了三种可以独立工作、也可协同工作的执行路径这背后是对AI代理生态多样性和部署场景复杂性的深刻理解。2.1 钩子Hooks模式无侵入集成这是我最推荐给个人开发者的方式。AvaKill为Claude Code、Cursor、Windsurf、Gemini CLI等主流AI代理开发工具提供了原生的“钩子”。安装钩子后当这些工具内部的AI代理试图调用shell_execute、file_write这类底层函数时调用会被AvaKill的钩子代码拦截。关键实现细节这些钩子通常是利用各工具提供的插件系统或API拦截点实现的。例如对于某些基于VS Code的代理钩子可能是一个扩展它注册了一个vscode.commands.registerCommand的包装器。重要的是钩子评估策略是在代理进程内就地完成的不依赖网络或外部进程。这意味着即使你的电脑没网或者AvaKill的守护进程没开安全策略依然生效。这种“自带干粮”的设计极大地提升了可靠性。实操心得安装钩子后务必用avakill hook list命令验证状态。有时安装可能因为权限或路径问题失败这个命令能清晰地列出每个已探测到的代理及其钩子安装状态如installed,not-installed,error。2.2 MCP代理模式协议层的安全网关Model Context Protocol (MCP) 正在成为AI代理与工具、数据源通信的标准协议。Claude Desktop、Cline、Continue等工具都支持MCP。AvaKill的MCP代理模式是在MCP服务器Server和MCP客户端Client即AI代理前端之间插入一个透明代理。工作流程当AI代理客户端请求调用一个MCP工具时请求首先发往AvaKill的代理avakill-shim。代理根据策略文件评估该请求。如果允许代理将请求转发给真实的MCP服务器并将服务器的响应返回给客户端。如果拒绝代理直接返回一个模拟的“拒绝”响应给客户端并记录日志。优势这种方式可以保护任何通过MCP协议暴露的工具无论这个工具是官方的还是自定义开发的。它为基于MCP的架构提供了统一的安全层。2.3 操作系统沙箱OS Sandbox模式最后一道防线这是最彻底但也最“重”的隔离方式。AvaKill利用操作系统级别的沙箱技术Linux的Landlock/LSM macOS的sandbox-exec Windows的AppContainer来运行整个AI代理进程。原理沙箱配置文件Profile定义了进程可以访问的文件系统路径、网络权限、系统调用等。例如一个“安全阅读”沙箱可能只允许代理读取当前项目目录和/usr/share/dict/words用于拼写检查禁止任何写操作和网络访问。适用场景处理高度敏感数据即使代理被提示词注入诱导物理上也无法将数据发送到网络。运行不受信任的第三方代理你想试用一个新出的代理工具但对其代码不放心。作为钩子或MCP代理的补充实现深度防御。注意事项沙箱配置需要较高的系统知识配置不当可能导致代理功能受限或无法启动。AvaKill预置了一些常用代理如Aider, SWE-Agent的配置文件是一个很好的起点。使用avakill profile show profile_name可以仔细审查其权限限制。2.4 守护进程Daemon可选的指挥中心前三者都可以独立工作那守护进程是做什么的它是一个可选的中心化服务提供增值功能统一审计日志所有通过不同路径拦截的事件都可以汇总到守护进程的SQLite数据库中方便查询和分析。人工审批工作流当策略规则动作为require_approval时请求会被挂起等待通过avakill approve命令或未来集成的UI进行审批。策略热重载与分发在团队环境中可以更新守护进程加载的策略文件所有连接的钩子和代理会逐渐采用新策略取决于实现。监控指标收集被拒绝/允许的调用统计、高频工具等。关键设计钩子和MCP代理被设计为优先进行本地策略评估快。但它们也可以被配置为将评估请求转发给守护进程如果守护进程在运行。这实现了灵活性与功能的统一离线或追求极致性能时用独立模式需要高级功能时连接守护进程。3. 策略引擎深度解析从YAML到执行决策策略文件avakill.yaml是AvaKill的大脑。它的强大与否直接决定了安全防护的精细度。一份好的策略不仅仅是阻止危险操作更是引导AI代理安全、高效工作的蓝图。3.1 策略文件结构与评估逻辑一个基础的策略文件骨架如下version: 1.0 default_action: deny # 核心默认拒绝一切 policies: - name: allow-safe-reads tools: [file_read, Read, read_file] action: allow conditions: path_not_match: file_path: [/etc/passwd, /proc/, /sys/, *.key, *.pem] - name: block-rm-rf tools: [shell_execute, Bash] action: deny conditions: args_match: command: [rm -rf, rm -fr, rm -rf /, rm -fr /] message: 递归删除命令被阻止请明确指定要删除的文件。 - name: rate-limit-web tools: [web_search, fetch_url] action: allow rate_limit: max_calls: 5 window: 30s评估流程是“首次匹配即终止”当一个工具调用被拦截时AvaKill按顺序遍历policies列表。检查当前调用的tool名称是否匹配规则中的tools模式支持*通配符。如果匹配则检查conditions中的所有条件是否都满足。如果条件满足则立即执行该规则的actionallow, deny, require_approval并停止后续规则的匹配。如果没有规则匹配则执行default_action通常为deny。核心技巧规则的排序至关重要。应该把最具体、例外性的允许规则放在前面把宽泛的限制性规则放在中间把兜底的拒绝规则放在后面。例如先允许对./logs/目录的写操作再拒绝所有对/etc/的写操作。3.2 核心条件Conditions详解条件是策略的灵魂AvaKill提供了丰富且实用的条件类型。args_match/args_not_match 这是最常用的条件之一用于检查工具调用的参数。匹配是不区分大小写的子字符串匹配。这对于拦截危险命令非常有效。conditions: args_match: query: [DROP TABLE, DELETE FROM, TRUNCATE] command: [chmod 777, chown root:]注意它匹配的是参数字符串中包含的目标子串。所以command: [rm -rf]也会匹配到rm -rf node_modules/。这通常是我们想要的但要注意误伤。shell_safe与command_allowlist 这是针对Shell命令的“黄金组合”。shell_safe: true会阻止命令中包含未转义的特殊字符如;、、|、、、$()等防止命令注入。command_allowlist: [git, npm, python, ls, cat]只允许命令以这些可执行文件开头。它检查的是命令的第一个词token。command_allowlist: [npm]会允许npm install但拒绝sudo npm install因为第一个词是sudo。一个强大的安全Shell规则示例- name: strict-shell-for-project tools: [shell_execute] action: allow conditions: shell_safe: true command_allowlist: [git, npm, npx, python, python3, pip, pip3, ls, cat, grep, find, echo, pwd] args_not_match: command: [* /dev/sd*, *dd if*, *mkfs*] # 额外阻止一些底层磁盘操作这条规则只允许运行有限的、安全的命令且命令本身必须是“干净”的。这能将Shell操作的风险降到极低。path_match/path_not_match 用于匹配文件路径。AvaKill会智能地处理路径解析~为用户家目录。解析环境变量如$HOME。解析符号链接symlink到其真实路径。将相对路径转换为绝对路径基于当前工作目录。 这防止了通过../../../etc/passwd或符号链接来绕过路径限制的攻击。content_scan 这是一个内置的内容扫描器可以检测密钥与凭证如AWS密钥、API密钥、密码哈希的正则模式。个人身份信息PII如邮箱、电话号码、信用卡号测试数据模式。提示词注入特征一些常见的试图“越狱”或覆盖系统提示词的字符串模式。 当content_scan: true时AvaKill会扫描工具调用参数的值不是键如果发现疑似敏感信息泄露或注入尝试则触发规则。3.3 高级特性速率限制与人工审批速率限制rate_limit 防止AI代理因循环或错误而疯狂调用某个工具如网络搜索、API调用导致资源耗尽或触发风控。- name: protect-external-api tools: [call_weather_api, fetch_stock_price] action: allow rate_limit: max_calls: 60 window: 5m # 5分钟内最多60次调用速率限制器是滑动窗口式的比固定窗口更精确。它在守护进程模式下工作得最好因为需要集中计数。人工审批require_approval 这是实现“人机协同”的关键。对于高风险但有时又必要的操作如生产数据库的特定写操作、向特定外部系统发送数据可以设置为需要审批。- name: approve-production-deploy tools: [deploy_to_prod, restart_production_service] action: require_approval message: 此操作将影响生产环境需要人工批准。当此类调用被拦截时会生成一个审批请求并暂停代理的后续执行取决于代理的实现有些会超时。管理员可以使用avakill approvals list查看待处理请求并用avakill approvals grant request_id批准或拒绝。这个功能在守护进程模式下才能完全发挥作用。4. 实战部署与集成指南理解了原理我们来动手将AvaKill集成到实际工作流中。我将以最常用的“钩子模式”为例展示从零开始为Claude Code或Cursor配置安全策略的全过程。4.1 环境准备与安装首先确保你的Python环境是3.8或更高版本。强烈建议使用pipx安装这能将AvaKill及其依赖隔离在一个独立环境中避免污染你的全局Python包。# 安装pipx如果尚未安装 python3 -m pip install --user pipx python3 -m pipx ensurepath # 可能需要重启终端或 source ~/.bashrc (或 ~/.zshrc) # 使用pipx安装AvaKill pipx install avakill安装完成后运行avakill --version确认安装成功。4.2 交互式初始化设置AvaKill提供了一个非常友好的引导式设置命令这是上手的最佳方式。avakill setup这个命令会启动一个交互式向导完成以下几件大事探测已安装的代理它会自动在你的系统上寻找Claude Code、Cursor、Windsurf、Gemini CLI等工具的安装痕迹。引导创建初始策略它会展示一个包含81条规则的安全规则目录涵盖文件系统、Shell、网络、数据库等14个类别。你可以像点菜一样选择启用或禁用哪些规则。例如block-catastrophic-shell: 阻止rm -rf /、dd if/dev/random等灾难性命令。block-system-directory-writes: 阻止向/etc、/usr、/bin等系统目录写入。allow-safe-version-commands: 允许git --version、python --version等无害查询。limit-network-calls: 对curl、wget等网络工具进行速率限制。安装钩子根据你的选择它会自动为你探测到的代理安装钩子。对于Claude Code或Cursor这通常意味着在特定的用户配置目录下创建或修改一个插件配置文件。生成策略文件将所有你选择的规则以及必要的默认规则如default_action: deny写入当前目录下的avakill.yaml文件。可选启用追踪询问你是否启用活动追踪这将把拦截事件记录到本地SQLite数据库便于后续用avakill logs命令查看。整个过程清晰明了即使是对YAML或安全策略不熟悉的用户也能快速建立起一道基础防线。4.3 策略定制与调优初始化生成的avakill.yaml是一个很好的起点但每个项目和团队的需求都不同。你需要根据实际情况进行调优。场景一保护一个Web后端项目假设你的项目在~/projects/my-api使用Node.js和PostgreSQL。# 在自动生成的规则基础上添加或修改以下规则 policies: # 1. 允许项目范围内的Node和数据库操作 - name: allow-project-npm-and-db tools: [shell_execute] action: allow conditions: shell_safe: true command_allowlist: [npm, npx, node, psql, pg_dump, pg_restore] path_match: cwd: [/home/yourname/projects/my-api] # 限制只在项目目录下执行这些命令 # 2. 严格限制对数据库的写操作除了通过迁移工具 - name: block-dangerous-sql-in-project tools: [execute_sql, query_database] action: deny conditions: args_match: query: [DROP TABLE, TRUNCATE TABLE, ALTER TABLE DROP, DELETE FROM] # 注意这里没有阻止UPDATE因为业务可能需要。可以考虑对UPDATE添加require_approval。 args_not_match: query: [-- migration:] # 允许包含特定注释的SQL假设你的迁移工具会添加此标记 # 3. 允许读写项目内的特定目录但保护配置和密钥 - name: allow-project-file-access tools: [file_write, file_read] action: allow conditions: path_match: file_path: [/home/yourname/projects/my-api/src/**, /home/yourname/projects/my-api/tests/**, /home/yourname/projects/my-api/package.json, /home/yourname/projects/my-api/*.config.js] path_not_match: file_path: [**/.env*, **/secrets.*, **/*.key, **/config/production.*] # 这条规则允许在src和tests目录下自由读写允许修改package.json和配置文件 # 但明确禁止触碰任何看起来像环境变量或密钥的文件。场景二数据分析和脚本编写环境假设你主要用AI代理帮助写Python数据分析脚本需要访问数据文件但必须防止数据泄露。policies: - name: allow-python-data-science tools: [shell_execute] action: allow conditions: shell_safe: true command_allowlist: [python, python3, pip, pip3, pandas, jupyter, curl, wget] # 允许必要的科学计算和包管理命令以及有限的网络下载用于获取数据 - name: block-data-exfiltration tools: [shell_execute] action: deny conditions: args_match: command: [curl -X POST, wget --post-data, scp, nc , netcat, * /dev/tcp/*] # 阻止可能用于数据外传的命令模式 message: 疑似数据外传操作被阻止。如需传输数据请使用批准的云存储客户端。 - name: scan-output-for-pii tools: [*] # 匹配所有工具 action: deny conditions: content_scan: true # 此规则应放在较后位置。它会扫描任何工具调用参数中的敏感信息。4.4 验证与测试策略编写或修改策略后不要直接投入使用。先用avakill validate命令检查YAML语法。avakill validate avakill.yaml然后使用avakill evaluate命令进行模拟测试。这是排查策略问题的利器。# 测试一个危险的rm命令 echo {tool: shell_execute, args: {command: sudo rm -rf /home/user/projects}} | avakill evaluate --policy avakill.yaml # 预期输出deny: Matched rule block-catastrophic-shell # 测试一个允许的git命令 echo {tool: shell_execute, args: {command: git status}} | avakill evaluate --policy avakill.yaml # 预期输出allow: Matched rule allow-safe-version-commands (或你定义的允许规则) # 测试一个需要审批的数据库操作 echo {tool: execute_sql, args: {query: UPDATE users SET email\\testexample.com\\ WHERE id1;}} | avakill evaluate --policy avakill.yaml # 如果对应规则是require_approval输出会提示需要审批。通过设计一系列正面和负面的测试用例你可以确保策略按预期工作既不会过度阻止合法操作也不会漏掉危险行为。4.5 集成到CI/CD或团队共享对于团队项目你需要确保所有成员使用相同的安全策略。将avakill.yaml纳入版本控制将其提交到项目仓库的根目录或.devcontainer、.vscode等目录下。在项目README或入门指南中说明要求新成员在克隆项目后运行avakill setup --policy ./avakill.yaml来加载项目特定的策略。setup命令在检测到已有策略文件时会询问是否使用它。使用策略签名高级为了防止策略文件被恶意篡改AvaKill支持使用Ed25519密钥对策略进行签名和验证。# 生成密钥对妥善保管私钥 avakill keygen # 用私钥签名策略 avakill sign avakill.yaml --key-path private.key # 在CI或部署脚本中验证签名 avakill verify avakill.yaml --key-path public.key如果验证失败说明文件被修改可以中止流程。5. 故障排查、监控与高级技巧即使配置得当在实际使用中也可能遇到各种问题。以下是我在实践中总结的常见问题与解决方案。5.1 常见问题速查表问题现象可能原因排查步骤与解决方案AI代理完全无法执行任何命令1. 策略default_action为deny且没有匹配的allow规则。2. 钩子安装成功但策略文件路径不对或为空。1. 运行avakill evaluate测试一个简单命令如{tool:shell_execute,args:{command:pwd}}看输出是否为deny: No matching rule。这说明缺少允许规则。2. 运行avakill hook list确认钩子状态。检查avakill.yaml文件是否位于钩子期望的路径通常是当前用户主目录或项目根目录。某个特定、安全的命令被意外阻止1. 命令参数触发了某条args_match规则。2. 命令不在command_allowlist中。3. 命令包含被shell_safe阻止的字符。1. 使用avakill evaluate精确测试该命令查看匹配到的规则名称和原因。2. 检查对应的allow规则看command_allowlist是否包含该命令的基础程序名。3. 如果命令包含、avakill logs看不到任何记录1. 守护进程未运行。2. 钩子运行在独立模式未连接守护进程。3. 日志级别或过滤问题。1. 运行avakill daemon status。如果未运行用avakill daemon start启动。2. 默认钩子以独立模式运行。如需集中日志需确保守护进程运行并可能需要调整钩子配置查看具体代理的集成文档。3. 尝试avakill logs --all查看所有事件。MCP代理模式下的工具调用失败1.avakill mcp-wrap配置错误。2. 原始MCP服务器地址或端口不对。3. 策略阻止了该MCP工具。1. 运行avakill mcp-unwrap --agent all恢复然后重新运行avakill mcp-wrap仔细查看输出信息。2. 检查AI代理如Claude Desktop的MCP服务器配置确认AvaKill代理指向的原始服务器地址正确。3. 用avakill evaluate模拟MCP工具调用工具名需规范化检查策略。性能感觉有延迟1. 策略文件过于庞大或复杂。2. 启用了content_scan且参数很大。3. 钩子模式连接守护进程有网络延迟。1. 优化策略减少正则表达式复杂度将最常用的允许规则放在前面。2.content_scan对长文本有开销。考虑是否对所有工具启用或仅对高风险工具如web_search的输出启用。3. 对于对延迟敏感的场景确保钩子以独立模式运行本地评估。5.2 利用审计日志进行安全分析AvaKill的审计日志需守护进程是一个宝藏。你可以用它来了解代理行为模式avakill logs --since 24h --tool shell_execute查看一天内所有的Shell命令看看你的代理最常做什么。发现潜在攻击或误用avakill logs --denied-only --since 1h查看最近一小时所有被拒绝的调用这可能是提示词注入尝试或代理逻辑错误。调试策略当某个调用行为不符合预期时根据时间戳和工具名在日志中找到详细记录里面包含了匹配的规则、参数快照等是调试策略的绝佳依据。一个有用的命令别名可以实时监控被阻止的高风险操作alias watch-denialsavakill logs tail --format detailed | grep -E (DENIED|BLOCKED)5.3 策略的版本管理与演进你的安全策略应该像代码一样被管理。使用Git进行版本控制每次对avakill.yaml的修改都进行提交并附上有意义的提交信息如“允许在data目录下执行python脚本”。采用渐进式收紧策略刚开始可以宽松一些主要阻止最危险的操作rm -rf / 写系统文件。然后观察日志看看代理经常尝试做什么合法但被阻止的事情逐步添加更精细的allow规则。这比一开始就制定极其严格的策略导致工作流中断要好。利用avakill rules命令这个命令可以交互式地浏览、启用、禁用规则目录中的规则。它是动态调整策略的好帮手无需手动编辑YAML文件。定期审查与更新每季度或每当引入新的工具、依赖时回顾一下策略。是否有新的危险命令需要加入黑名单是否有新的安全漏洞模式需要防范5.4 与现有开发流程结合预提交钩子Pre-commit Hook你可以在团队的Git仓库中设置一个预提交钩子当avakill.yaml文件被修改时自动运行avakill validate以确保语法正确。在Docker或开发容器中集成如果你使用Docker或Dev Containers进行开发可以在构建镜像时安装AvaKill并将一份基础安全策略作为默认配置拷贝到容器中。确保容器的用户有权限运行AvaKill。与LLM调用框架结合如果你使用LangChain、LlamaIndex等框架可以直接使用AvaKill的Python SDKprotect装饰器或GuardedOpenAIClient在框架层面进行集成这比依赖代理工具的钩子更早进行拦截适用于自定义的AI应用。AvaKill的本质是将“信任但要验证”的原则程序化。它不会限制AI代理的创造力而是为它的能力圈划定了一个明确的、安全的边界。经过一段时间的磨合你会发现自己对代理的使用更加放心可以将更多重复性、辅助性的任务交给它而将认知精力集中在更高层次的设计和决策上。安全不再是事后补救而是成为了开发流程中一个无缝的、自动化的组成部分。

相关文章:

AvaKill:为AI代理构建零信任安全防护的实战指南

1. 项目概述:AI代理的“安全气囊”AvaKill如果你正在开发或使用AI代理(比如Claude Code、Cursor、Windsurf这类能直接操作文件、运行命令的智能助手),那你一定对它们偶尔的“疯狂”行为心有余悸。我见过一个真实的案例&#xff0c…...

PromptScript:用TypeScript实现AI提示词工程化与团队协作

1. 项目概述与核心价值最近在折腾AI辅助编程工具链,发现一个挺有意思的现象:大家用Claude、Cursor、GitHub Copilot这些工具时,往往都是临时起意,在聊天框里敲一段指令,然后祈祷模型能理解你的意图。这种“一次性”的提…...

刺客信条:奥德赛风灵月影修改器下载分享2026最新版

《刺客信条:奥德赛》以古希腊为舞台,打造了一个波澜壮阔的开放世界,玩家将扮演斯巴达佣兵,在伯罗奔尼撒战争的乱世中书写传奇。游戏中丰富的战斗系统、航海玩法、技能养成与资源收集,为玩家提供了海量的游玩内容&#…...

FreeIPA容器化部署指南:从镜像选择到生产环境配置

1. 项目概述与核心价值如果你正在为团队或项目寻找一套开源的、集成的身份与访问管理(IAM)解决方案,并且希望它能像现代微服务一样易于部署和管理,那么 FreeIPA 的容器化项目freeipa/freeipa-container绝对值得你深入研究。这个项…...

将地址转换为可点击的 Google Maps 链接(类似 tel- 协议).txt

...

测试左移+AI:质量内建的终极形态?

当“左移”遇上“智能”,一场质量哲学的进化在软件工程领域,“测试左移”早已不是新鲜词汇。它成功地将质量保障的注意力从编码后的“检测”拉向了编码前的“预防”,显著降低了缺陷修复成本。然而,传统的左移实践,如需…...

Cortex-M调试连接器技术解析与应用实践

1. Cortex-M调试连接器技术演进背景在嵌入式系统开发领域,调试连接器作为连接开发环境与目标芯片的物理桥梁,其设计直接影响调试效率与硬件布局。传统ARM架构长期依赖20针IDC连接器实现JTAG调试,配合38针Mictor连接器完成指令跟踪。这种组合在…...

第二部分-Docker核心原理——10. 容器网络原理

10. 容器网络原理 1. 容器网络概述 容器网络是 Docker 的核心组件之一,负责实现容器与容器、容器与宿主机、容器与外部的网络通信。Docker 通过 Linux 内核的网络命名空间、veth pair、网桥、iptables 等技术实现网络隔离和连通。 ┌───────────────…...

09-扩展知识——02. 初识 datetime 模块

02. 初识 datetime 模块 概述 datetime 是 Python 处理日期和时间的核心模块,提供了 date、time、datetime、timedelta、tzinfo 五个主要类。掌握这个模块是时间处理的基础。维度内容Whatdatetime 模块的五大核心类及其基本用法Why日常日期时间操作的首选模块When需…...

利用 workbuddy 小龙虾 对CodeBuddy开发历史对话 进行开发总结 提高以后的开发效果

利用 workbuddy 小龙虾 对CodeBuddy开发历史对话 进行开发总结 提高以后的开发效果 提示词 你能读取 CodeBuddy CN.历史记录吗 "C:\Users\yang\AppData\Local\Programs\CodeBuddy CN\CodeBuddy CN.exe" 和 F:\Programs\CodeBuddy\CodeBuddy.exe 每一个对话框 都总结…...

别再只用默认密码了!手把手教你用Hydra和Burp Suite搞定SSH、Web后台的弱口令检测(附实战避坑指南)

企业安全自查实战:Hydra与Burp Suite弱口令检测全流程解析 当你的服务器突然被植入挖矿程序,或是客户数据在暗网明码标价出售时,80%的情况都始于一个被忽视的弱口令。这不是危言耸听——2023年Verizon数据泄露调查报告显示,弱口令…...

别再只接SWDIO和SWCLK了!STM32 SWD下载电路完整接线指南(含NRST、3.3V、GND详解)

STM32 SWD调试接口全解析:从基础接线到高速信号完整性设计 引言 第一次使用ST-Link给STM32下载程序时,我也曾天真地以为只要连接SWDIO和SWCLK两根线就够了。结果在连续三次下载失败后,我才意识到自己犯了一个典型的新手错误——忽略了完整的S…...

锁相环(PLL)核心原理、设计调试与应用场景全解析

1. 从“锁相”到“锁频”:一个经典电路的深度拆解如果你在通信、数字电路或者射频领域摸爬滚打过几年,那么“锁相环”这三个字对你来说,绝对不是一个陌生的概念。它就像电路世界里的瑞士军刀,从你手机里的射频收发器,到…...

Myco:为AI智能体设计的“活”认知基板,实现可持续知识管理

1. 项目概述:Myco,一个为AI智能体而生的“活”认知基板如果你和我一样,在过去一年里频繁地在LangChain、LangGraph、CrewAI、DSPy这些框架之间切换,每次新框架发布都意味着一次痛苦的迁移和重构,那么你一定能理解那种“…...

液压风力涡轮机:用流体传动重构风电系统架构的工程实践

1. 风力发电的“常规”与“另类”:为什么我们要重新审视机舱设计?干这行十几年,跟各种发电设备打交道,风力涡轮机算是老朋友了。大家现在看到的绝大多数风电机组,结构都差不多:高高的塔筒顶上,有…...

科技晚报|2026年5月8日:AI 开始争夺默认入口与治理层

科技晚报|2026年5月8日:AI 开始争夺默认入口与治理层 一句话导读:今晚最值得看的,不是哪家又把模型做大了一点,而是谁正在把 AI 变成默认入口和默认配置。Google 把 Fitbit 升级成 Google Health 并接入 Gemini 教练&a…...

别把 `temperature`、`top-k`、`top-p`、`beam search` 当成四个并列旋钮:很多生成问题,先调错的是“分布”还是“搜索”

别把 temperature、top-k、top-p、beam search 当成四个并列旋钮:很多生成问题,先调错的是“分布”还是“搜索” 很多人一看到模型输出太飘、太保守,第一反应就是一起改 temperature、top-k、top-p,最后再顺手试 beam search。但这四个名字根本不在同一层:前三个改的是下…...

在 Taotoken 控制台回顾与分析团队月度大模型用量消耗

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Taotoken 控制台回顾与分析团队月度大模型用量消耗 对于项目管理者或团队负责人而言,清晰、透明地掌握大模型 API 的…...

硬件开发如何对抗延迟:构建高速度创新体系的策略与实践

1. 项目概述:当“延迟”成为创新的头号杀手在硬件工程和半导体设计领域,我们常常陷入一个误区:认为项目的成败取决于一个绝妙的架构、一颗顶级的芯片,或是一支由天才工程师组成的团队。然而,二十多年的从业经验告诉我&…...

基于云端OpenClaw的情绪互动机器人系统-Milk-V Duo S + 机器人 端开发(5)

上周我打通了Milk-V Duo S和机器人的串口控制的脉络,同时制作了两个动作组:下蹲、自由飞翔。 阶段状态环境搭建✅ 完成网络配置✅ 完成串口控制✅ 完成动作调度✅ 完成序列执行控制✅ 完成时间控制✅ 完成部分动作组制作✅ 完成线程执行锁✅ 完成云端接…...

力扣-最后一个单词长度(58)

重点:1.循环初始值:注意不能越界。如果直接取字符串长度则下标会溢出,所以要减1.2.循环条件:注意等于号,i >0,等号不成立的话会遗漏没有空格的情况3.循环中判断条件:考虑字符串最后面为空格的情况。clas…...

如何使用AI从文档中准确提取所有内容

如何使用AI从文档中准确提取所有内容 作者:AI拉呱(Errol Yan) 定位:AI领域深度内容与实战方法分享 TL;DR 文档解析器在处理现实文档中常见的复杂布局时面临困难,例如具有合并单元格的表格、跨页符号和错位的文本。此外,大量信息存在于图表或图形中,需要准确提取。本文将…...

Arm Cortex-A720 PMU与多核功耗管理实战解析

1. Cortex-A720 PMU架构解析在嵌入式系统开发中,性能监控单元(PMU)如同汽车的仪表盘,为开发者提供处理器运行状态的实时数据。Arm Cortex-A720的PMU架构采用内存映射寄存器设计,通过硬件计数器实现指令周期、缓存命中率等关键指标的采集。与早…...

别再瞎调WPF Grid布局了!Auto和*的实战用法,看完这篇就够了

WPF Grid布局实战:用Auto和*构建自适应界面的黄金法则 刚接触WPF开发时,我总被各种布局容器搞得晕头转向。直到有次接手一个企业级后台系统,在连续加班三天解决界面错位问题后,才真正明白Grid布局中Auto和的精妙配合有多重要。不同…...

Spring 参数验证使用示例(基于 RuoYi 项目)

一、触发方式 进入系统管理 → 角色管理,点新增,在权限字符里填入超过100个字符的内容,点确定。 二、前端现象 2.1 页面报错提示 前端弹出红色提示框,显示"权限字符长度不能超过100个字符"。 2.2 HTTP 请求信息 从浏…...

智象科技AI数智员工:重构运维效率的智能引擎

在企业数字化转型不断深入的今天,运维体系正从“被动响应”走向“智能驱动”。智象科技基于大语言模型与数据智能能力,推出全新“AI数智员工”,以“全栈智能协同”为核心理念,构建覆盖感知、分析、决策与执行的智能运维闭环&#…...

大模型---LangGraph的循环与迭代

目录 1.LangGraph的循环 2.典型的迭代方式 3.循环退出条件 1.LangGraph的循环 LangGraph的循环可以分为3个部分:① State:保存迭代过程中的状态,② node:每轮执行的逻辑,③ conditional edge:判断继续循环还是结束。 最简单的循环方法就是固定迭代次数,即让一个节点…...

马拦过河卒

棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。 棋盘用坐标表示,A点&#xff08…...

软考中级数据库系统工程师考试大纲

数据库系统工程师考试大纲一、考 试 说 明1.考试目标通过本考试的合格人员能参与信息系统的规划、设计、 构建、运行和管理,能按照用户需求,设计、建立、运行、 维护数据库系统;能管理信息系统中的数据资源,建立和维 护…...

关于hopfield 网络和受限玻尔兹曼机,其如何为现代深度学习奠基?

0 感知机、hopfield网络、受限玻尔兹曼机、mlp之间的历史关系 近几年入门深度学习的大多数学习者,可能已经很少听说hopfield网络、受限玻尔兹曼机了,很多书籍和博客在讲解深度学习基础的时候也只会讲到感知机和mlp这种结构,而提及hopfield网…...