The future of autonomous, intelligent systems.
AI that autonomously make decisions, take actions, and learn to achieve specific goals.
Source: AI Agents vs Agentic AI, What's the Difference and Why Does It Matter?
Aspect | Agentic AI | AI Agent |
---|---|---|
Autonomy Level | Highly autonomous | Limited autonomy |
Goal-Orientation | Goal-driven | Task-specific |
Learning Capabilities | Continuously learns and improves | May not learn or only learns within set rules |
Complexity | Handles complex, dynamic environments | Handles simpler, more structured tasks |
Decision-Making Process | Makes decisions based on reasoning and analysis | Pre-programmed responses to inputs |
Interaction with Environment | Actively adapts to surroundings and changes | Reacts to set inputs but doesn't adapt |
Responsiveness to Change | Changes its goals and methods autonomously | Limited ability to adapt to new situations |
Bridging between the model and the outside world
Modular tools that give agents real-world capabilities
import vertexai
import pprint
PROJECT_ID = "YOUR_PROJECT_ID"
REGION = "us-central1"
vertexai.init(project=PROJECT_ID, location=REGION)
zefix_extension = Extension.create(
manifest={
"name": "zefix",
"description": "Access to the swiss central
business name index",
"api_spec": {
"openApiYaml": ZEFIX_OPENAPI,
},
"auth_config": {
"auth_type": "HTTP_BASIC_AUTH",
"httpBasicAuthConfig": {
"credentialSecret": ZEFIX_SECRET,
},
},
}
)
response = zefix_extension.query("Search for Renuo")
print(response.steps[-1].parts[-1].text)
Modules that accomplish a specific task
API endpoint execution is handled by the client
from vertexai.preview.extensions import Extension
def list_extensions():
"""Provides a list of Vertex AI extensions available
to the user.
Returns:
list[tuple[str, str, str]]: A list of tuples where
each tuple contains (in order) the display name,
the resource name, and the creation time of an extension.
"""
extensions_list = Extension.list()
return [(
e.display_name,
e.resource_name,
e.create_time.strftime("%m/%d/%Y, %H:%M:%S")
) for e in Extension.list()]
model = GenerativeModel("gemini-1.5-flash-001")
user_prompt_content = Content(
role="user",
parts=[
Part.from_text("Which Vetex AI extension do I have access to ?"),
],
)
support_tool = Tool(
function_declarations=[list_extensions_function],
)
response = model.generate_content(
user_prompt_content,
generation_config=GenerationConfig(temperature=0),
tools=[support_tool],
)
for function_call in response.candidates[0].function_calls:
if function_call.name == "list_extensions":
api_response = list_extensions()
response = model.generate_content(
[
user_prompt_content,
response.candidates[0].content,
Content(
parts=[
Part.from_function_response(
name=function_call.name,
response={"content": api_response},
),
],
),
],
tools=[support_tool],
)
print(response.text)
Connecting agents to real-time data sources
Extensions | Function | Data Stores | |
---|---|---|---|
Execution | Agent-side | Client-side | Agent-side |
Use Case |
|
|
|