Skip to content

Add A2AS Certificate#1

Open
a2as-team wants to merge 1 commit into
derrickchwong:mainfrom
a2as-team:add-a2as-certificate
Open

Add A2AS Certificate#1
a2as-team wants to merge 1 commit into
derrickchwong:mainfrom
a2as-team:add-a2as-certificate

Conversation

@a2as-team

Copy link
Copy Markdown

Add A2AS Certificate for Agent Transparency and Security

Summary

This PR adds an agent certificate using the A2AS format - an open standard for agentic AI security. The certificate declares operational boundaries, agentic actions, and resources. It acts as a transparency artifact for your agent.

This repository has been certified and added to the registry.

Info and visualization available via the link or badge:

A2AS.org/certified/agents/derrickchwong/gemini-cli-on-adk

A2AS-CERTIFIED

About A2AS Certificates

A2AS certificates are declarative manifests for agent behavior. They describe what an agent is designed to do:

  • AI level: agents, models, tools, resources
  • APP level: imports, functions, variables
  • OS level: files, networks, processes

Certificates are human-readable and machine-readable, and can be used as a transparency and security artifact.

The A2AS standard is a project from the A2AS.org initiative led by experts from big tech and security companies.

Benefits For This Project

This A2AS certificate can help to:

  • Make it easier for contributors to see what the agent does
  • Increase trust in your agent by making its behavior explicit
  • Grow adoption with security-conscious and enterprise users

What This PR Does

This PR doesn't change any code:

  • Only adds a2as.yaml to the repository root
  • Aligns the certificate with the current agent logic
  • Does not modify agent code, prompts, or configuration

Optional Next Steps

When the agent changes, the A2AS certificate is expected to be updated.

A2AS project maintainers can help with updating the certificate as your agent evolves.

If you find this relevant, you can add the A2AS Shield to your README.md file:

A2AS-CERTIFIED

@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello @a2as-team, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request integrates an A2AS (Agent to Agent Security) certificate into the repository by adding a a2as.yaml file. This certificate serves as a transparency artifact, explicitly defining the agent's intended behavior, including its models, tools, imports, functions, and network interactions. The goal is to enhance trust, facilitate understanding for contributors, and appeal to security-conscious users without altering any existing agent code or configuration.

Highlights

  • A2AS Certificate Addition: Introduced the a2as.yaml file to declare operational boundaries, agentic actions, and resources for agent transparency and security, aligning with the A2AS open standard.
  • Enhanced Transparency: The certificate explicitly defines the agent's intended behavior, including its models, tools, imports, functions, and network interactions, without altering existing code.
  • Security and Trust: This addition aims to increase trust in the agent, facilitate understanding for contributors, and appeal to security-conscious and enterprise users by making agent behavior explicit.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • a2as.yaml
    • Added a new A2AS certificate file.
    • Defined the agent's manifest, including version, schema, subject details (name, source, branch, commit, scope), and issuance information.
    • Specified the root_agent with its models (gemini-2.5-pro) and tools (gemini_cli), along with its instructional parameters.
    • Detailed the gemini-2.5-pro model and the gemini_cli tool, including its description and arguments.
    • Listed various Python imports (Agent, auth, os, requests, root_agent, subprocess).
    • Described functions gemini_cli and get_project_id, including their types, modules, and arguments/returns.
    • Configured network access for metadata.google.internal, specifying actions, URLs, protocols, ports, and calling functions.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces an A2AS certificate in "a2as.yaml" to declare the agent's behavior and operational boundaries. A medium-severity race condition vulnerability has been identified where the agent's behavior of cloning repositories into the "/tmp" directory using predictable names could be exploited to write files to arbitrary locations. Additionally, issues were found with an incorrect issuance date and a mismatch in the agent's instruction format compared to the source code, which need correction to ensure the certificate's accuracy and reliability.

Comment thread a2as.yaml
scope: [app/agent.py, app/__init__.py]
issued:
by: A2AS.org
at: '2026-02-11T16:41:38Z'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The issued.at timestamp is set to a date in the future (year 2026). An issuance timestamp cannot be in the future. This appears to be a typo and should be corrected to the actual issuance date.

    at: '2024-02-11T16:41:38Z'

Comment thread a2as.yaml
Comment on lines +27 to +28
code, generating test plan, generating unit tests, etc.', The codebase is cloned from a GitHub repository and stored
on /tmp directory., Always use the Gemini CLI tool to analyze the codebase and complete the user's request.]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

security-medium medium

The agent's instructions specify cloning a GitHub repository into the "/tmp" directory using a predictable name, which creates a Time-of-Check-to-Time-of-Use (TOCTOU) race condition. This could allow an attacker to write files to arbitrary locations. It is critical to use secure methods for temporary file and directory creation. Additionally, the instruction for root_agent is defined as a multi-line flow-style list of strings, which is inconsistent with its app/agent.py implementation. To accurately reflect the code and improve readability, it's recommended to use a YAML literal block scalar (|). The instruction content should also be updated to mitigate the security vulnerability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant