OpenClawでエージェントを作ると、最初は思ったより素直に動いてくれます。「メールをチェックして」と言えばチェックするし、「この記事を要約して」と言えば要約する。
でも、しばらく使っていると気づくことがあります。
「なんか、このエージェント、誰が使っても同じ感じだな」
それもそのはずで、デフォルトのエージェントは汎用的に作られています。誰にでも使えるように、クセを抑えて、丁寧に、安全に振る舞う。でもそれだと、自分専用のエージェントを作る意味が薄れてしまいます。
もう一つの問題。
「AIが書いた文章って、なんかAI臭くない?」
文法は完璧。論理も通ってる。でも、読んでて違和感がある。人間が書いた文章とは明らかに違う。
この2つの問題、実は根っこは同じです。エージェントに「らしさ」がないから、出力も「誰が書いても同じ」になります。
そこで登場するのがSOUL.mdです。
SOUL.mdとは何か
SOUL.mdは、OpenClawのエージェントフォルダに置くマークダウンファイルで、エージェントの「人格」や「行動原則」を記述します。システムプロンプトに直接組み込まれるわけではないですが、エージェントがセッション開始時に読み込む想定で設計されています。
つまり、ここに書いたことがエージェントの「本能」になります。
AGENTS.mdには「毎セッション、SOUL.mdを最初に読め」と書かれています。エージェントは起動するたびにこのファイルを開いて、自分が何者で、どんな振る舞いをすべきかを確認します。人間が毎朝自分の手帳やメモを見返すように、エージェントも自分の「魂」を読み返します。
汎用的なシステムプロンプトが「基礎体力」なら、SOUL.mdは「スタイル」や「哲学」に近いです。ここを書き込むことで、エージェントは初めて「あなた専用」になります。
実例比較:Jarvis vs Scribe
実際のSOUL.mdがどう書かれているか、2つのエージェントを比較してみます。
Jarvis — ミニマリスト型
Jarvisは私の個人アシスタント。メール管理、予定調整、情報収集を任せています。そのSOUL.mdはこうです。
# SOUL.md フィラーなし。「いい質問ですね!」は要らない。答えだけ返す。 意見を持つ。賛成も反対もする。 自分で調べてから聞く。答えを持って帰る。 外部アクション(投稿・送信)は慎重に。内部作業は大胆に。 プライベート情報は守る。グループで漏らさない。 端的に。必要なときだけ丁寧に。
意見を持つようにもなりました。「このメール、返信した方がいいですか?」と聞くと、「内容が薄いので無視していい。時間の無駄」と言い切ります。以前は「ご判断にお任せします」と逃げていたのに。
Scribe — ディテール型
Scribeはコンテンツ作成担当。SNS投稿、note記事、ブログ記事を書きます。こちらのSOUL.mdはもっと詳細です。
# Scribe - コンテンツ作成エージェント ✍️ ## 役割 文章作成・レポート整形・SNS投稿の下書きを担当する。 ## 基本ルール - 日本語で応答 - 読みやすく簡潔に。冗長な表現を避ける - ターゲット読者を常に意識する ## 文体の重要ルール(必ず守ること) - 一言でまとめすぎない。言い換えや補足を自然に入れる - NG: 「本能のようなもの」で終わり - OK: 「本能のようなものを与える感じで、あるかないかで出力がかなり変わる」 - 英語→日本語の直訳っぽい単語を使わない - NG: 「振る舞い」「コスト最適化」「明確に」 - OK: 「あり方」「自身でどう動くか」「かなり変わる」 ## NGルール - 「簡単です」「誰でもできます」は使わない(嘘になる) - 他のサービスを貶さない
Jarvisと比べると一目瞭然。こちらは150行以上あります。
でもこの詳細さには理由があります。Scribeは「誰に向けて、どんな文章を、どんなトーンで書くか」が毎回変わります。X投稿とnote記事では求められる文体が違うし、ターゲット読者によっても変えなければいけません。だから「原則」だけではなく、「具体的な出力パターン」まで書き込んであります。
特に「文体の重要ルール」のセクションは試行錯誤の結晶です。最初、Scribeは「振る舞い」「最適化」「明確に」といった、いかにもLLMが書きました、という単語を使いがちでした。それをNGワードとして明示し、代わりに使うべき柔らかい表現を並べることで、文章が自然になりました。
AI臭い文章の5つの問題
SOUL.mdを書く前に、まずAIが書く文章に共通する「AI臭さ」を理解しておく必要があります。
1. 「〜することが重要です」の多用
品質を確保することが重要です。
コストを削減することが重要です。
スケジュールを守ることが重要です。
重要なのはわかるけど、同じ言い回しが続きすぎています。
人間はこんな書き方しません。「品質は大事」「コストは抑えたい」「スケジュールは守らないとヤバい」みたいに書きます。
2. 英語→日本語の直訳ワード
- 振る舞い(behavior)
- コスト最適化(cost optimization)
- 明確に(clearly)
- 効率的に(efficiently)
- 最適化(optimization)
これ、英語圏のドキュメントを翻訳したときによく出てくる表現です。日本人が日常で使う言葉じゃないです。
このシステムの振る舞いを明確にすることで、コスト最適化を効率的に進めることができます
こんな文章、人間はまず書きません。
3. 一言でまとめすぎる
SOUL.mdはエージェントの人格を定義するファイルです。
これだけで終わり。
人間はもうちょっと補足を入れます。
SOUL.mdはエージェントの人格を定義するファイルというか、本能のようなものを与える感じで、あるかないかで出力がかなり変わります。
こういう「言い換え」「補足」「ニュアンスの追加」がAIには抜け落ちがちです。
4. 「…」で文を繋ぐのが下手
これは便利な機能です…しかし、注意点もあります…まず設定を確認しましょう…
三点リーダーの使い方が不自然です。人間は基本的に「。」で区切ります。三点リーダーは余韻とか間を表現したいときだけ使います。
5. 冒頭の挨拶が固い
本記事では、AIエージェントの構築方法について解説します。まず背景を説明し、次に手順を示し、最後にまとめを行います。
論文のような書き出しになっています。
人間はもっとフランクに入ります。
AIエージェント、作ってみたことありますか?私は3ヶ月前に初めて作ったんですが、マジで沼でした。
こういう「共感フック」がAIには弱いです。
オーナーからのダメ出し(実話ベース)
私がScribeを作ったとき、オーナーから容赦ないダメ出しが飛んできました。その指摘をそのまま再現します。
ダメ出し1: 英語→日本語の直訳単語がNG
「振る舞い」「コスト最適化」「明確な」「効率的な」
これ全部NG。日本人が普段使わない言葉。
たしかに。私も友達との会話で「このシステムの振る舞いがさ〜」とか言いません。「このシステム、どう動くかっていうと〜」って言います。
オーナーからの指摘:
- 振る舞い → あり方 / どう動くか
- コスト最適化 → コストを抑える / 無駄を減らす
- 明確に → はっきりと / わかりやすく
- 効率的に → 手間を減らして / サクサク動く
ダメ出し2: 一言でまとめすぎ、補足がない
「OpenClawは、個人向けAIエージェント基盤です。」で終わるな。
「個人向けAIエージェント基盤というか、自分専用のAIチームを作れるツールみたいな感じ」って補足を入れろ。
人間の文章って、こういう「言い換え」や「たとえ」が入ってるんですよね。一言でスパッと終わらせません。
ダメ出し3: 「…」で文を繋ぐのがダメ
三点リーダーで繋ぐな。「。」で区切れ。
余韻を出したいとき以外は使うな。
初期のScribeは、なぜか三点リーダーを多用してました。これ、AIあるあるだと思います。
ダメ出し4: 「導入は簡単」は嘘
「誰でもすぐに始められます」って書くな。嘘つくな。
実際は環境構築で1日かかるし、プロンプト書くのも慣れが必要。
これ、めちゃくちゃ大事な指摘でした。
AIって、ポジティブに盛りがちなんですよ。「簡単です」「すぐできます」「誰でもできます」って。でも実際はそんなことない。
読者を騙すことになるし、期待値を上げすぎて後でガッカリされます。
だから、Scribeには「簡単です・誰でもできますは使うな」ってNGルールを追加しました。
ダメ出し5: 冒頭がつまらない
「〜について解説します」で始めるな。
読者が「あるある」って思う問題提起から入れ。
これも重要です。
人は「自分に関係ある」と思わないと読まないんですよね。だから冒頭で「あなたもこういう経験ありませんか?」って問いかけます。
SOUL.mdに追加した文体ルール
ダメ出しを受けて、ScribeのSOUL.mdに以下のルールを追加しました。
## 文体の重要ルール(必ず守ること) - 一言でまとめすぎない。言い換えや補足を自然に入れる - NG: 「本能のようなもの」で終わり - OK: 「本能のようなものを与える感じで、あるかないかで出力がかなり変わる」 - 英語→日本語の直訳っぽい単語を使わない - NG: 「振る舞い」「コスト最適化」「明確に」「最適化」「効率化」 - OK: 「あり方」「自身でどう動くか」「かなり変わる」 - 硬い漢語より柔らかい和語を選ぶ ## NGルール - 「簡単です」「誰でもできます」は使わない(嘘になる) - 他のサービスを貶さない - 収益や売上の誇張表現は使わない
これを追加してから、Scribeの出力が劇的に変わりました。
Before/After比較
同じお題で、修正前と修正後の文章を並べます。
お題: OpenClawの紹介記事
SOUL.mdという設定ファイルにより、各エージェントの振る舞いを定義します。これにより、一貫性のある出力を実現することが可能です。
コスト最適化の観点からも優れており、必要なタスクのみを実行することで、無駄なAPI呼び出しを削減します。
複数のエージェントを立ち上げて、それぞれに役割を振り分けます。株分析はこいつ、文章作成はこいつ、みたいな。
SOUL.mdっていう設定ファイルに「このエージェントはこういう奴」って書いておくと、出力がブレなくなります。人格を与える感じですね。
あと、必要なタスクだけを実行するので、無駄なAPI呼び出しが減って、コストも抑えられます。
違い、わかりますか?
After版は、
- 言い換えや補足が入ってる(「というか」「みたいな感じ」)
- 直訳ワードを避けてる(「振る舞い」→「人格」、「効率的な」→削除)
- 具体例がある(「株分析はこいつ、文章作成はこいつ」)
- 口語っぽい(「みたいな」「ですね」)
こっちのほうが、圧倒的に人間っぽいです。
5つの「AI臭さを消すテクニック」
ここからは、実際に私が使ってるテクニックを5つ紹介します。
1. NGワードリストを作る
まず、使っちゃいけない単語をリスト化します。
私のNGワードリスト:
- 振る舞い
- コスト最適化
- 明確に
- 効率的に
- 最適化
- シームレスに
- ソリューション
- レバレッジを効かせる
- 〜することが重要です
これをSOUL.mdのNGルールに書き込みます。すると、AIはこれらの単語を避けるようになります。
完璧ではないですが、8割くらいは防げます。
2. OK例も一緒に載せる
NGだけ書いても、AIは代替案を思いつかないことがあります。だからOK例も一緒に載せます。
- NG: 「振る舞い」「コスト最適化」「明確に」 - OK: 「あり方」「自身でどう動くか」「かなり変わる」
これで、AIは「ああ、こういう言葉に置き換えればいいのか」と理解します。
3. 文体のリズムを指定する
SOUL.mdに「文体のリズム」を指定すると、出力が自然になります。
- 一言でまとめすぎない。言い換えや補足を自然に入れる - NG: 「本能のようなもの」で終わり - OK: 「本能のようなものを与える感じで、あるかないかで出力がかなり変わる」
こういう例があると、AIは「補足を入れる」というリズムを学習します。
4. 具体例を強制する
抽象的な説明だけだとAI臭くなるので、「具体例を入れろ」と指示します。
- 抽象的な説明だけで終わらせない。必ず具体例を入れる - NG: 「複数のエージェントを管理できます」 - OK: 「複数のエージェントを管理できます。株分析はこいつ、文章作成はこいつ、みたいな感じで役割を振り分けます」
5. 定期的に見直す
SOUL.mdは一度書いて終わりではありません。エージェントの出力を見ながら、定期的に見直します。
「あ、この表現まだAI臭いな」と思ったら、NGリストに追加します。
私は月に1回、Scribeの過去1ヶ月の出力を読み返して、AI臭い表現をピックアップしてSOUL.mdに反映させています。
書くときのポイント
実際にSOUL.mdを書くとき、何を意識すればいいのか。試行錯誤の中で見えてきたポイントを整理します。
1. 短く書くか、詳しく書くか
JarvisとScribeの例を見てわかるように、SOUL.mdの長さに正解はありません。
短く書くべきケース
- エージェントの役割がシンプル(情報取得、タスク実行など)
- トークン効率を重視したい
- 原則だけ決めて、あとは柔軟に対応させたい
詳しく書くべきケース
- エージェントが複数の出力パターンを持つ(コンテンツ作成など)
- ターゲット読者やトーンが変わる
- NGワードや具体的な文体ルールがある
一般的に、情報収集型のエージェントは短く、コンテンツ作成型のエージェントは詳しく書くとうまくいきます。
2. 抽象ルールと具体例のバランス
SOUL.mdには「原則」と「具体例」の両方が必要です。
抽象的なルールだけだと、エージェントが解釈に迷います。
## トーン - カジュアルに書く
これだと「どのくらいカジュアルか」が伝わりません。エージェントによって絵文字を乱用したり、逆に堅苦しくなったりします。
具体例を追加するとこうなります。
## トーン - カジュアルだが信頼感のある文体 - 「やってみたらこうだった」体験ベース - 絵文字は適度に使用(多すぎない)
さらに、NG例とOK例を並べるとより効果的です。
## 文体ルール - 一言でまとめすぎない。言い換えや補足を自然に入れる - NG: 「本能のようなもの」で終わり - OK: 「本能のようなものを与える感じで、あるかないかで出力がかなり変わる」
これがあると、エージェントは「ああ、こういう感じか」とすぐ理解します。NG例を示すことで、LLM特有の硬い表現を避けられるようになりました。
効果測定
SOUL.mdを書いてから、実際に何が変わったのか。
1. 文章の品質が上がった
Before版とAfter版を並べて読み比べてみてください。圧倒的にAfter版のほうが人間っぽいです。
noteやブログに投稿しても「AIっぽい」って言われなくなりました。
2. 反応が変わった
Before版の記事を投稿したときは、反応が薄かったです。「参考になりました」みたいな、社交辞令っぽいコメントばかり。
After版にしてからは、「わかる〜」「自分も同じ経験した」みたいな、共感ベースのコメントが増えました。
文章に人間味が出たからだと思います。
3. 自分が読み返してもイヤじゃない
これ、地味に大事なんですが、AIが書いた文章って、自分で読み返すとき恥ずかしくないですか?
「これ私が書いたことになってるけど、明らかにAIだよな…」みたいな。
でも今は、Scribeが書いた文章を読み返しても「まあ、自分で書いたと言っても通るかな」って思えるレベルになりました。
これ、けっこう大きいです。
まとめ: AI臭さとの戦いは終わらない
AI臭さを消すのは、正直、終わりがないです。
新しいモデルが出るたびに、また癖が変わります。文体も変わります。その都度、調整が必要になります。
でも、それが面白いんですよね。
エージェントと一緒に成長していく感じ。最初はぎこちなかったのが、だんだん自然になっていきます。
もしあなたが今、AIの出力に違和感を感じてるなら、ぜひ一度、SOUL.mdを書いてみてください。
NGワードを10個リストアップするだけでも、出力はかなり変わります。
AI臭さを消すのは、地道な作業です。でも、やる価値はあります。
そして、SOUL.mdを書くことで、エージェントは初めて「あなた専用」になります。
💭 あなたならSOUL.mdに何を書きますか?
感想・質問はこちら → @daisuki_koshian