产品

Cards List

# 我厌倦了"保姆式"管理我的AI。于是我花了6个月时间构建了一个C++20自主软件工厂,让它在我睡觉时也能持续交付 大约一年前,我和大多数开发者一样使用AI辅助编码——在IDE里接受建议,偶尔请它帮我解释某段代码,或者让它生成一些样板代码。这还不错,但我发现自己一直在做的事情本质上是:**充当AI的执行层**。 我来决定做什么。AI来建议怎么做。我来评估建议。我来运行代码。我来解读错误信息。然后我再把结果喂回给AI,整个循环重新开始。 每次会话都让我觉得自己更像一个翻译,而不是一个开发者。 --- ## 打破循环 我开始思考:为什么AI不能自己关闭这个循环? 不是"下一行代码建议"那种意义上的自主——而是真正的**任务级自主**:接收一个高层规格说明,然后自主规划、实现、测试并交付完整的软件组件,无需手把手指导。 挑战在于,这需要的不仅仅是一个更好的提示词。它需要一个具备真实内存、真实工具访问权限和真实决策能力的**架构**。 我花了6个月时间构建它。用C++20编写。这就是我学到的东西。 --- ## 架构概览 我将整个系统称为**自主软件工厂(Autonomous Software House,ASH)**。其核心思想是:你提供一个意图(以自然语言、工单或规格文档的形式),系统负责将其转化为可工作的软件。 系统由五个主要层次组成: ``` ┌─────────────────────────────────────┐ │ 意图接收层 │ │ (自然语言 → 结构化任务) │ ├─────────────────────────────────────┤ │ 规划与分解层 │ │ (任务 → 有序子任务图) │ ├─────────────────────────────────────┤ │ 执行层 │ │ (子任务 → 代码/测试/文档) │ ├─────────────────────────────────────┤ │ 验证层 │ │ (输出 → 通过/失败 + 诊断) │ ├─────────────────────────────────────┤ │ 内存与上下文层 │ │ (跨会话持久状态) │ └─────────────────────────────────────┘ ``` 让我逐层分解。 --- ## 第一层:意图接收 大多数AI工具在这一步就已经失败了。它们要求你用AI能理解的方式来表达你的意图,而不是反过来。 ASH的意图接收器会将模糊的高层描述转化为结构化的**任务规格(TaskSpec)**: ```cpp struct TaskSpec { std::string id; std::string intent; // 原始自然语言描述 std::vector<std::string> acceptance_criteria; std::map<std::string, std::string> constraints; Priority priority; std::optional<std::string> parent_task_id; // 从意图推断出的字段 TaskType inferred_type; // FEATURE / BUGFIX / REFACTOR / TEST std::vector<std::string> inferred_dependencies; ConfidenceScore intent_confidence; }; ``` 关键设计决策:系统存储**原始意图**以及解析后的结构。当后续层次需要消歧时,它们可以回溯到原始表述,而不是在已经经过转化的描述上继续操作。 意图接收器还会检测**欠规格说明**——它不是在遇到歧义时直接执行,而是生成澄清问题,并在继续之前等待答复。这消除了大量由于AI对不明确指令做出假设而导致的"错误方向"执行。 --- ## 第二层:规划与分解 这是最有趣的层,也是最难做好的层。 给定一个`TaskSpec`,规划器需要生成一个可执行的子任务图。挑战在于:子任务必须足够细粒度,以便可以独立执行,同时又必须足够高层,以便有意义地组合。 我使用了一个**递归分解策略**,配合复杂度预算: ```cpp class TaskPlanner { public: SubTaskGraph decompose(const TaskSpec& spec) { auto initial_plan = llm_client_.plan(spec); SubTaskGraph graph; for (auto& subtask : initial_plan.subtasks) { if (estimate_complexity(subtask) > complexity_budget_) { // 递归分解过于复杂的子任务 auto sub_graph = decompose(subtask); graph.merge(sub_graph); } else { graph.add_node(subtask); } } // 推断依赖关系 dependency_analyzer_.annotate(graph); // 检测循环依赖(不能存在) if (graph.has_cycles()) { graph = cycle_resolver_.resolve(graph); } return graph; } private: float estimate_complexity(const SubTask& task); LLMClient llm_client_; DependencyAnalyzer dependency_analyzer_; CycleResolver cycle_resolver_; float complexity_budget_ = 0.7f; // 可调参数 }; ``` `complexity_budget_`参数是系统中最重要的可调旋钮之一。设置过高,你会得到执行失败的庞大单体子任务。设置过低,你会得到过于细碎、难以整合的任务碎片。 我最终针对不同任务类型采用了不同的预算值:功能实现用0.7,bug修复用0.5,重构用0.8。 --- ## 第三层:执行层 这是代码真正生成的地方。执行层为每个子任务维护一个独立的上下文窗口,同时通过共享的内存层(见下文)保持对全局项目状态的感知。 ```cpp class ExecutionAgent { public: ExecutionResult execute(const SubTask& task, const ProjectContext& context) { // 构建执行上下文 auto exec_context = build_context(task, context); // 生成初始实现 auto implementation = llm_client_.implement(task, exec_context); // 自我评审循环 for (int attempt = 0; attempt < max_attempts_; ++attempt) { auto review = self_review(implementation, task); if (review.is_acceptable()) { break; } // 根据评审意见修改实现 implementation = llm_client_.revise( implementation, review.critique, exec_context ); } return ExecutionResult{ .implementation = implementation, .confidence = calculate_confidence(implementation, task), .side_effects = detect_side_effects(implementation, context) }; } private: ExecutionContext build_context(const SubTask& task, const ProjectContext& context); ReviewResult self_review(const Implementation& impl, const SubTask& task); LLMClient llm_client_; int max_attempts_ = 3; }; ``` **自我评审循环**是这里的关键创新。执行智能体不仅生成代码——它还用一个独立的提示词来评审自己的输出,专门检查: - 对任务规格的符合性 - 边界条件处理 - 与已知项目约定的一致性 - 潜在的副作用 这将"第一次尝试"的验证通过率从约40%提升到约75%。 --- ## 第四层:验证层 即使有了自我评审,生成的代码也经常无法通过验证。验证层负责实际运行代码并解读结果。 关键洞察:**错误消息本身就是数据**。大多数AI工具在遇到编译错误或测试失败时会崩溃退出。ASH将这些错误解析为结构化的诊断信息,并将其反馈回执行层: ```cpp struct ValidationResult { bool passed; std::vector<Diagnostic> diagnostics; CoverageReport coverage; PerformanceProfile performance; // 关键:将失败原因分类 FailureCategory failure_category; std::string remediation_hint; }; enum class FailureCategory { COMPILATION_ERROR, RUNTIME_ERROR, TEST_ASSERTION_FAILURE, PERFORMANCE_REGRESSION, COVERAGE_INSUFFICIENT, STYLE_VIOLATION }; ``` 对失败原因进行分类改变了执行层的修复方式。`COMPILATION_ERROR`通常意味着语法问题——执行层会专注于修复语法。`TEST_ASSERTION_FAILURE`通常意味着逻辑问题——执行层会重新检查其对任务规格的理解。 --- ## 第五层:内存与上下文 这是整个架构中最难解释的层,但可以说是最重要的层。 LLM的一个基本限制是上下文窗口。对于需要数百个文件和数千行代码的真实项目,你不可能将整个代码库塞入每一次LLM调用。 ASH使用了一个**分层内存系统**: ```cpp class MemorySystem { public: // 工作内存:当前任务的即时上下文 WorkingMemory working; // 情景记忆:最近操作的历史记录 EpisodicMemory episodic; // 语义记忆:项目知识(架构、约定、模式) SemanticMemory semantic; // 程序记忆:已知有效的操作序列 ProceduralMemory procedural; // 为给定任务检索相关上下文 RelevantContext retrieve_for_task(const SubTask& task) { return retriever_.query( task, working, episodic, semantic, procedural ); } private: ContextRetriever retriever_; }; ``` 语义记忆存储经过编码的项目知识: ```cpp struct ProjectKnowledge { std::string architecture_summary; std::vector<CodingConvention> conventions; std::map<std::string, ModuleInterface> module_interfaces; std::vector<DesignPattern> established_patterns; std::vector<KnownPitfall> known_pitfalls; }; ``` `known_pitfalls`字段特别有价值。每当验证失败并且根本原因被诊断出来时,该失败就会被编码为一个已知陷阱,并存储在语义记忆中。未来的执行不会重蹈覆辙。 --- ## 实际效果如何? 经过6个月的迭代,系统在以下方面表现良好: **✅ 运行良好的场景:** - 具有明确接口的独立模块 - 跟随已建立模式的功能添加 - 有清晰错误信息的Bug修复 - 有明确目标的重构 - 测试编写 **⚠️ 仍需人工参与的场景:** - 涉及多个系统的架构决策 - 具有外部依赖的性能优化 - 安全敏感代码(我会审查每一处) - 业务逻辑需要领域专家知识的场景 **❌ 尚未奏效的场景:** - 跨代码库进行大规模重构 - 调试非确定性问题(竞态条件等) - 需要创意权衡的设计工作 吞吐量方面:在一个良好运作的夜晚,系统能够处理8-12个票据(ticket),从规格说明到通过验证的代码。并非所有这些都能在第一次尝试时合并——我通常会在早上进行一次审查会话——但这比我一个人手动处理要多得多。 --- ## 为什么选择C++20? 这个选择引发了一些问题,所以值得解释一下。 原因主要有以下几点: 1. **协程**:C++20的协程对于管理并发智能体任务的执行流程非常合适。执行智能体可以在等待LLM响应时挂起,而不会阻塞整个系统。 2. **概念(Concepts)**:C++20的概念让我能够表达精确的类型约束,这在处理多种类型的任务、结果和上下文时非常有价值。 3. **Ranges**:对于许多数据转换操作,ranges库使代码更具表达力且不易出错。 4. **性能**:整个系统的大部分时间都在等待LLM API响应,所以性能并不是主要因素——但对于内存操作和上下文检索,低延迟确实很重要。 我不是说C++20是实现此类系统的唯一合理选择。但它对我来说效果很好。 --- ## 我学到的最重要的东西 **1. AI自主性的瓶颈是上下文,而不是能力** 现代LLM足够聪明,可以完成大多数编码任务。让它们失败的是缺乏上下文——不了解项目约定、不了解最近的变更、不了解代码库的整体架构。解决上下文问题比提升模型能力更有影响力。 **2. 失败是数据,而不是异常** 大多数AI编码工具将失败视为需要处理的错误,而不是需要学习的信息。当你开始将失败作为数据捕获和存储时,系统会随着时间推移变得更加可靠。 **3. 欠规格说明比过度规格说明更危险** 我的直觉是要尽可能地欠规格说明任务,让AI去填补细节。这是错误的。欠规格说明的任务会产生技术上可行但业务上错误的实现。现在系统在开始执行之前会主动探测欠规格说明的情况。 **4. 分层内存比更大的上下文窗口更重要** 当更大的上下文窗口开始普及时,我以为这会解决我的上下文问题。在某种程度上确实有帮助,但分层内存系统——它能够精确检索相关上下文,而不是将一切都塞入窗口——的效果要好得多。 **5. 人工监督仍然是必要的,但位置不同了** 我并没有消除人工监督。我改变了它的位置:从实时监督(保姆式)变为异步审查(编辑式)。这在主观体验上是一个巨大的改变。 --- ## 下一步 我目前正在研究的问题: - **多智能体协调**:多个执行智能体并行处理同一代码库上的独立任务,而不会产生冲突 - **更好的副作用检测**:当一个实现对系统其他部分产生意外影响时 - **规格说明生成**:将高层路线图条目自动分解为可操作的任务规格 如果有人正在构建类似的系统,我很乐意交流。这个领域移动得非常快,我在这里分享的很多内容可能在6个月后就会显得过时——但底层原则,关于上下文、失败学习和异步监督的原则,我认为会比较持久。 --- *如果你想深入了解某个特定层次,或者想讨论C++20实现的具体细节,请在评论中告诉我。*

