A2A ❤️ MCP

TLDR; Agentic applications need both A2A and MCP. We recommend MCP for tools and A2A for agents.

TLDR; 代理应用程序需要 A2A 和 MCP。我们建议将 MCP 用于工具,将 A2A 用于代理。

Standard protocols are essential for enabling agentic interoperability, particularly in connecting agents to external systems. This is critical in two interconnected areas of innovation: Tools and Agents.

标准协议对于实现代理互操作性至关重要,特别是在将代理连接到外部系统时。这在两个相互关联的创新领域中至关重要:工具和代理。

Tools are primitives with structured inputs and outputs and (typically) well-known behavior.

监测推理模型的不当行为以及提升混淆的风险

在构建能力强大且目标一致的模型过程中,缓解奖励黑客行为(即 AI 系统由于学习目标的缺陷或错误规范而表现不当)仍然是一个关键挑战。我们证明,我们可以通过使用另一个观察模型思维链(CoT)推理的 LLM,来监控前沿推理模型(如 OpenAI o3-mini)在智能编程环境中的奖励黑客行为。CoT 监控比仅监控代理行为和输出要有效得多。我们还发现,比 o3-mini 更弱的 LLM(即 GPT-4o)可以有效地监控更强大的模型。 由于 CoT 监控器在检测漏洞方面可以很有效,自然会问这些漏洞是否可以通过将 CoT 监控器直接整合到代理的训练目标中来抑制。虽然我们表明在低优化状态下,将 CoT 监控器整合到强化学习奖励中确实可以产生更有能力和更一致的代理,但我们发现在过度优化的情况下,代理会学会混淆奖励黑客行为,在 CoT 中隐藏其意图,同时仍然表现出显著的奖励黑客行为。 由于很难判断 CoT 何时变得模糊,因此可能需要付出可监控性代价,避免直接对思路链施加强大的优化压力,确保 CoT 仍然可监控,并有助于检测不一致的行为。

Frontier reasoning models exploit loopholes when given the chance.

OpenAI o3 and o4-mini System Card

OpenAI o3OpenAI o4-mini 结合了最先进的推理能力和完整工具功能——包括网页浏览(web browsing)、Python 编程、图像(image)和文件分析(file analysis)、图像生成(image generation)、画布编辑(canvas)、自动化流程(automations)、文件搜索(file search)和记忆功能(memory)。这些模型擅长解决复杂的数学、编码和科学难题,同时展现出强大的视觉感知和分析能力。这些模型在其思考链中使用工具来增强自身能力例如,在思考过程中裁剪或转换图像、搜索网页或使用 Python 分析数据。

OpenAI o 系列模型通过在思维链上进行大规模强化学习进行训练。这些先进的推理能力为提高我们模型的安全性与鲁棒性提供了新的途径。特别地,我们的模型在回应潜在的不安全提示时,能够根据上下文推理我们的安全策略,这得益于审慎对齐。

这是根据我们准备框架(Preparedness Framework)第二版发布的第一个版本和系统卡。OpenAI 的安全顾问小组 (SAG) 审查了我们准备评估的结果,并确定 OpenAI o3 和 o4-mini 在我们的三个跟踪类别(生物和化学能力、网络安全和人工智能自我改进)中均未达到高阈值。

Agent2Agent 协议 (A2A)

企业采用人工智能的最大挑战之一是如何让基于不同框架和供应商构建的代理协同工作。这就是我们创建开放的 Agent2Agent (A2A) 协议的原因,这是一种协作方式,旨在帮助不同生态系统中的代理相互通信。Google 正在推动这项行业开放协议倡议,因为我们相信这个协议对于支持多代理通信至关重要,它将为您的代理提供一种通用语言——无论它们构建于哪个框架或供应商之上。借助 A2A,代理可以相互展示它们的功能并协商如何与用户交互(通过文本、表单或双向音频/视频)——所有这些都在安全地协同工作的同时进行。

观看此演示视频,了解 A2A 如何实现不同代理框架之间的无缝通信。

Agent2Agent (A2A) 协议促进了独立 AI 代理之间的通信。以下是核心概念:

代理卡片 (Agent Card): 一个公开的元数据文件(通常位于 /.well-known/agent.json),描述了代理的功能、技能、端点 URL 和身份验证要求。客户端使用它进行发现。 A2A 服务器 (A2A Server): 一个公开 HTTP 端点并实现 A2A 协议方法(定义在 json 规范 中)的代理。它接收请求并管理任务执行。 A2A 客户端 (A2A Client): 一个消费 A2A 服务的应用程序或另一个代理。

