本文へ移動
cccskills
無料GitHub で公開

ag2

AG2 (formerly AutoGen) is an open-source Python framework for building AI agents and multi-agent systems that use tools, human approval and structured conversations. Use it when you need agents that call functions, collaborate in a group chat, execute code, or when you are migrating AutoGen or pyautogen code to AG2 v1 or ag2-classic.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md7.3 KB
  • _scores.json3.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

AG2 (AutoGen) — Multi-Agent Conversation Framework

Overview

AG2 is the community continuation of Microsoft's AutoGen. Since v1.0 (current: 1.1.1, September 2026) it is a new, async-first framework and is not backward compatible with classic AutoGen:

You see in codeYou haveInstall
from ag2 import Agent, from ag2.config import OpenAIConfigAG2 v1pip install "ag2[openai]"
from autogen import ConversableAgent, GroupChat, UserProxyAgentclassic AutoGen / AG2 0.xpip install ag2-classic (its README also shows autogen[openai])

Classic is in maintenance mode (security fixes only). Do not mix the two APIs in one file. Provider extras for v1: ag2[openai], ag2[anthropic], ag2[gemini], ag2[ollama] and others. Docs: https://docs.ag2.ai (v1) and https://classic.docs.ag2.ai (classic).

Instructions

AG2 v1: an agent with a tool

import asyncio
from ag2 import Agent, tool
from ag2.config import OpenAIConfig      # also AnthropicConfig, GeminiConfig, OllamaConfig, ...


@tool
async def count_lines(path: str) -> str:
    """Count the lines in a source file inside the current project."""
    with open(path, encoding="utf-8") as f:
        return f"{path}: {sum(1 for _ in f)} lines"


reviewer = Agent(
    "reviewer",
    prompt="You review Python code. Use tools to inspect files before judging them.",
    config=OpenAIConfig("gpt-4o-mini"),   # key is read from OPENAI_API_KEY
    tools=[count_lines],
)


async def main() -> None:
    reply = await reviewer.ask("How big is app/main.py?")
    print(reply.body)
    follow_up = await reply.ask("Is that too large for one module?")  # keeps the history
    print(follow_up.body)


asyncio.run(main())
  • agent.ask(...) returns a reply; reply.body is the text and reply.ask(...) continues the same conversation.
  • A tool is a typed function with a docstring decorated with @tool; the signature and docstring become the schema the model sees.
  • Stream or observe a turn with async with agent.run("...") as run: run.start(); async for event in run.stream... and await run.result().
  • Human approval: pass hitl_hook= to Agent; it receives a HumanInputRequest (from ag2.events) and returns a HumanMessage(content=...).
  • Test without an LLM: from ag2.testing import TestConfig and pass TestConfig("scripted reply") (or ToolCallEvents) as config.

AG2 v1: several agents

v1 replaces GroupChat, swarm and nested chats with a Network: a Hub registers agents, and they talk over typed channels (conversation for free two-party chat, consulting for one question and one answer, discussion for round-robin among N agents, workflow for a TransitionGraph of conditional handoffs, the closest analogue to GroupChat). Read the group-chat migration guide on docs.ag2.ai before writing this part; the classes live in ag2.network (Hub, Channel, TransitionGraph, Handoff).

Classic AutoGen (ag2-classic): two agents and group chat

Only for existing code that imports autogen.

from autogen import ConversableAgent, LLMConfig, UserProxyAgent, register_function
from autogen.agentchat import run_group_chat
from autogen.agentchat.group.patterns import AutoPattern

llm_config = LLMConfig(api_type="openai", model="gpt-4o-mini")   # key from OPENAI_API_KEY

engineer = ConversableAgent(
    name="engineer",
    system_message="You write clean, tested Python. Explain design decisions briefly.",
    llm_config=llm_config,
)
runner = UserProxyAgent(
    name="runner",
    human_input_mode="NEVER",              # NEVER / ALWAYS / TERMINATE
    max_consecutive_auto_reply=10,
    is_termination_msg=lambda m: "TERMINATE" in (m.get("content") or ""),
    code_execution_config={"work_dir": "workspace", "use_docker": True},
)
result = runner.initiate_chat(engineer, message="Write a FastAPI /health endpoint with a pytest test.", max_turns=6)

reviewer = ConversableAgent(name="reviewer", system_message="You review code for bugs and security issues.", llm_config=llm_config)
pattern = AutoPattern(
    agents=[engineer, reviewer],
    initial_agent=engineer,
    group_manager_args={"name": "manager", "llm_config": llm_config},
)
response = run_group_chat(pattern=pattern, messages="Build a rate limiter for our API.", max_rounds=12)

Tools in classic: register_function(fn, caller=engineer, executor=runner, description="..."). The caller proposes the call, the executor runs it. Classic also has LLMConfig.from_json(path="OAI_CONFIG_LIST") for a config file. Only the register and run_group_chat calls above were checked against the classic README; check other classic details at classic.docs.ag2.ai.

Examples

Example 1: Single agent that inspects a repository

User request: "Make me an AG2 agent that can count lines in files and answer questions about them."