Reddit r/AI_Agents · 5小时前

# Neon Sovereign Neon Sovereign 是一款原生 C++20/Vulkan 自主软件开发工作站,通过多智能体集群端到端执行软件开发任务,使用 Ollama/GGUF 在本地运行 LLM 权重,无需依赖任何云服务。目前该项目正式进入 Active Alpha 阶段,创建者正在寻找系统工程师和早期测试人员。

0 人收藏 0 人点赞

@wanerfu: 谷歌地图刚刚发布重大更新。 这将是十多年来最大的更新。 这里有8个令人惊艳的功能:

X AI KOLs Timeline · 6小时前 缓存

谷歌地图发布了重大更新,据称是十多年来最大的更新,包含8个令人惊艳的新功能。

0 人收藏 0 人点赞

@FinanceYF5: 10 个即开即用的金融 AI Agent 模板 1/ Claude for finance 开始认真了。 Anthropic 发布 10 个即开即用的金融 AI Agent 模板。 推介书、KYC、估值复核、财务模型、月末关账,全都覆盖。

X AI KOLs Following · 6小时前 缓存

Anthropic 发布 10 个即开即用的金融 AI Agent 模板,涵盖推介书、KYC、估值复核、财务模型、月末关账等金融业务场景。

0 人收藏 0 人点赞