智能编码新范式 (Cline + DeepSeek) × MCP

  • 提示词:使用 React 技术实现 Tic Tac Toe 游戏

  • 运行游戏

  • 创建新仓库

  • 快速设置仓库

  • 退出游戏

  • 查看已安装的 MCP 服务器

  • 创建新问题(issue)

  • 查看 wang-junjian/tictactoe 项目中分配给我 issue,使用 GitHub MCP 服务器的工具 list_issues

  • 当前仓库 wang-junjian/tictactoe 中有1个开放的 issue

  • 分步实现 issue #1 玩家获胜时添加烟花效果

  • 实现 issue #1 玩家获胜时添加烟花效果

  • 运行游戏 - 获胜后的烟花效果

  • 创建新问题 - Refactoring

  • 创建分支 git switch -c Refactoring,对项目中的代码进行重构

  • 完成代码重构

  • 推送到远程仓库,git push -u origin Refactoring

  • Compare & pull request

  • 创建拉取请求(pull request),关联问题(issue #2)

  • wang-junjian/tictactoe 项目中分配给我的 PR,使用 GitHub MCP 服务器的工具 get_pull_request

  • 使用 GitHub MCP 服务器的工具 get_pull_request_files 获取 PR 的变更文件列表

  • 完成 PR #3 的代码评审

使用 GitHub MCP 服务器的工具 add_issue_comment

Git 命令

git config --global --list
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
user.name=军舰
user.email=wang-junjian@qq.com
http.postbuffer=524288000
http.version=HTTP/1.1
git config --global user.name "军舰"
git config --global user.email wang-junjian@qq.com
git init
Initialized empty Git repository in /Users/junjian/GitHub/wang-junjian/HelloGit/.git/
git remote add origin https://github.com/wang-junjian/HelloGit.git

开发 RAGFlow MCP Server

这是第一次开发 MCP Server,想着使用智能编码工具(GitHub Copilot、Cursor、Trae)进行氛围编程,发现真不容易,Claude 3.7 sonnet 效果不错,在 GitHub Copilot 没用多长时间超限制了;Cursor 没有达到之前那种随心的效果;Trae 要排长队,太有挫败感了。于是,开始了以人编码为主,大模型辅助的开发过程。

  1. 初始化:加载环境变量,初始化 RAGFlow 客户端。
  2. 工具注册:定义工具列表,描述工具的输入/输出。
  3. 工具逻辑:实现工具的具体调用逻辑。
  4. 服务器启动:通过 stdio 启动 MCP Server 并监听请求。
uvx create-mcp-server \
    --path ragflow-mcp-server \
    --name ragflow-mcp-server \
    --version 0.1.0 \
    --description "RAGFlow MCP Server" \
    --no-claudeapp
cd ragflow-mcp-server
uv sync --dev --all-extras
uv add ragflow-sdk

RAGFlowAssistant

uv init RAGFlowAssistant
cd RAGFlowAssistant
uv add ragflow-sdk
sh run.sh

from ragflow_sdk import RAGFlow

# 初始化 RAGFlow 客户端
def init_ragflow():
    """初始化 RAGFlow 客户端
    返回: RAGFlow对象 或 None(如果没有API Key)
    """
    api_key = os.environ.get("RAGFLOW_API_KEY") or st.session_state.get("ragflow_api_key", "")
    base_url = os.environ.get("RAGFLOW_BASE_URL") or st.session_state.get("ragflow_base_url", "http://localhost:9380")
    
    if api_key:
        return RAGFlow(api_key=api_key, base_url=base_url)
    return None

# 获取知识库列表
// ...

Visual Studio Code 2025年3月版本(1.99)的新功能

欢迎使用Visual Studio Code 2025年3月版本。此版本包含许多更新,我们希望您会喜欢,一些主要亮点包括:

  • 代理模式
    • 代理模式现已在VS Code稳定版中可用。通过设置setting(chat.agent.enabled:true)启用(更多...)。
    • 通过模型上下文协议(MCP)服务器工具扩展代理模式(更多...)。
    • 尝试代理模式中的新内置工具,用于获取网页内容、查找符号引用和深度思考(更多...)。
  • 代码编辑
    • 下一步编辑建议现已正式发布(更多...)。
    • 在编辑器中应用AI编辑时减少诊断事件等干扰(更多...)。
  • 聊天
    • 在聊天中使用自己的API密钥访问更多语言模型(预览版)(更多...)。
    • 从统一的聊天体验中轻松切换问答、编辑和代理模式(更多...)。
    • 通过即时远程工作区索引体验提高工作区搜索速度和准确性(更多...)。
  • 笔记本编辑
    • 借助编辑和代理模式的支持,像编辑代码文件一样轻松创建和编辑笔记本(更多...)。

如果您想在线阅读这些发布说明,请前往code.visualstudio.com上的更新页面。 Insiders版本: 想尽快尝试新功能吗?您可以下载每晚构建的Insiders版本,并在功能可用后立即尝试最新更新。

设置setting(chat.agent.enabled:true)

我们很高兴地宣布代理模式现已在VS Code稳定版中可用!

DeepSeek-V3 & DeepSeek-R1

## 构建AI代理:5个常见障碍及解决方案

构建AI代理的新手指南,帮助您克服挑战。

**AI代理**正变得越来越复杂,**能够自动化工作流程、做出决策并与外部工具集成**。然而,在现实世界中部署AI代理面临着很多挑战,这些挑战会影响其可靠性、性能和准确性。现在优先建立AI代理设计的强大基础,将为未来可靠、安全的自主系统奠定基础。

**👉 本指南探讨了开发人员在创建AI代理时面临的五个最常见障碍,以及克服这些障碍的实用解决方案。** 无论您是刚刚入门的新手还是正在改进方法的资深开发人员,这些最佳实践都将帮助您设计出在复杂环境中更可靠、更具扩展性和更有效的AI代理。

让我们开始构建代理式AI吧!

## 1. 管理工具集成

随着AI代理变得越来越复杂,**管理它们对各种工具的访问和使用变得越来越具有挑战性**。**每增加一个工具**都会**引入**新的`潜在故障点`、`安全考虑因素`和`性能影响`。确保代理适当地使用工具并优雅地处理工具故障对于可靠运行至关重要。

要`解决这一挑战`,**请为代理工具箱中的每个工具创建精确的定义**。包括何时使用该工具的`明确示例`、`有效参数范围`和`预期输出`。**构建能够强制执行这些规范的验证逻辑**,并`从一小组定义明确的工具开始`,而不是许多定义松散的工具。**定期监控**将帮助您`识别哪些工具最有效`,以及`哪些定义需要完善`。
// ...

构建AI代理:5个常见障碍及解决方案

构建AI代理的新手指南,帮助您克服挑战。

AI代理正变得越来越复杂,能够自动化工作流程、做出决策并与外部工具集成。然而,在现实世界中部署AI代理面临着很多挑战,这些挑战会影响其可靠性、性能和准确性。现在优先建立AI代理设计的强大基础,将为未来可靠、安全的自主系统奠定基础。

👉 本指南探讨了开发人员在创建AI代理时面临的五个最常见障碍,以及克服这些障碍的实用解决方案。 无论您是刚刚入门的新手还是正在改进方法的资深开发人员,这些最佳实践都将帮助您设计出在复杂环境中更可靠、更具扩展性和更有效的AI代理。

让我们开始构建代理式AI吧!

随着AI代理变得越来越复杂,管理它们对各种工具的访问和使用变得越来越具有挑战性每增加一个工具都会引入新的潜在故障点安全考虑因素性能影响。确保代理适当地使用工具并优雅地处理工具故障对于可靠运行至关重要。

解决这一挑战请为代理工具箱中的每个工具创建精确的定义。包括何时使用该工具的明确示例有效参数范围预期输出构建能够强制执行这些规范的验证逻辑,并从一小组定义明确的工具开始,而不是许多定义松散的工具。定期监控将帮助您识别哪些工具最有效,以及哪些定义需要完善

构建AI代理的一个基本挑战是确保一致可靠的决策。与遵循明确规则的传统软件系统不同,AI代理必须解释用户意图,对复杂问题进行推理,并最终基于概率分布做出决策。

git pull 批量更新多个仓库

这个命令用于从远程仓库获取最新代码并合并到当前分支。-C 选项允许你在指定的目录中运行 git 命令,而不需要先切换到那个目录。

create-python-server
create-typescript-server
docs
inspector
python-sdk
quickstart-resources
servers
specification
typescript-sdk

Continue Agent 使用 GitHub MCP Server

  • 访问 GitHubSettings 页面,点击 Developer settings
  • 点击 Personal access tokens,然后点击 Tokens (classic)
  • 点击 Generate new token 按钮。

config.yaml 文件配置如下:

name: Local Assistant
version: 1.0.0
schema: v1
models:
  - name: Autodetect
    provider: ollama
    model: AUTODETECT
  - name: DeepSeek Chat
    provider: deepseek
    model: deepseek-chat
    apiKey: sk-xxx
  - name: DeepSeek Coder
    provider: deepseek
    model: deepseek-coder
    apiKey: sk-xxx
// ...

GitHub 上创建一个新的仓库,命名为 RAGFlowAssistant

提示词:创建仓库: RAGFlowAssistant

到 GitHub 上查看创建的仓库:

GitHub MCP 服务器

GitHub API 的 MCP 服务器,支持文件操作、仓库管理、搜索功能等。

  • 自动分支创建:创建/更新文件或推送更改时,如果分支不存在则自动创建
  • 全面的错误处理:对常见问题提供清晰的错误信息
  • Git 历史保留:操作保持适当的 Git 历史记录,不强制推送
  • 批量操作:支持单文件和多文件操作
  • 高级搜索:支持搜索代码、议题/PR 和用户
  1. create_or_update_file
    • 在仓库中创建或更新单个文件
    • 输入:
      • owner (字符串):仓库所有者(用户名或组织)
      • repo (字符串):仓库名称
      • path (字符串):创建/更新文件的路径
      • content (字符串):文件内容
      • message (字符串):提交消息
      • branch (字符串):要在其中创建/更新文件的分支
      • sha (可选字符串):被替换文件的 SHA(用于更新)
    • 返回:文件内容和提交详情
  1. push_files
    • 在单个提交中推送多个文件
    • 输入:
      • owner (字符串):仓库所有者
      • repo (字符串):仓库名称
      • branch (字符串):要推送到的分支
      • files (数组):要推送的文件,每个包含 pathcontent
      • message (字符串):提交消息
    • 返回:更新的分支引用

search_repositories 搜索 GitHub 仓库 输入: query (字符串):搜索查询 page (可选数字):分页的页码 p