Skip to main content

中文

ATaC 1.0.0 是一个面向 Agent 工作流的工具运行时,帮助 Agent 通过编排图代码复用资产。

它主要提供三类能力:

  • 工具注册:统一注册 Agent 内置工具和 MCP 工具
  • 工具调用:在 graph 节点里通过 tool_call(...) 按名字调用工具
  • Python SDK:让 Agent 在 graph 代码里直接调用已注册工具

你可以把常用能力沉淀为已注册工具,再在新的图里直接复用它们,把任务经验持续积累成可维护的工作流代码。

🛠 核心能力

  • Agent 工具注册:把 Agent 内置工具统一注册到 AtacService
  • MCP 工具注册:把外部 MCP 工具接入同一套工具空间中复用,默认直接使用原始工具名。
  • 图代码调用 SDK:在 graph 节点里直接使用 get_service().tool_call(...)
  • 资产复用导向:Agent 通过编排图代码,把已有工具资产重新组织成新的工作流。
  • LangGraph 编排友好:直接在 LangGraph graph 代码中组合和复用这些工具资产。

🤖 最小接入示例

1. 注册 Agent 内置工具

from atac import AtacService, set_service
from atac.wrapper.langgraph import tool
import atac.subprocess as subprocess

service = AtacService()
set_service(service)


@tool(name="bash")
def bash_tool(command: str) -> str:
    completed = subprocess.run(
        command,
        shell=True,
        capture_output=True,
        text=True,
    )
    if completed.returncode != 0:
        raise RuntimeError(completed.stderr.strip() or "bash failed")
    return completed.stdout.rstrip("\n")


def get_service() -> AtacService:
    return service

2. 在 graph 代码里调用 ATaC SDK

from langgraph.graph import START, END, StateGraph

from atac import get_service


def run_bash(state: dict) -> dict:
    output = get_service().tool_call("bash", {"command": f"echo {state['who']}"})
    return {"output": output}


def build_graph():
    graph = StateGraph(dict)
    graph.add_node("run_bash", run_bash)
    graph.add_edge(START, "run_bash")
    graph.add_edge("run_bash", END)
    return graph.compile()

🚀 快速开始

1. 安装

uv tool install atac

2. Python SDK

from myapp.bootstrap import get_service

service = get_service()
result = service.run_graph("myapp.graphs:build_graph", {"who": "mob"})

3. 示例


English

ATaC 1.0.0 is a tool runtime for agent workflows, helping agents reuse assets through graph-based workflow code.

It focuses on:

  • built-in agent tool registration
  • MCP tool registration
  • named tool invocation from graph nodes
  • a Python SDK for calling registered tools from graph code

You can keep reusable capabilities behind registered tools, then compose new workflows by calling those assets directly from graph code.

🛠 Key Features

  • Built-In Agent Tool Registration: Register agent-native tools on AtacService.
  • MCP Tool Registration: Bring external MCP tools into the same reusable tool space, using raw tool names by default.
  • SDK Calls from Graph Code: Graph nodes can call get_service().tool_call(...).
  • Asset Reuse Through Graphs: Agents build new workflows by composing graph code around existing registered tool assets.
  • LangGraph-Friendly Composition: Reuse those assets directly inside LangGraph workflow code.

🤖 Minimal Integration

1. Register Built-In Agent Tools

from atac import AtacService, set_service
from atac.wrapper.langgraph import tool
import atac.subprocess as subprocess

service = AtacService()
set_service(service)


@tool(name="bash")
def bash_tool(command: str) -> str:
    completed = subprocess.run(
        command,
        shell=True,
        capture_output=True,
        text=True,
    )
    if completed.returncode != 0:
        raise RuntimeError(completed.stderr.strip() or "bash failed")
    return completed.stdout.rstrip("\n")


def get_service() -> AtacService:
    return service

2. Call the ATaC SDK from Graph Code

from langgraph.graph import START, END, StateGraph

from atac import get_service


def run_bash(state: dict) -> dict:
    output = get_service().tool_call("bash", {"command": f"echo {state['who']}"})
    return {"output": output}


def build_graph():
    graph = StateGraph(dict)
    graph.add_node("run_bash", run_bash)
    graph.add_edge(START, "run_bash")
    graph.add_edge("run_bash", END)
    return graph.compile()

🚀 Quick Start

1. Install

uv tool install atac

2. Run via Python SDK

from myapp.bootstrap import get_service

service = get_service()
result = service.run_graph("myapp.graphs:build_graph", {"who": "mob"})

3. Examples

Release files for atac 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for atac 1.0.3
File Size Uploaded
atac-1.0.3.tar.gz 392.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for atac 1.0.3
File Interpreter ABI Platform
atac-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 787.9 kB

Release files / atac-1.0.3.tar.gz

Download URL atac-1.0.3.tar.gz
Size 392.0 kB
Tags Source
SHA-256 checksum
How to use checksums
93cb2d6b0ee3efba1016e6f7d266402ca86675d8a50ad6c855a45a70a5e8d2fa
BLAKE2b-256 checksum
How to use checksums
5b76b233034bc201d2ea91069f63463b0d6e36b2b4458bb09a0987e3230f736d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.

Transparency log

Release files / atac-1.0.3-py3-none-any.whl

Download URL atac-1.0.3-py3-none-any.whl
Size 395.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d4f368aba754128893065e2fd3c22a345349d720cdb2220c71943587e9bba69
BLAKE2b-256 checksum
How to use checksums
ee803fd4f6d66321c5ba13907cad4c9aa71870bd455348379f3ec92c1825e192
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.0

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page