@libapi_: Hermes Web UI v0.5.15 发布。 这版重点不是“多一个功能”,而是把真实使用里的阻塞继续清掉: 1. 新增看板面板,任务和会话可视化管理 2. 移动端布局优化,群聊和页面标题更稳 3. 修复动态端口、WSL 监听、Mar…

X AI KOLs Timeline · 8小时前

Hermes Web UI v0.5.15发布,新增看板面板用于任务和会话可视化管理,优化移动端布局,并修复动态端口、WSL监听和Markdown媒体同步等问题。该项目为开源自托管的Web UI工具。

0 人收藏 0 人点赞

@Tesla:Tesla Vision可让您的特斯拉在检测到不可避免的碰撞时提前最多70毫秒触发安全气囊

X AI KOLs Following · 13小时前 缓存

特斯拉宣布其Vision视觉系统可检测到不可避免的碰撞,并提前最多70毫秒触发安全气囊,这一时间差可能意味着重伤与安然脱险的区别。

0 人收藏 0 人点赞

特斯拉Model Y通过NHTSA新版“高级驾驶辅助系统”测试

Hacker News Top · 13小时前 缓存

2026款特斯拉Model Y成为首款通过NHTSA新推出的NCAP高级驾驶辅助系统测试的车型,符合行人自动紧急制动、车道保持辅助、盲点警告和盲点干预等标准。

