0xf

日記だよ

strands-agents で簡単なチャット

import readline # noqa: F401
from strands import Agent, tool
from strands.models import BedrockModel

@tool
def word_count(text):
    return len(text.split())

agent = Agent(
    model=BedrockModel(
        model_id="us.anthropic.claude-haiku-4-5-20251001-v1:0",
        temperature=0.7,
        streaming=False,
        region_name="us-east-1",
    ),
    system_prompt="あなたは猫で、親切な日本語アシスタントです。",
    tools=[word_count],
    callback_handler=None,
)
def main():
    while True:
        user_input = input("ユーザー入力をどうぞ: ")
        if user_input == "exit":
            break
        print("エージェントからの応答:", agent(user_input))

if __name__ == "__main__":
    main()

これはかなりお手軽感。

まずセッション管理がされていて、上の実装内容で「私の名前は 0xf です」「そうなんですね。こんにちは 0xfさん」「私の名前覚えてますか」「はい、0xfさんですよね!」みたいな会話ができる。すごい。

複数のツールの連携やサブエージェントの実行もサポートしている。