trustgraph/docs/tech-specs/tool-services.he.md

98 lines
4.6 KiB
Markdown
Raw Normal View History

## שירותי כלי: כלים מתואמים
## סטטוס
יישום
## סקירה כללית
מפרט זה מגדיר מנגנון לכלים מתואמים של כלי, המכונים "שירותי כלי". בניגוד לסוגי הכלים הקיצוניים המובנים (`KnowledgeQueryImpl`, `McpToolImpl` וכו'), שירותי כלי מאפשרים להטמיע כלים חדשים על ידי:
1. פריסת שירות פולסר חדש
2. הוספת תיאור תצורה שמורה לאגנט כיצד להפעיל אותו
זה מאפשר הרחבה מבלי לשנות את המסגרת הליבה של `agent-flow`.
## איך להשתמש
1. הגדירו שירות כלי בתצורה, כולל שמות הנושאים עבור בקשות ותגובות.
2. הגדירו כלי באמצעות הגדרות שירות כלי.
3. השתמשו בכלי בתוך קוד ה-agent.
4. הגדירו את סוג הכלים בתיאור התצורה.
## דוגמה
הנה דוגמה להגדרת שירות כלי בשם "joke-service":
1. **שירות כלי:**
```json
{
"id": "joke-service",
"request-queue": "non-persistent://tg/request/joke",
"response-queue": "non-persistent://tg/response/joke",
"config-params": [
{"name": "style", "required": false}
]
}
```
2. **כלי:**
```json
{
"type": "tool-service",
"name": "tell-joke",
"description": "Tell a joke on a given topic",
"service": "joke-service",
"style": "pun",
"arguments": [
{"name": "topic", "type": "string", "description": "The topic for the joke"}
]
}
```
3. **קוד ה-agent (פסאודו-קוד):**
```python
# Load the joke service configuration
tool_service_config = tg_get_config_item("tool-service/joke-service")
# Load the tool configuration
tool_config = tg_get_config_item("tool/tell-joke")
# Instantiate the tool service
joke_service = DynamicToolService(
request_queue=tool_service_config["request-queue"],
response_queue=tool_service_config["response-queue"],
config_values=tool_config["config-params"], # Map config parameters
arguments=tool_config["arguments"],
)
# Call the tool service
user_name = get_user_name() # Get the current user
joke_topic = "programming" # Or get this from the LLM
joke = joke_service.invoke(user_name, {}, {"topic": joke_topic})
# Display the joke
print(f"Hey {user_name}! Here's a {tool_config['style']} for you:\n\n{joke}")
```
## הערות חשובות
* **`tg-put-config-item`**: השתמשו בפקודה הזו כדי לטעון את תצורות השירות והכלי. לדוגמה, `tg-put-config-item tool-service/joke-service < joke-service.json`.
* **`agent-flow`**: קוד ה-agent חייב להיות מותאם כך שיתפקד בהתאם למפרט. שימו לב במיוחד ל-`DynamicToolService` ואיך הוא מעובד.
* **שמות נושאים**: שימו לב לשמות הנושאים. הם חייבים להיות תואמים למה שמוגדר ב-`trustgraph-base/trustgraph/schema/services/tool_service.py`.
* **תצורת כלי**: שימו לב לתצורת הכלי, במיוחד לשדות ה-`type` (חייב להיות `"tool-service"`) ו-`arguments`.
* **תצורה דינמית**: השירותים עצמם יצטרכו לקרוא את תצורת ה-`tool-service` כדי לדעת מה לקבל, ולאחר מכן להגדיר את הלקוח (Client).
* **קוד דוגמה**: קוד הדוגמה מספק תצורה מפורטת, אבל הוא רק דוגמה. אתם צריכים להבין איך קוד ה-agent קורא לתצורה הזו.
## שאלות נפוצות
* **איך למצוא את הקוד המתאים?** הקודים שצוינו נמצאים ב-`trustgraph-flow/trustgraph/agent/react/tools.py`, `trustgraph-flow/trustgraph/agent/react/service.py`, `trustgraph-flow/trustgraph/base/dynamic_tool_service.py`, ו-`trustgraph-flow/trustgraph/schema/services/tool_service.py`.
* **מהו `tg-put-config-item`?** זו פקודה שמשמשת לטעינת תצורות.
* **איך אני יודע מתי הכל עובד?** בדקו שהכלים מוגדרים כראוי, ושהתצורה מועברת נכון. השתמשו ב-logging כדי לראות אם התהליכים מתחילים, מסיטים בקשות, ומחזירים תגובות.
## סיכום
ההגדרה הזו מספקת מסגרת לשימוש בכלים מתואמים בתוך `trustgraph-flow`. על ידי הבנת התצורה, הקוד, והדגמים, תוכלו לשלב כלים חדשים בקלות.