0 人收藏 1 人点赞

Ouster 首款原生彩色激光雷达传感器 REV8:在硅芯片中而非软件中融合彩色与 3D 数据

Reddit r/singularity · 13小时前

Ouster 宣布推出 REV8,这是首款在硅芯片中直接融合彩色与三维数据的原生彩色激光雷达传感器,而非在软件中进行融合,标志着三维感知技术领域的硬件层面进步。

0 人收藏 0 人点赞

未来,你只需要给Claude一个成果和预算就能完成一个目标。这就是方向……

X AI KOLs Following · 15小时前

Anthropic在其Code with Claude开发者大会上发布了新的托管代理功能,用户只需提供成果和预算即可完成目标,Claude将作为可扩展的云计算机全天候运行代理任务。

0 人收藏 0 人点赞

Claude:

Reddit r/singularity · 16小时前

Claude for Excel、PowerPoint 和 Word 现已普遍可用,Claude for Outlook 处于公开测试阶段,可在 Microsoft Office 应用中提供无缝的 AI 帮助。

0 人收藏 0 人点赞

@mronge: https://x.com/mronge/status/2052846432969720202

X AI KOLs Timeline · 16小时前 缓存

一份在 Mac mini 上搭建全天候 AI 代理的实用指南,涵盖硬件选型、云端与本地 AI 模型的权衡取舍,以及用于自动化销售报告、社交媒体建议等任务的代理系统选择。

0 人收藏 0 人点赞

@AlphaSignalAI: https://x.com/AlphaSignalAI/status/2052836621905510541

X AI KOLs Timeline · 17小时前 缓存

# Hermes Agent v0.13.0("韧性版本")发布:持久看板、目标持久化与检查点回滚 Hermes Agent v0.13.0 正式发布,代号"The Tenacity Release"(韧性版本),本次更新带来了持久化看板(Durable Kanban)、持久目标(Persistent Goals)、Checkpoints v2(含回滚功能)以及 8 项 P0 级安全修复,将自身定位为与 Claude Code、Codex 等编码智能体并肩的**运行时持久层**。此次发布恰逢 DeepSeek V4-Pro、MiMo-V2.5-Pro 等支持百万级上下文窗口的低成本模型相继推出,使长期运行的智能体软件变得更具可行性。 ## 核心新特性 ### 持久看板(Durable Kanban) 任务状态不再随会话结束而丢失。看板数据现可跨会话持久保存,智能体可在中断后无缝恢复工作流,无需从头重建任务上下文。 ### 持久目标(Persistent Goals) 智能体的长期目标现在可以跨越多个会话持续存在。这意味着用户无需在每次启动时重新向智能体说明意图,系统能够自主维护目标状态并持续推进执行。 ### Checkpoints v2(含回滚) 升级后的检查点系统引入了**回滚能力**,允许将智能体状态恢复至任意历史检查点。这对于长时间运行的任务尤为关键——一旦某个执行分支出现错误,可直接回退而无需从零重启。 ### 8 项 P0 级安全修复 本次版本针对最高优先级安全漏洞进行了全面修复,共解决 8 个 P0 级问题,进一步强化了生产环境下的部署安全性。 ## 定位:运行时持久层 Hermes Agent 将自身明确定位为**运行时持久层**,与 Claude Code、Codex 等以代码生成为核心的编码智能体形成互补,而非竞争。其核心价值在于为智能体提供可靠的状态管理与执行连续性,解决长期任务中"断点续跑"这一关键工程问题。 ## 时机:百万上下文模型降低门槛 此次发布的时机颇具战略意义。随着 DeepSeek V4-Pro 和 MiMo-V2.5-Pro 等支持百万 token 上下文窗口的模型以极低成本落地,长时间运行的智能体任务从理论走向实践的障碍正在迅速消除。上下文容量的扩展与持久化基础设施的成熟,共同构成了**长期智能体软件**规模化应用的两大前提条件,而 Hermes Agent v0.13.0 正是在这一窗口期及时补上了基础设施侧的关键拼图。

0 人收藏 0 人点赞

@charlieholtz: 在云端运行一群编码代理...

X AI KOLs Following · 17小时前 缓存

该文章宣布了在云端运行一群编码代理的能力。

0 人收藏 0 人点赞

@appliedcompute: https://x.com/appliedcompute/status/2052826576723841292

X AI KOLs Timeline · 18小时前 缓存

Applied Compute 推出 ACL-Wiki,这是一个基于其 Context Engine 构建的持续学习记忆系统,能够记录来自 Cursor、Claude Code 和 Codex 的编程智能体交互,从而构建一个不断优化的 Contextbase,在两周内将关键记忆率提升约一倍。该系统通过 MCP 服务器暴露的 Remember-Refine-Retrieve 流水线,为编程智能体提供随使用而持续改进的机构记忆。

0 人收藏 0 人点赞

@tavilyai:Hermes Agent 让我们得以一窥智能体的未来走向——它从每次会话中学习,自主编写技能,并持续构建记忆…

X AI KOLs Following · 18小时前 缓存

Nous Research 推出的 Hermes Agent 是一款开源自进化自主智能体,能够从每次会话中学习并随时间积累持久记忆。Tavily 作为其网络搜索后端接入,旨在提升搜索质量,防止错误数据在智能体的长期记忆与技能库中不断累积放大。

0 人收藏 0 人点赞

@ClaudeDevs: /radio

X AI KOLs Following · 18小时前 缓存

ClaudeDevs 宣布了 Claude 的新 /radio 功能,可能是一种音频或流媒体模式。

0 人收藏 0 人点赞

nocal 4

Product Hunt · 18小时前

Nocal 4 是一款像工作空间一样运作的日历应用,已在 Product Hunt 上线。

0 人收藏 0 人点赞

Skopx - 自主分析业务数据的AI智能体

Reddit r/ArtificialInteligence · 18小时前 缓存

Skopx是一个对话式AI分析平台,用户可以用自然语言提出业务问题,平台自动从连接的数据源生成洞察,无需编写SQL。它提供透明的推理过程、基于角色的访问控制,并能与现有工具集成。

0 人收藏 1 人点赞

@ycombinator: Ardent (@ArdentAI) 让你在 TB 级规模下 <6秒 克隆任何 Postgres 数据库,让编码代理可以测试代码,工程团队可以快速上线而不用担心影响生产…

X AI KOLs Following · 19小时前 缓存

Ardent 是一款 Y Combinator 支持的工具,能在 TB 级规模下于 6 秒内克隆任何 PostgreSQL 数据库,让编码代理和开发者可以在接近生产环境的克隆副本上测试代码,而不会造成停机风险。该工具已被 Supermemory 和 Surface Labs 等公司采用。

0 人收藏 0 人点赞

知名约会应用Bumble将取消‘滑动’功能,转向AI配对

Reddit r/ArtificialInteligence · 20小时前 缓存

Bumble将在今年晚些时候进行重大改版,取消滑动手势并引入AI驱动的配对功能,同时终止其女性优先发消息的政策。

0 人收藏 0 人点赞

@BraceSproul:Fleet 代理中的可配置追踪 现在你可以在 Fleet 中按代理级别启用或禁用追踪!这是一个重大…

X AI KOLs Following · 20小时前 缓存

Fleet 代理现在支持按代理进行可配置追踪,允许开发者启用或禁用详细的追踪信息,以便更好地进行调试。

0 人收藏 0 人点赞
Next →
← 返回首页

提交意见反馈