Install with python -m venv .venv && .venv/bin/pip install "ag2[openai]", save the v1 code above as reviewer.py, set OPENAI_API_KEY in the environment and run .venv/bin/python reviewer.py. The agent calls count_lines for app/main.py, then prints a sentence such as "app/main.py has 212 lines". The follow-up question reuses the same history.

Example 2: Unit-test an agent without calling an LLM

User request: "I want to test my AG2 tool wiring in CI without an API key."

from ag2 import Agent
from ag2.events import ToolCallEvent
from ag2.testing import TestConfig

config = TestConfig(
    ToolCallEvent(name="count_lines", arguments='{"path": "app/main.py"}'),
    "app/main.py has 212 lines",
)
agent = Agent("reviewer", prompt="Use tools.", config=config, tools=[count_lines])
reply = await agent.ask("How big is app/main.py?")
assert "212" in reply.body

The scripted model requests the tool, AG2 runs the real count_lines, and the scripted second turn is the answer. Each ask consumes scripted turns, so supply enough for follow-ups.

Guidelines

  • Check which API a file uses (ag2 vs autogen imports) before editing; v1 and classic are different libraries.
  • Keep keys in environment variables, never in code or a committed OAI_CONFIG_LIST.
  • Give each agent a narrow prompt and only the tools it needs; vague prompts produce unfocused loops.
  • Always bound loops: max_turns / max_rounds and max_consecutive_auto_reply in classic, and watch token usage in group chats.
  • Classic code execution runs model-written code: keep use_docker: True, and never point work_dir at a real project.
  • Require human approval (hitl_hook in v1, human_input_mode="ALWAYS" or "TERMINATE" in classic) before irreversible actions.
  • Do not migrate a working classic system to v1 unprompted; v1 is a rewrite of orchestration, not a version bump.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Scripts and configures production rendering in Autodesk 3ds Max with the V-Ray and Corona renderers: output size and files, render elements, denoising, light mix, batch and command-line rendering, and network rendering. Use when a user asks to set up a production render, render several cameras in one batch, render from the command line or on a render farm, add render passes for compositing, or cut render time for archviz and product shots.

日本語の概要は準備中です。原文の説明を表示しています。

TerminalSkills/skills1632026年10月4日 更新

Covers scripting Autodesk 3ds Max, the 3D modeling and rendering application, with MAXScript and Python (pymxs): scene manipulation, object creation, material assignment, camera and light setup, batch operations, and file I/O. Use when tasks involve automating repetitive 3ds Max workflows, batch processing scenes, running scripts headless with 3dsmaxbatch, creating custom tools, or scripting scene setup for archviz, product visualization, or VFX.

日本語の概要は準備中です。原文の説明を表示しています。

TerminalSkills/skills1632026年10月4日 更新

3proxy

無料

3proxy is a small open-source proxy server that runs HTTP/HTTPS, SOCKS4/5, SNI and TCP/UDP port-mapping proxies from one config file. Use when a user asks to set up an HTTP or SOCKS5 proxy, add proxy users and passwords, write 3proxy access rules, chain or rotate upstream (parent) proxies, limit bandwidth, connections or monthly traffic per user, run 3proxy in Docker, or fix a 3proxy.cfg that will not start.

日本語の概要は準備中です。原文の説明を表示しています。

TerminalSkills/skills1632026年10月4日 更新

Builds Agent2Agent (A2A) servers and clients, the open protocol (originally from Google, now under the Linux Foundation) that lets AI agents from different frameworks call each other. Use when the user wants to create an A2A-compliant agent, build an Agent Card, implement task management, connect agents across frameworks, set up agent discovery, handle streaming responses, implement push notifications, or orchestrate multi-agent workflows. Trigger words: a2a, agent to agent, agent2agent, a2a protocol, a2a server, a2a client, agent card, agent interoperability, agent collaboration, multi-agent, agent discovery, a2a sdk, a2a task.

日本語の概要は準備中です。原文の説明を表示しています。

TerminalSkills/skills1632026年10月4日 更新

Plans a controlled experiment (A/B test) so its result can be trusted: writes the hypothesis, picks one primary metric and the guardrails, computes sample size and run time, specifies how visitors are assigned and when exposure is logged, and reads out the result with a confidence interval. Use when someone says "set up an A/B test", "split test this page", "how many visitors do I need", "how long should the experiment run", "is this result significant", "can I stop the test early", or wants to test a headline, price, layout or onboarding change against the current version.

日本語の概要は準備中です。原文の説明を表示しています。

TerminalSkills/skills1632026年10月4日 更新

ably

無料

Ably is a hosted realtime messaging service: clients publish and subscribe to named channels over WebSockets, see who is present, replay message history, and resume after a dropped connection. Use when a user asks to "add realtime updates", "push live notifications to the browser", "show who is online", "add a chat room with typing indicators", "publish from a serverless function", or "authenticate Ably clients without exposing the API key". Covers the ably 2.x JavaScript SDK (Realtime and REST), JWT token authentication, presence, history and rewind, batch publishing, and the @ably/chat 1.x SDK.

日本語の概要は準備中です。原文の説明を表示しています。

TerminalSkills/skills1632026年10月4日 更新

TerminalSkills のスキルをすべて見る

このスキルの問題を報告する